Range-compression breakout
InconclusiveHypothesis
When the trailing 4h high-low range is in the bottom quintile of its 30-day distribution, the absolute forward 4h return exceeds the average (squeeze precedes breakout). Direction is not predicted.
Verdict
**INCONCLUSIVE** — Q0 |fwd-4h| = 56 bps vs mean 79. No meaningful breakout edge.
n_windows
21
Q0_abs_mean_bps
+55.7062
Q4_abs_mean_bps
103.20
Q4_minus_Q0_bps
+47.4904
compression_premium_bps
-22.8613
Range-compression breakout
2026-05-17 · status: inconclusive · 2.7s
Hypothesis: When the trailing 4h high-low range is in the bottom quintile of its 30-day distribution, the absolute forward 4h return exceeds the average (squeeze precedes breakout). Direction is not predicted.
Verdict: INCONCLUSIVE — Q0 |fwd-4h| = 56 bps vs mean 79. No meaningful breakout edge.
Key metrics
| metric | value |
|---|---|
| Q0_abs_mean_bps | +55.7062 |
| Q4_abs_mean_bps | 103.20 |
| Q4_minus_Q0_bps | +47.4904 |
| compression_premium_bps | -22.8613 |
| n_windows | 21 |
Approach
Trailing 4h normalised range = (high - low) / close over the last 240 bars. We then take its 30-day percentile rank (rolling 43,200 bars). Sampled every 4h (13,799 obs). Quintiles are computed in each walk-forward training window only.
Walk-forward windows: 21
Pooled OOS per range quintile (Q0 = most compressed)
| q | abs_mean_bps | abs_se_bps | signed_mean_bps | t_stat_vs_q2 | n_windows | total_obs |
|---|---|---|---|---|---|---|
| 0 | 55.7 | 6.2 | 1.3 | -3.79 | 21 | 2319 |
| 1 | 67.4 | 5.4 | 0.1 | -2.17 | 21 | 2315 |
| 2 | 79.1 | 6.1 | 1.1 | 0 | 21 | 2288 |
| 3 | 87.4 | 7.4 | -0.7 | 1.12 | 21 | 2349 |
| 4 | 103.2 | 8.9 | 1.5 | 2.71 | 21 | 2225 |

