All studies use validation/framework.py (lag>=1, next_open, dead-stock-safe, cost_bps decimal). IS <2016-01-01, OOS >=2016-01-01, bootstrap n=5000, beta audit vs EW market and vs EqMom.
| Variant | Segment | Ret (cum) | Sharpe(252) | MaxDD | p | CorrMkt | CorrEqMom | ResidSharpe |
|---|---|---|---|---|---|---|---|---|
| Investment low book growth (bottom decile, hold63) | IS | +0.00% | 0.00 | 0.00% | 1.000 | nan | nan | 0.00 |
| Investment low book growth (bottom decile, hold63) | OOS | +0.00% | 0.00 | 0.00% | 1.000 | nan | nan | 0.00 |
| Momentum acceleration (12-1 minus 6-1, top decile) | IS | +229.94% | 0.64 | -53.33% | 0.025 | 0.87 | 0.96 | 0.21 |
| Momentum acceleration (12-1 minus 6-1, top decile) | OOS | +975.26% | 1.06 | -37.45% | 0.000 | 0.87 | 0.96 | 0.21 |
| VRP gate (hold EqMom when VIX-RV20 >1y median) | IS | +167.28% | 0.74 | -24.27% | 0.011 | 0.55 | 0.71 | 0.49 |
| VRP gate (hold EqMom when VIX-RV20 >1y median) | OOS | +437.33% | 0.99 | -24.00% | 0.000 | 0.55 | 0.71 | 0.49 |
| EqMom baseline (12-1 top decile, hold21, net10bps) | IS | +195.59% | 0.62 | -54.71% | 0.028 | 1.00 | 1.00 | 0.00 |
| EqMom baseline (12-1 top decile, hold21, net10bps) | OOS | +1004.91% | 1.06 | -38.55% | 0.001 | 1.00 | 1.00 | 0.00 |
Verdicts (OOS only, p<0.05 and resid>0 and corrEqMom<0.7 required for PASS)
- Investment low book growth (bottom decile, hold63): REJECT (p=1.000, Sharpe 0.00, corrEqMom nan, resid 0.00) — resid~0.
- Momentum acceleration (12-1 minus 6-1, top decile): REJECT (p=0.000, Sharpe 1.06, corrEqMom 0.96, resid 0.21) — high corr to EqMom.
- VRP gate (hold EqMom when VIX-RV20 >1y median): REJECT (p=0.000, Sharpe 0.99, corrEqMom 0.71, resid 0.49) — no timing alpha.
- EqMom baseline (12-1 top decile, hold21, net10bps): — (p=0.001, Sharpe 1.06, corrEqMom 1.00, resid 0.00) — reference.
Notes
- Investment: book[t]/book[t-365]-1 from point-in-time
book(lag 45d), signal = -growth, bottom decile long, hold63, net 10bps. Cache covers S&P 500 with ~5 recent quarters per name (like Round 9), so IS is sparse; OOS is the honest read. - Acceleration: ret12 = close.pct_change(252), ret6 = pct_change(126), signal = ret12 - ret6, top decile long, hold21, net 10bps.
- VRP: VIX/100 - 20d realized vol of SPY (annualized), median 252d lag1, gate = VRP > median, hold EqMom else 0, lag1.
- All three families were never explored in prior rounds (factor zoo tested size/vol/beta, Round 6 RES/BAB, etc., but not investment growth, acceleration, or VRP).