Rejected thesis
Ascending / descending triangle (isolated)
Thesis (rejected): Isolating asymmetric triangles from symmetrical pennants — horizontal R with rising S (ascending) or horizontal S with falling R (descending) — should expose the classic "pressure into a wall" geometry that pennants average away.
Code: research/triangle.py
Report: research/triangle_report.json (n=1,335)
Edge sign-corrected so positive = pattern direction works.
| Bucket | n | 5d edge | 10d edge | 20d edge | 40d edge |
|---|---|---|---|---|---|
| ascending / all | 855 | -0.26 % | -0.49 % | -0.52 % | -1.30 % |
| ascending OOS 20+ | 303 | -0.13 % | -0.60 % | -0.61 % | -2.86 % |
| descending / all | 480 | +0.08 % | +0.21 % | -0.10 % | -0.83 % |
| descending OOS 20+ | 213 | -0.09 % | +0.08 % | -0.57 % | -2.12 % |
Note: hit-rate on descending (sign-corrected) is 0.42 — meaning 58 % of descending-triangle breakdowns reverse and go up. That matches the broader "failed breakdown / bear-trap" pattern but is too weak to operationalise here.
Verdict: Reject both subtypes as long/short pattern signals.
| Sample | 1,335 |
|---|---|
| Validator | research/triangle.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