28-Year Backtest: What We Tested (30+ Exit Candidates)
28-year back-test report — summary · 26 August 2026
Protocol for every row: no look-ahead (inputs only from completed bars) · consecutive same-signal days counted as one trade · exit at close of t+h · binomial standard error √(p(1−p)/n) on every rate · samples under n<50 stay out of conclusions. Thresholds were fixed before evaluation. Win rate = fraction with forward return < 0 (price dropped) at 20 days.
Baseline (28 years, Dec 1998 → Aug 2026, 8,450 daily bars)
| Signal | Definition | n(20d) | Rise @20d | ± SE |
|---|---|---|---|---|
| BUY | distribution (MFI ≤ 40, RS < 0) + close < lower band | 2,403 | 62.7% | ±1.0pp |
| CONTINUATION | accumulation (MFI ≥ 60, RS > 0) + close > upper band | 3,501 | 60.1% | ±0.8pp |
Everything below is measured against these. The exit-search bar: drop > 55%, n > 500.
Pattern-based rules (28y daily)
| Rule | Idea | n(20d) | Drop @20d | ± SE | Rise | Verdict |
|---|---|---|---|---|---|---|
| M1 grey 3rd-day | 2 green continuation days, day-3 above band with MFI < 60 | 495 | 37.4% | ±2.2pp | 62.6% | momentum |
| M1d grey→re-green | grey break then re-green — trend broken? | 124 | 33.9% | ±4.3pp | 66.1% | small-n lead only |
| M2 isolated C | lone continuation <3 in 5 days = exhaustion | 2,748 | 40.2% | ±0.9pp | 59.8% | momentum |
| M3 MFI green + red vol | high volume red candle while MFI still hot | 2,508 | 40.3% | ±1.0pp | 59.7% | momentum |
| M4 / M4b short-window MFI | daily proxy for a fading intraday MFI | 354 / 1,283 | 39.0 / 39.9% | ±2.6 / ±1.4pp | 61.0 / 60.1% | momentum |
Candidate families A–D (28y daily)
| Rule | Idea | n(20d) | Drop @20d | ± SE | vs SPY | Verdict |
|---|---|---|---|---|---|---|
| A (θ=1.0/1.5/2.0%) | RS-velocity decay + MFI≥60 + vol-z>1.5 on a down day | 88 / 64 / 47 | ~40% | ±5pp | 52–56% | n<100 — inconclusive |
| B same-bar / prior-warn | stage-1 warning → stage-2 confirm | 5,562 / 6,016 | 38.0 / 37.9% | ±0.7 / ±0.6pp | 51.6 / 51.3% | wide coverage, base-rate result |
| C regime-weighted | RISK_ON extra-strict | 314 | 41.4% | ±2.8pp | 52.5% | base-rate result |
| R four-condition combo | recommended combo | 309 | 41.8% | ±2.8pp | 52.4% | base-rate result |
Intraday candidates (2.9y hourly window, complementing the 28y daily view)
| Rule | Idea | n(20d) | Drop @20d | ± SE | vs SPY | Verdict |
|---|---|---|---|---|---|---|
| I-SLOT | same-clock slot vol-z >1.5 on a down bar | 715 | 37.2% | ±1.8pp | 54.1% | base-rate result |
| I-PH | last-hour weakness | 286 | 30.8% | ±2.7pp | 50.7% | in line with base rate |
| I-AVWAP | 2h close < 20d-high AVWAP | 502 | 34.9% | ±2.1pp | 53.0% | base-rate result |
| I-FLOW | same-day down/up <0.75 (as written) | 1,276 | 38.9% | ±1.4pp | 57.6% | base-rate result |
| I-BEAR3 / I-BEAR5 | 3d / 5d down-up ratio >1.4 | 391 / 227 | 34.0 / 37.4% | ±2.4 / ±3.2pp | 54.5 / 59.9% | base-rate result |
| I-CLV5 | 5d CLV×vol < 0 | 526 | 43.2% | ±2.2pp | 59.3% | closest of the field |
| I-VB | volume-bar MFI < 50 | 648 | 37.2% | ±1.9pp | 56.2% | base-rate result |
This window is hotter than 28y (CONTINUATION 66.3% ±2.3pp, n=419) — rates are compared within-window only.
D1 — first day of distribution (28y daily)
| Score | What it asks | @20d | ± SE | n |
|---|---|---|---|---|
| Drop | did price fall? (the gate) | 38.5% | ±1.8pp | 758 |
| Rise | early-BUY check | 61.4% | ±1.8pp | 758 |
| vs SPY | excess underperformance | 50.3% | ±1.8pp | 758 |
| Underperform peers | cross-sectional (≥5 peers) | 50.9% | ±1.8pp | 758 |
| Rank worsens | place number increases | 31.0% | ±1.7pp | 758 |
| Later prints BUY | path note, (t, t+20] | 57.5% | ±1.8pp | 758 |
Drop declines with horizon (44.3% @5d → 33.6% @60d) — a bounce-shaped profile. D1 reads as an early-BUY: see why it isn't a SELL.
Hourly money-flow variants (2.9y, designs A/B/C)
The same pattern-based rules evaluated on a 1-hour money-flow indicator (last hour of each session, no 2-hour resampling). Closest: M1c, n=458, drop 38.6% ±2.3pp — consistent with the daily pattern. Results tracked the base rate throughout.