Rejected thesis
Death cross + volume confirm + deep drawdown → strong long signal
Code: research/ma_cross.py, research/death_cross_refine.py
Reports: research/ma_cross_report.json,
research/death_cross_refine_report.json
Top line: The textbook reading of a death cross (SMA50 < SMA200) is bearish; empirically it is strongly contrarian. The death cross fires after a stock has already underperformed for months — by the time the MAs cross, the bottom is typically near. Stratifying by drawdown at the cross sharpens the edge dramatically:
| Bucket (death cross) | n | 60d edge | 120d edge | 250d edge |
|---|---|---|---|---|
| death_all | 14174 | +2.6 % | +2.4 % | +4.2 % |
| death_vol_confirm | 4600 | +4.8 % | +5.4 % | +11.5 % |
| death_vol_confirm + dd ≤ -30% | 1199 | +15.9 % | +19.4 % | +44.6 % |
| OOS 2020+ vol_confirm + dd ≤ -30% | 863 | +20.2 % | +22.3 % | +57.4 % |
| Pre-2020 IS vol_confirm + dd ≤ -30% | 336 | +5.0 % | +9.9 % | +8.7 % |
OOS edge is larger than IS — the signal didn't decay across the sample. Caveat: deep-drawdown cohorts carry survivorship risk (stocks that delist before the cross don't show up); the +57 % edge is likely an upper bound but even after a 30-40 % haircut for that bias the edge dwarfs every other cohort we have.
| Validator | research/ma_cross.py |
|---|---|
| Verdict | Rejected |
Every result here is reproducible from the script named above. Reports are in the repository.
- Volatility squeeze
- Pre-FOMC drift
- Uptrend pullback
- Momentum continuation
- Industry-relative momentum (at 4-week lookback)
- Earnings-reaction reversal (anti-PEAD)
- Beat-persistence pre-earnings drift
- Sector ETF mean-reversion
- 52-week-high breakout
- Volume accumulation (above-200DMA +...
- Cross-sector momentum
- Analyst-upgrade cluster