Signal: BTC depth pct<0.20 -> 0.5x else 1.0x; vol-hot: target 20d vol z>1 -> 0.5x. All trailing-only.
| Target | Rule | Full Ret/Sh/DD | OOS 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+)
| Config | Ret | Sharpe | MaxDD |
|---|---|---|---|
| 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.