Rejected thesis
Uptrend pullback
Thesis (rejected after OOS): Names in a steady uptrend that have paused at a tight range close to highs continue to drift up over the next 20 days. "Textbook breakout setup."
Code: research/pullback_validate.py, research/pullback_options.py
Reports: research/pullback_report.json,
research/pullback_options_report.json,
research/cohort_oos_report.json
Why it failed: Three filter generations, all weak:
| Version | n events | In-sample edge | OOS edge (2024+) |
|---|---|---|---|
| v1 (loose) | 22,521 | +0.8 % | not measured |
| v2 (very tight) | 323 | +2.3 % | −2.4 % (sign flipped) |
| v3 (middle) | 1,730 | +2.2 % | +0.3 % |
The options-sim shows positive numbers (+11 % OOS edge per $ risked) but those are essentially what any 30-DTE credit put spread earns from generic IV decay on random days — the cohort filter adds ~0 pp of signal-specific alpha. Underlying directional signal is near zero OOS.
Verdict: Removed from the live watch-list 2026-05. Kept the validation scripts as the audit trail.
| Validator | research/pullback_validate.py |
|---|---|
| Verdict | Rejected |
Every result here is reproducible from the script named above. Reports are in the repository.
- Volatility squeeze
- Pre-FOMC drift
- 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
- PEAD × sector tailwind (combination)