Rejected thesis
Bearish RSI / MACD divergence — first real SHORT alpha in the repo
Code: research/bearish_divergence.py
Report: research/bearish_divergence_report.json
Mirror of bullish_divergence: price prints a fresh higher pivot HIGH while the momentum oscillator (RSI or MACD histogram) makes a LOWER high. Buying momentum is exhausting even as price keeps grinding up.
Every other bearish chart pattern we tested turned out contrarian long (death cross, bear flag, downside gaps, bull pennant breakdown). Divergence is the exception — it's structural (a price-vs-momentum relationship), not a level reading, and it works symmetrically.
| Bucket | n | 5d edge | 20d edge | down @ 20d |
|---|---|---|---|---|
| rsi_div all | 18,040 | -4.10 % | -4.60 % | 67 % |
| rsi_div runup > 50 % | 9,310 | -4.72 % | -4.89 % | 67 % |
| rsi_div runup > 100 % | 3,216 | -5.72 % | -5.24 % | 65 % |
| rsi_div OOS 2020+ runup > 100 % | 2,022 | -6.00 % | -5.00 % | 65 % |
| macd_div all | 44,679 | -4.15 % | -4.46 % | 67 % |
| macd_div runup > 100 % | 5,184 | -5.81 % | -4.88 % | 65 % |
Why this matters: nearly every other "bearish" pattern in the repo is also a long signal (contrarian bounce family). Bearish divergence is the only structural signal that actually produces meaningfully negative forward returns. Magnitude is symmetric with the bullish version (~5 % edge), and stratifying by run-up (analogue of the drawdown stratification on the long side) sharpens it.
Practical use: pair with put spreads or short-stock positions. 67 %
down-hit on n=18k is enough sample to productize as a bearish_div
short cohort. Combine with VIX context (VIX < 20 + bearish_div =
strongest case for the top).
| Sample | 18 |
|---|---|
| Validator | research/bearish_divergence.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