Production strategy · v5c
SPY (S&P 500) underlier, GBP, no FX fee, full sample (2008 to present). Implemented with ISA-eligible instruments: VUSA.L (1x S&P 500), 3USL.L (3x S&P 500), DBMF, SGLN.L, IDTL.L.
Model evolution · v1 → v9
| Version | Key change | Verdict |
|---|---|---|
| v1 | SPY three-regime gate: VIX term-structure contango (VIX3M>VIX) + 210-day SMA trend. | Accepted · foundation |
| v2 | Per-regime volatility targeting (Bull 30% / Contango 10% / Crisis cash), leverage-capped. | Accepted |
| v3 | Added a managed-futures sleeve (DBMF, synthetic pre-2019) as a crisis diversifier. | Accepted |
| v4 | Daily de-risk overlay + 3-month regime hysteresis to cut whipsaw. | Accepted · research baseline |
| v5 | GBP / Trading-212 model; fixed a month-end bug that made the hysteresis act on days, not months. | Accepted |
| v6 | Long-volatility / crisis-convexity sleeve to hedge tails. | Rejected · negative carry, no robust gain |
| v7 | Inverse-equity crisis overlay (−0.5×) instead of going to cash. | Rejected · worse risk-adjusted in every test |
| v5b (v8) | Diversifier basket (DBMF + trend-gated GLD + TLT, inverse-vol weighted) + total-portfolio vol-cap at 0.28. | Accepted · higher Sharpe, lower vol |
| v5c (v9) | Credit gate: HYG below its 200-day MA caps equity at the defensive Contango target. (Fast-50 break, VIX-spike and asymmetric re-risk were tested in the same ablation and rejected.) | Accepted · PRODUCTION |
Rejected in the v9 pre-registered ablation: fast-50 break (whipsaw, SPY crosses its 50-day MA constantly in bulls), VIX-spike force-out (cuts into V-shaped recoveries), asymmetric re-risk (redundant once the vol-cap governs book risk), broad commodities (DBC) (no Sharpe gain). Only the credit gate cleared the 90% bootstrap bar on live-era Sortino.
Why each production component is there
Contango × trend
VIX3M>VIX harvests the volatility-risk premium term structure; the 210-day trend filter keeps the book risk-on only while price momentum is intact. Backwardation flags stress and forces de-risking.
Volatility targeting
Holding risk constant rather than dollars reduces volatility drag and stabilises compounding. Exposure scales inversely with realised vol, capped by regime.
DBMF + gold + Treasuries
Trend-gated, inverse-vol-weighted decorrelated sleeves raise portfolio Sharpe without lowering summed return, the one genuine free lunch. Commodities (DBC) were tested and added nothing.
HYG < 200-day MA
The excess bond premium leads equity stress (Gilchrist–Zakrajšek 2012). When high-yield credit breaks trend, equity is capped at the defensive target, catching the credit-led grinds (2011, 2015-16, 2022) the VIX gate misses.
Total-portfolio vol-cap @ 0.28
A book-level de-risk-only scalar (Moreira–Muir 2017): high conditional vol predicts poor returns, so cutting in those windows lowers vol and the volatility drag.
Daily de-risk overlay
A fast median-vol / realised-vol scalar on the equity sleeves reacts intraday-to-month faster than the monthly regime gate, trimming exposure as volatility spikes.
Source & notes
The strategy logic lives in a single Python module (quant/strategy.py), the same code that powers every page here. A GitHub Action recomputes the signal and backtest from fresh market data twice each weekday.
This is a systematic research model. Past performance is not indicative of future results. The Deflated Sharpe Ratio accounts for the design search. Deploy capital at your own risk.