Rejected thesis
Wyckoff spring / liquidity-sweep reclaim
Thesis (rejected): Inside an established 30-day trading range
(height ≤ 20 %), a day that pierces the range low intraday (wick
≥ 0.5 % below range_low) but closes back inside the range on
volume ≥ 1.2× — the "spring" — should outperform on the bounce
hypothesis. Distinct from failed_breakdown.py (multi-day reclaim).
Code: research/wyckoff_spring.py
Report: research/wyckoff_spring_report.json (n=24,124)
| Bucket | n | 5d edge | 10d edge | 20d edge | 40d edge |
|---|---|---|---|---|---|
| all | 24124 | -0.18 % | -0.45 % | -0.26 % | -1.03 % |
| dd ≤ -15% | 11409 | -0.20 % | -0.41 % | -0.18 % | -0.66 % |
| dd ≤ -30% | 2919 | -0.07 % | -0.42 % | +0.00 % | +0.02 % |
| OOS 2020+ | 10666 | -0.16 % | -0.67 % | -0.71 % | -1.41 % |
n is large and every cohort is flat-to-negative. Even the deepest drawdown bucket (which lifts every other contrarian pattern in this file) is only flat on this one.
Why it failed: The same-day reclaim intrabar mechanic is real
in microstructure, but our data is daily close — by the time we see
the reclaim, the bounce has happened and the residual forward window
is exactly what controls capture. failed_breakdown works because
it requires a separate reclaim day after the breakdown closes
through support, which is a different (and more selective) event.
Verdict: Reject. The "spring" effect is intraday; daily-close detection captures the wrong slice of it.
| Sample | 24,124 |
|---|---|
| Validator | research/wyckoff_spring.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