← all research

Signal: BTC depth pct<0.20 -> 0.5x else 1.0x; vol-hot: target 20d vol z>1 -> 0.5x. All trailing-only.

TargetRuleFull Ret/Sh/DDOOS Ret/Sh/DD
eqmom-base unscaled+101.0%/1.13/-27.6%+101.0%/1.13/-27.6%
eqmom-base thin-book 0.5x+91.7%/1.15/-26.8%+91.7%/1.15/-26.8%
eqmom-base vol-hot 0.5x+80.5%/1.18/-19.8%+80.5%/1.18/-19.8%
eqmom-base either 0.5x+79.3%/1.24/-20.3%+79.3%/1.24/-20.3%
SPY buy-hold unscaled+81.2%/1.42/-19.4%+81.2%/1.42/-19.4%
SPY buy-hold thin-book 0.5x+78.1%/1.47/-19.1%+78.1%/1.47/-19.1%
SPY buy-hold vol-hot 0.5x+70.7%/1.60/-12.4%+70.7%/1.60/-12.4%
SPY buy-hold either 0.5x+68.9%/1.67/-12.8%+68.9%/1.67/-12.8%

Done in 6s.

Stacking check (depth window 2024-06+)

ConfigRetSharpeMaxDD
both resid+sector unscaled+192.5%1.93-16.1%
both + vol-timing+117.7%1.88-14.1%

Verdict: vol-timing helps raw base/SPY (Sharpe +0.1-0.25, DD cut ~1/3) but HURTS the optimized stack (return halved, Sharpe down). Do not stack � the overlay already diversifies away the vol it would time. Note: BTC depth starts 2024-06, so full==OOS here; longer history pending the OKX recorder.