Rejected thesis
Industry-relative momentum (at 4-week lookback)
Thesis (rejected at this horizon): Names that are the strongest in their sector over the trailing 4 weeks continue to outperform for the next 2-3 weeks. Asness 1994 / Moskowitz / Grinblatt 1999.
Code: research/industry_momentum_validate.py
Report: research/industry_momentum_report.json (n=1.16M rows)
Why it failed: The 4-week lookback is too short. Within-sector ranking at this horizon picks up Jegadeesh 1990 short-term reversal, not momentum. The bottom quintile of relative momentum outperformed the top quintile across every horizon tested:
| Horizon | Top mean | Bottom mean | Spread (top − bot) |
|---|---|---|---|
| 5 d | +0.30 % | +0.44 % | −0.13 % |
| 10 d | +0.62 % | +0.84 % | −0.22 % |
| 20 d | +1.29 % | +2.13 % | −0.85 % |
The opposite-sign trade (long bottom, short top) does have a small positive expectancy but the per-trade spread is too small (≤ 1 %) to be worth productizing after frictions.
Verdict: At a 4-week lookback the textbook signal is mean-reversion, not momentum.
Re-tested at 6-month and 12-month lookbacks (the canonical Jegadeesh setup)
Same direction at every lookback. Within-sector ranking is consistently mean-reverting, not momentum-following.
| Lookback | fwd_20d spread (top - bot) | fwd_60d spread |
|---|---|---|
| 20 d | -0.85 % | (n/a same n) |
| 126 d | -1.12 % | -1.56 % |
| 252 d | -1.29 % | -1.93 % |
Cross-sector momentum does work at the 6-month horizon (see research/cross_sector_momentum_report.json: +2.2 pp at 126 d, t=1.7). So the canonical Jegadeesh momentum is largely a sector effect; when you neutralise for sector, what's left is short-term reversal. The practical takeaway: rank ETFs, not stocks within ETFs, when you want momentum exposure.
| Sample | 1 |
|---|---|
| Validator | research/industry_momentum_validate.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
- 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
- PEAD × sector tailwind (combination)