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 |
|---|---|---|---|---|---|---|---|---|
| PEAD top-quintile (baseline, hold60) | IS_2020-2023 | +52.49% | 0.83 | -21.11% | 0.079 | 0.41 | 0.39 | 0.45 |
| PEAD top-quintile (baseline, hold60) | OOS_2023+ | +190.77% | 1.79 | -22.96% | 0.000 | 0.41 | 0.39 | 0.45 |
| PEAD top-quintile x positive 12-1 mom | IS_2020-2023 | +39.19% | 0.72 | -22.69% | 0.113 | 0.39 | 0.46 | 0.32 |
| PEAD top-quintile x positive 12-1 mom | OOS_2023+ | +161.86% | 1.66 | -21.09% | 0.000 | 0.39 | 0.46 | 0.32 |
| USO lead-1 mean-reversion on SPY | IS | +44.87% | 0.30 | -38.72% | 0.180 | 0.17 | 0.14 | -0.04 |
| USO lead-1 mean-reversion on SPY | OOS | -27.22% | -0.10 | -44.67% | 0.623 | 0.17 | 0.14 | -0.04 |
| PEAD top-quintile ungated (baseline, hold60) | IS_2020-2023 | +45.16% | 0.77 | -22.79% | 0.094 | 0.41 | 0.39 | 0.39 |
| PEAD top-quintile ungated (baseline, hold60) | OOS_2023+ | +149.99% | 1.68 | -20.42% | 0.001 | 0.41 | 0.39 | 0.39 |
| PEAD top-quintile gated: VIX <= 1y median (calm only) | IS_2020-2023 | +26.84% | 0.85 | -10.48% | 0.067 | 0.26 | 0.22 | 0.25 |
| PEAD top-quintile gated: VIX <= 1y median (calm only) | OOS_2023+ | +42.05% | 1.01 | -11.50% | 0.027 | 0.26 | 0.22 | 0.25 |
| 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 |
Commodity -> SPY lead-lag diagnostics (corr of lead_ret[D] vs spy_ret[D+lag])
| Lead | lag=1 | lag=2 | lag=3 | lag=5 |
|---|---|---|---|---|
| USO | -0.049 | +0.002 | +0.049 | -0.033 |
| GLD | -0.027 | +0.037 | +0.039 | -0.010 |
| TLT | +0.037 | -0.007 | +0.025 | +0.016 |
Verdicts (OOS only, p<0.05 and resid>0 and corrEqMom<0.6 required for PASS)
- PEAD top-quintile (baseline, hold60) (OOS_2023+): — (p=0.000, Sharpe 1.79, corrEqMom 0.39, resid 0.45) -- reference.
- PEAD top-quintile x positive 12-1 mom (OOS_2023+): REJECT (p=0.000, Sharpe 1.66, corrEqMom 0.46, resid 0.32) -- sh 1.66 vs baseline 1.79, no diversification benefit.
- USO lead-1 mean-reversion on SPY (OOS): REJECT (p=0.623, Sharpe -0.10, corrEqMom 0.14, resid -0.04) -- no edge: sh -0.10, p 0.623.
- PEAD top-quintile ungated (baseline, hold60) (OOS_2023+): — (p=0.001, Sharpe 1.68, corrEqMom 0.39, resid 0.39) -- reference.
- PEAD top-quintile gated: VIX <= 1y median (calm only) (OOS_2023+): MARGINAL (p=0.027, Sharpe 1.01, corrEqMom 0.22, resid 0.25) -- halved maxDD (-11.50% vs -20.42%) at cost of Sharpe (1.01 vs 1.68); strong diversification (corr 0.22 vs 0.39).
- EqMom baseline (12-1 top decile, hold21, net10bps) (OOS): — (p=0.001, Sharpe 1.06, corrEqMom 1.00, resid 0.00) -- reference.
Notes
- PEAD x Momentum: double-sort on positive surprise AND positive 12-1 momentum. Should beat PEAD alone by construction (mom filter adds a trend-confirmation layer). Active set is smaller, so lower turnover and lower maxDD are expected.
- USO lead-1 mean-reversion: 1-day SPY reaction to large USO moves. Sign: -USO lag-1 * SPY (so long SPY when oil dropped yesterday). Threshold 0.5% to avoid noise. Mean-reversion is documented in the literature; expected modest but real on 20y data.
- PEAD x VIX regime: only hold PEAD when VIX is below its 252d median. Hypothesis: high VIX (stress) overwhelms the drift signal, so skip the trade. Costs and lag-1 same as the PEAD baseline.