Gold

metal · dukascopy · prices in USD/oz · horizons 4h / 1d / 3d / 5d · session analysis in America/New_York

Download the underlying JSON

Barrier hits — where the stop and the target can go

From a random entry at a bar's close, how often the target arrived before the stop, within the horizon — going long, and going short. The number to read is the gap between the two. Its null is exactly zero under sign symmetry — if a path and its mirror image are equally likely once drift is removed — and that holds at any horizon. A hit rate on its own is mostly arithmetic. Note what the null does not say: a skewed series with no drift can break it without either direction being profitable. See methodology.

Entries are every bar, unconditionally. There is no entry rule and no signal: this is the unconditional first-passage structure of the price path, not a backtest. Consecutive entries overlap heavily, so every cell reports an effective sample size alongside its row count — see methodology.

Full available sample

118,846 bars · 2021-07-22T20:45:00+00:00 to 2026-08-02T23:45:00+00:00

Over this window the price drifted +17.6% a year. Each cell below shows how much of its long/short gap that drift accounts for; only the remainder is tested.

4h horizon

7,770 non-overlapping entries · 11,022 coverage-span equivalents · median 16 bars per window

At this horizon: 0.25% ≈ 0.53σ · 0.5% ≈ 1.05σ · 1% ≈ 2.10σ · 2% ≈ 4.18σ · 3% ≈ 6.24σ — the same percentage barrier is a far bigger move at 4h than at 5d, which is most of why resolution rates differ across horizons.

2026-08-03T11:19:32.963165 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/

Shares of all long entries, not of the ones that resolved: the three add to 100%. “Neither” is the entry still open when the horizon expired — its share is the column below, and across this site it runs from near zero to nearly every entry depending on the horizon and how wide the rungs are. What happened inside those windows is measured in the next section, from intrabar highs and lows.

target / stoplong target firstlong stop first long neitherexcess (long − short)95% CI long effective n
+0.25% / −0.25% 34.4% 34.3% 31.3% -1.8 pp -3.9 to +0.3 pp 8105
+0.25% / −0.5% 39.0% 14.1% 46.9% -3.1 pp -5.1 to -1.3 pp 4462
+0.25% / −1% 40.3% 3.3% 56.4% -1.9 pp -3.1 to -0.8 pp 2368
+0.25% / −2% 40.4% 0.5% 59.1% -0.6 pp not confirmed -1.0 to -0.2 pp 2019
+0.25% / −3% 40.4% 0.1% 59.4% -0.3 pp -0.5 to -0.1 pp 2315
+0.5% / −0.25% 13.0% 38.6% 48.5% -3.1 pp -5.1 to -1.2 pp 5227
+0.5% / −0.5% 15.3% 16.3% 68.5% -5.5 pp -8.9 to -2.5 pp 3369
+0.5% / −1% 16.1% 4.0% 80.0% -5.1 pp -8.1 to -2.5 pp 1198
+0.5% / −2% 16.2% 0.6% 83.2% -1.9 pp not confirmed -3.2 to -0.8 pp 679
+0.5% / −3% 16.2% 0.2% 83.6% -1.0 pp -1.8 to -0.3 pp 628
+1% / −0.25% 2.6% 39.6% 57.8% -1.8 pp -3.1 to -0.8 pp 3555
+1% / −0.5% 3.2% 16.9% 79.9% -5.1 pp -8.1 to -2.5 pp 1723
+1% / −1% 3.5% 4.2% 92.3% -11.9 pp -18.9 to -5.8 pp 789
+1% / −2% 3.5% 0.7% 95.8% -9.1 pp not confirmed -14.0 to -4.3 pp 211
+1% / −3% 3.5% 0.2% 96.2% -5.2 pp not confirmed -8.8 to -1.6 pp 133
+2% / −0.25% 0.3% 39.7% 60.0% -0.6 pp not confirmed -1.0 to -0.2 pp 3967
+2% / −0.5% 0.3% 17.0% 82.7% -1.9 pp not confirmed -3.2 to -0.8 pp 1396
+2% / −1% 0.4% 4.3% 95.3% -9.1 pp not confirmed -14.0 to -4.3 pp 368
+2% / −2% 0.4% 0.7% 98.9% -31.3 pp not confirmed -46.4 to -15.5 pp 147
+2% / −3% 0.4% 0.3% 99.4% -31.2 pp not confirmed -43.4 to -14.8 pp 49
+3% / −0.25% 0.0% 39.7% 60.3% -0.3 pp -0.5 to -0.1 pp 7114
+3% / −0.5% 0.1% 17.0% 82.9% -1.0 pp -1.8 to -0.3 pp 2668
+3% / −1% 0.1% 4.3% 95.6% -5.2 pp not confirmed -8.8 to -1.6 pp 512
+3% / −2% 0.1% 0.7% 99.2% -31.2 pp not confirmed -43.4 to -14.8 pp 148
+3% / −3% 0.1% 0.3% 99.7% -54.9 pp not confirmed -72.9 to -31.7 pp 62
Full detail — conditional rates, both directions, drift reconciliation
target / stop long target firstshort target first short stop firstshort neither long, of resolvedshort, of resolved long resolvedshort resolved raw gapchange after detrendingdetrended gap stabilitylong tiesshort tiesn
+0.25% / −0.25% 34.4% 33.8% 34.9% 31.3% 50.1% 49.2% 69% 69% +0.9 pp -2.7 pp -1.8 pp HALVES DISAGREE 0.54% 0.54% 118,819
+0.25% / −0.5% 39.0% 38.4% 13.2% 48.5% 73.4% 74.5% 53% 52% -1.1 pp -2.0 pp -3.1 pp halves agree 0.22% 0.21% 118,819
+0.25% / −1% 40.3% 39.6% 2.6% 57.8% 92.5% 93.8% 44% 42% -1.3 pp -0.6 pp -1.9 pp halves agree 0.02% 0.02% 118,819
+0.25% / −2% 40.4% 39.7% 0.3% 60.0% 98.8% 99.4% 41% 40% -0.5 pp -0.1 pp -0.6 pp HALVES DISAGREE 0.00% 0.00% 118,819
+0.25% / −3% 40.4% 39.7% 0.0% 60.3% 99.7% 99.9% 41% 40% -0.2 pp -0.0 pp -0.3 pp halves agree 0.00% 0.00% 118,819
+0.5% / −0.25% 13.0% 13.9% 39.2% 46.9% 25.1% 26.2% 52% 53% -1.1 pp -2.0 pp -3.1 pp halves agree 0.21% 0.22% 118,819
+0.5% / −0.5% 15.3% 16.2% 15.3% 68.5% 48.4% 51.3% 32% 32% -3.0 pp -2.5 pp -5.5 pp halves agree 0.09% 0.09% 118,819
+0.5% / −1% 16.1% 16.9% 3.2% 79.9% 80.1% 84.0% 20% 20% -3.9 pp -1.3 pp -5.1 pp halves agree 0.01% 0.01% 118,819
+0.5% / −2% 16.2% 17.0% 0.3% 82.7% 96.4% 98.2% 17% 17% -1.8 pp -0.2 pp -1.9 pp HALVES DISAGREE 0.00% 0.00% 118,819
+0.5% / −3% 16.2% 17.0% 0.1% 82.9% 98.8% 99.7% 16% 17% -0.9 pp -0.1 pp -1.0 pp HALVES DISAGREE 0.00% 0.00% 118,819
+1% / −0.25% 2.6% 3.3% 40.3% 56.4% 6.2% 7.5% 42% 44% -1.3 pp -0.6 pp -1.8 pp halves agree 0.02% 0.02% 118,819
+1% / −0.5% 3.2% 4.0% 16.1% 80.0% 16.0% 19.8% 20% 20% -3.9 pp -1.3 pp -5.1 pp halves agree 0.01% 0.01% 118,819
+1% / −1% 3.5% 4.2% 3.5% 92.3% 44.9% 55.1% 8% 8% -10.2 pp -1.7 pp -11.9 pp halves agree 0.00% 0.00% 118,819
+1% / −2% 3.5% 4.3% 0.4% 95.3% 83.6% 92.1% 4% 5% -8.5 pp -0.6 pp -9.1 pp HALVES DISAGREE 0.00% 0.00% 118,819
+1% / −3% 3.5% 4.3% 0.1% 95.6% 93.5% 98.4% 4% 4% -4.9 pp -0.3 pp -5.2 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −0.25% 0.3% 0.5% 40.4% 59.1% 0.6% 1.2% 40% 41% -0.5 pp -0.1 pp -0.6 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −0.5% 0.3% 0.6% 16.2% 83.2% 1.8% 3.6% 17% 17% -1.8 pp -0.2 pp -1.9 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −1% 0.4% 0.7% 3.5% 95.8% 7.9% 16.4% 5% 4% -8.5 pp -0.6 pp -9.1 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −2% 0.4% 0.7% 0.4% 98.9% 34.8% 65.2% 1% 1% -30.3 pp -0.9 pp -31.3 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −3% 0.4% 0.7% 0.1% 99.2% 60.1% 90.3% 1% 1% -30.2 pp -1.0 pp -31.2 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −0.25% 0.0% 0.1% 40.4% 59.4% 0.1% 0.3% 40% 41% -0.2 pp -0.0 pp -0.3 pp halves agree 0.00% 0.00% 118,819
+3% / −0.5% 0.1% 0.2% 16.2% 83.6% 0.3% 1.2% 17% 16% -0.9 pp -0.1 pp -1.0 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −1% 0.1% 0.2% 3.5% 96.2% 1.6% 6.5% 4% 4% -4.9 pp -0.3 pp -5.2 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −2% 0.1% 0.3% 0.4% 99.4% 9.7% 39.9% 1% 1% -30.2 pp -1.0 pp -31.2 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −3% 0.1% 0.3% 0.1% 99.7% 23.3% 76.7% 0% 0% -53.4 pp -1.5 pp -54.9 pp not checked — a half had too few resolutions 0.00% 0.00% 118,819

The three gap columns add: raw + change after detrending = detrended gap. Only the detrended gap is tested and only it carries the interval in the table above. “Of resolved” is the target-first rate among entries that reached either barrier — on cells where little resolves it can read near 100% while the unconditional rate is modest.

8 of 20 Benjamini–Hochberg survivors in the 4h horizon also agree across both halves of history.

Sampling check: re-running this horizon on 7,770 strictly non-overlapping entries (rather than 118,819 every-bar entries) moves the asymmetry by a median of 0.6 pp and at most 6.8 pp.

1d horizon

1,298 non-overlapping entries · 1,837 coverage-span equivalents · median 92 bars per window

At this horizon: 0.25% ≈ 0.22σ · 0.5% ≈ 0.44σ · 1% ≈ 0.88σ · 2% ≈ 1.74σ · 3% ≈ 2.60σ — the same percentage barrier is a far bigger move at 4h than at 5d, which is most of why resolution rates differ across horizons.

2026-08-03T11:19:33.096140 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/

Shares of all long entries, not of the ones that resolved: the three add to 100%. “Neither” is the entry still open when the horizon expired — its share is the column below, and across this site it runs from near zero to nearly every entry depending on the horizon and how wide the rungs are. What happened inside those windows is measured in the next section, from intrabar highs and lows.

target / stoplong target firstlong stop first long neitherexcess (long − short)95% CI long effective n
+0.25% / −0.25% 48.8% 47.8% 3.5% -1.7 pp -4.4 to +0.8 pp 5984
+0.25% / −0.5% 63.6% 30.0% 6.4% -1.3 pp -4.3 to +1.6 pp 3666
+0.25% / −1% 71.8% 13.3% 14.8% -0.8 pp -3.3 to +1.4 pp 2531
+0.25% / −2% 73.4% 3.3% 23.3% -1.1 pp -2.5 to +0.0 pp 1700
+0.25% / −3% 73.5% 1.0% 25.5% -0.5 pp -1.1 to +0.2 pp 1760
+0.5% / −0.25% 31.9% 61.8% 6.3% -1.4 pp -4.5 to +1.4 pp 3574
+0.5% / −0.5% 44.8% 41.1% 14.1% -0.2 pp -4.5 to +3.9 pp 2258
+0.5% / −1% 51.7% 18.7% 29.7% -0.2 pp -4.6 to +3.6 pp 1491
+0.5% / −2% 53.3% 4.6% 42.1% -1.6 pp -4.2 to +0.7 pp 897
+0.5% / −3% 53.4% 1.5% 45.1% -0.9 pp -2.2 to +0.3 pp 823
+1% / −0.25% 14.9% 69.1% 16.0% -0.8 pp -3.3 to +1.4 pp 2592
+1% / −0.5% 20.9% 47.4% 31.6% -0.2 pp -4.6 to +3.6 pp 1532
+1% / −1% 24.2% 21.9% 53.9% -0.8 pp -7.6 to +5.7 pp 935
+1% / −2% 25.2% 5.6% 69.2% -3.6 pp -9.5 to +1.8 pp 432
+1% / −3% 25.3% 1.9% 72.8% -2.3 pp -5.8 to +1.1 pp 326
+2% / −0.25% 2.9% 70.6% 26.5% -1.1 pp -2.5 to +0.0 pp 1971
+2% / −0.5% 4.2% 48.9% 46.9% -1.6 pp -4.2 to +0.7 pp 1009
+2% / −1% 5.1% 22.8% 72.2% -3.6 pp -9.5 to +1.8 pp 462
+2% / −2% 5.3% 6.0% 88.7% -12.8 pp -26.3 to +0.5 pp 195
+2% / −3% 5.3% 2.1% 92.5% -11.7 pp -24.3 to +0.5 pp 107
+3% / −0.25% 0.8% 70.7% 28.5% -0.5 pp -1.1 to +0.2 pp 2334
+3% / −0.5% 1.2% 49.0% 49.8% -0.9 pp -2.2 to +0.3 pp 1158
+3% / −1% 1.5% 22.9% 75.6% -2.3 pp -5.8 to +1.1 pp 413
+3% / −2% 1.6% 6.1% 92.2% -11.7 pp -24.3 to +0.5 pp 151
+3% / −3% 1.7% 2.2% 96.2% -18.4 pp -40.1 to +4.0 pp 76
Full detail — conditional rates, both directions, drift reconciliation
target / stop long target firstshort target first short stop firstshort neither long, of resolvedshort, of resolved long resolvedshort resolved raw gapchange after detrendingdetrended gap stabilitylong tiesshort tiesn
+0.25% / −0.25% 48.8% 46.9% 49.6% 3.5% 50.5% 48.6% 97% 97% +1.9 pp -3.6 pp -1.7 pp HALVES DISAGREE 0.83% 0.83% 118,819
+0.25% / −0.5% 63.6% 61.3% 32.5% 6.3% 67.9% 65.4% 94% 94% +2.5 pp -3.8 pp -1.3 pp HALVES DISAGREE 0.36% 0.52% 118,819
+0.25% / −1% 71.8% 69.1% 14.9% 16.0% 84.3% 82.2% 85% 84% +2.1 pp -2.9 pp -0.8 pp HALVES DISAGREE 0.04% 0.05% 118,819
+0.25% / −2% 73.4% 70.6% 2.9% 26.5% 95.7% 96.0% 77% 74% -0.3 pp -0.8 pp -1.1 pp halves agree 0.00% 0.00% 118,819
+0.25% / −3% 73.5% 70.7% 0.8% 28.5% 98.7% 98.9% 74% 71% -0.2 pp -0.2 pp -0.5 pp HALVES DISAGREE 0.00% 0.00% 118,819
+0.5% / −0.25% 31.9% 29.7% 64.0% 6.4% 34.1% 31.7% 94% 94% +2.4 pp -3.8 pp -1.4 pp HALVES DISAGREE 0.52% 0.36% 118,819
+0.5% / −0.5% 44.8% 40.9% 45.0% 14.1% 52.1% 47.6% 86% 86% +4.5 pp -4.7 pp -0.2 pp HALVES DISAGREE 0.18% 0.18% 118,819
+0.5% / −1% 51.7% 47.4% 20.9% 31.6% 73.5% 69.4% 70% 68% +4.1 pp -4.3 pp -0.2 pp HALVES DISAGREE 0.01% 0.01% 118,819
+0.5% / −2% 53.3% 48.9% 4.2% 46.9% 92.1% 92.0% 58% 53% +0.1 pp -1.7 pp -1.6 pp halves agree 0.00% 0.00% 118,819
+0.5% / −3% 53.4% 49.0% 1.2% 49.8% 97.3% 97.7% 55% 50% -0.3 pp -0.6 pp -0.9 pp HALVES DISAGREE 0.00% 0.00% 118,819
+1% / −0.25% 14.9% 13.3% 71.9% 14.8% 17.7% 15.6% 84% 85% +2.1 pp -2.9 pp -0.8 pp HALVES DISAGREE 0.05% 0.04% 118,819
+1% / −0.5% 20.9% 18.7% 51.7% 29.7% 30.6% 26.5% 68% 70% +4.1 pp -4.3 pp -0.2 pp HALVES DISAGREE 0.01% 0.01% 118,819
+1% / −1% 24.2% 21.9% 24.2% 53.9% 52.5% 47.4% 46% 46% +5.1 pp -5.9 pp -0.8 pp HALVES DISAGREE 0.00% 0.00% 118,819
+1% / −2% 25.2% 22.8% 5.1% 72.2% 81.9% 81.8% 31% 28% +0.1 pp -3.7 pp -3.6 pp halves agree 0.00% 0.00% 118,819
+1% / −3% 25.3% 22.9% 1.5% 75.6% 92.9% 93.7% 27% 24% -0.8 pp -1.5 pp -2.3 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −0.25% 2.9% 3.3% 73.4% 23.3% 4.0% 4.3% 74% 77% -0.3 pp -0.8 pp -1.1 pp halves agree 0.00% 0.00% 118,819
+2% / −0.5% 4.2% 4.6% 53.3% 42.1% 8.0% 7.9% 53% 58% +0.1 pp -1.7 pp -1.6 pp halves agree 0.00% 0.00% 118,819
+2% / −1% 5.1% 5.6% 25.2% 69.2% 18.2% 18.1% 28% 31% +0.1 pp -3.7 pp -3.6 pp halves agree 0.00% 0.00% 118,819
+2% / −2% 5.3% 6.0% 5.3% 88.7% 46.8% 53.2% 11% 11% -6.4 pp -6.3 pp -12.8 pp halves agree 0.00% 0.00% 118,819
+2% / −3% 5.3% 6.1% 1.6% 92.2% 71.3% 78.7% 7% 8% -7.4 pp -4.3 pp -11.7 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −0.25% 0.8% 1.0% 73.5% 25.5% 1.1% 1.3% 71% 74% -0.2 pp -0.2 pp -0.5 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −0.5% 1.2% 1.5% 53.4% 45.1% 2.3% 2.7% 50% 55% -0.3 pp -0.6 pp -0.9 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −1% 1.5% 1.9% 25.3% 72.8% 6.3% 7.1% 24% 27% -0.8 pp -1.5 pp -2.3 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −2% 1.6% 2.1% 5.3% 92.5% 21.3% 28.7% 8% 7% -7.4 pp -4.3 pp -11.7 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −3% 1.7% 2.2% 1.7% 96.2% 43.4% 56.6% 4% 4% -13.3 pp -5.2 pp -18.4 pp HALVES DISAGREE 0.00% 0.00% 118,819

The three gap columns add: raw + change after detrending = detrended gap. Only the detrended gap is tested and only it carries the interval in the table above. “Of resolved” is the target-first rate among entries that reached either barrier — on cells where little resolves it can read near 100% while the unconditional rate is modest.

Sampling check: re-running this horizon on 1,298 strictly non-overlapping entries (rather than 118,819 every-bar entries) moves the asymmetry by a median of 0.4 pp and at most 2.4 pp.

3d horizon

526 non-overlapping entries · 612 coverage-span equivalents · median 224 bars per window

At this horizon: 0.25% ≈ 0.14σ · 0.5% ≈ 0.28σ · 1% ≈ 0.56σ · 2% ≈ 1.12σ · 3% ≈ 1.67σ — the same percentage barrier is a far bigger move at 4h than at 5d, which is most of why resolution rates differ across horizons.

2026-08-03T11:19:33.187743 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/

Shares of all long entries, not of the ones that resolved: the three add to 100%. “Neither” is the entry still open when the horizon expired — its share is the column below, and across this site it runs from near zero to nearly every entry depending on the horizon and how wide the rungs are. What happened inside those windows is measured in the next section, from intrabar highs and lows.

target / stoplong target firstlong stop first long neitherexcess (long − short)95% CI long effective n
+0.25% / −0.25% 50.4% 49.4% 0.1% -1.8 pp -4.3 to +0.7 pp 6057
+0.25% / −0.5% 67.0% 32.5% 0.6% -1.5 pp -4.5 to +1.5 pp 3613
+0.25% / −1% 79.3% 17.7% 3.0% -0.4 pp -3.4 to +2.5 pp 2212
+0.25% / −2% 84.5% 6.3% 9.2% -0.0 pp -2.1 to +2.2 pp 1580
+0.25% / −3% 85.1% 2.5% 12.4% -0.6 pp -1.9 to +0.6 pp 1648
+0.5% / −0.25% 34.3% 65.1% 0.6% -1.6 pp -4.6 to +1.3 pp 3669
+0.5% / −0.5% 51.0% 46.8% 2.2% -0.6 pp -4.7 to +3.6 pp 2231
+0.5% / −1% 64.5% 27.1% 8.4% +0.8 pp -4.1 to +5.5 pp 1427
+0.5% / −2% 70.6% 9.4% 20.0% +1.0 pp -2.6 to +4.6 pp 965
+0.5% / −3% 71.3% 4.0% 24.8% -0.7 pp -3.0 to +1.5 pp 872
+1% / −0.25% 20.6% 76.0% 3.4% -0.4 pp -3.4 to +2.5 pp 2356
+1% / −0.5% 32.7% 58.7% 8.5% +0.8 pp -4.1 to +5.5 pp 1397
+1% / −1% 42.9% 35.9% 21.2% +1.6 pp -5.2 to +8.0 pp 901
+1% / −2% 47.5% 12.5% 40.1% +1.4 pp -4.9 to +8.0 pp 552
+1% / −3% 48.0% 5.3% 46.7% -1.2 pp -5.8 to +3.3 pp 460
+2% / −0.25% 8.3% 80.5% 11.2% -0.0 pp -2.1 to +2.2 pp 1576
+2% / −0.5% 13.1% 64.1% 22.8% +1.0 pp -2.6 to +4.6 pp 864
+2% / −1% 16.4% 39.8% 43.8% +1.4 pp -4.9 to +8.0 pp 505
+2% / −2% 17.8% 14.2% 68.0% +0.1 pp -11.6 to +12.6 pp 269
+2% / −3% 18.1% 6.3% 75.6% -3.8 pp -14.8 to +7.8 pp 196
+3% / −0.25% 2.9% 81.2% 15.9% -0.6 pp -1.9 to +0.6 pp 1459
+3% / −0.5% 4.7% 64.8% 30.4% -0.7 pp -3.0 to +1.5 pp 753
+3% / −1% 6.0% 40.4% 53.7% -1.2 pp -5.8 to +3.3 pp 402
+3% / −2% 6.7% 14.5% 78.8% -3.8 pp -14.8 to +7.8 pp 177
+3% / −3% 6.8% 6.5% 86.7% -9.3 pp -26.8 to +10.0 pp 108
Full detail — conditional rates, both directions, drift reconciliation
target / stop long target firstshort target first short stop firstshort neither long, of resolvedshort, of resolved long resolvedshort resolved raw gapchange after detrendingdetrended gap stabilitylong tiesshort tiesn
+0.25% / −0.25% 50.4% 48.5% 51.3% 0.1% 50.5% 48.6% 100% 100% +1.9 pp -3.7 pp -1.8 pp HALVES DISAGREE 0.86% 0.86% 118,819
+0.25% / −0.5% 67.0% 64.5% 34.9% 0.6% 67.4% 64.9% 99% 99% +2.5 pp -4.0 pp -1.5 pp HALVES DISAGREE 0.44% 0.60% 118,819
+0.25% / −1% 79.3% 75.9% 20.7% 3.4% 81.8% 78.6% 97% 97% +3.2 pp -3.5 pp -0.4 pp HALVES DISAGREE 0.06% 0.06% 118,819
+0.25% / −2% 84.5% 80.5% 8.3% 11.2% 93.1% 90.7% 91% 89% +2.4 pp -2.4 pp -0.0 pp HALVES DISAGREE 0.00% 0.00% 118,819
+0.25% / −3% 85.1% 81.2% 2.9% 15.9% 97.1% 96.5% 88% 84% +0.6 pp -1.2 pp -0.6 pp halves agree 0.00% 0.00% 118,819
+0.5% / −0.25% 34.3% 32.0% 67.4% 0.6% 34.5% 32.2% 99% 99% +2.3 pp -4.0 pp -1.6 pp HALVES DISAGREE 0.60% 0.44% 118,819
+0.5% / −0.5% 51.0% 46.6% 51.2% 2.2% 52.1% 47.6% 98% 98% +4.5 pp -5.1 pp -0.6 pp HALVES DISAGREE 0.21% 0.21% 118,819
+0.5% / −1% 64.5% 58.7% 32.8% 8.5% 70.4% 64.2% 92% 91% +6.2 pp -5.3 pp +0.8 pp HALVES DISAGREE 0.01% 0.01% 118,819
+0.5% / −2% 70.6% 64.1% 13.1% 22.8% 88.3% 83.0% 80% 77% +5.2 pp -4.2 pp +1.0 pp HALVES DISAGREE 0.00% 0.00% 118,819
+0.5% / −3% 71.3% 64.8% 4.7% 30.4% 94.7% 93.2% 75% 70% +1.5 pp -2.2 pp -0.7 pp HALVES DISAGREE 0.00% 0.00% 118,819
+1% / −0.25% 20.6% 17.6% 79.4% 3.0% 21.3% 18.2% 97% 97% +3.2 pp -3.5 pp -0.4 pp HALVES DISAGREE 0.06% 0.06% 118,819
+1% / −0.5% 32.7% 27.1% 64.5% 8.4% 35.8% 29.6% 91% 92% +6.2 pp -5.3 pp +0.8 pp HALVES DISAGREE 0.01% 0.01% 118,819
+1% / −1% 42.9% 35.9% 42.9% 21.2% 54.4% 45.6% 79% 79% +8.8 pp -7.2 pp +1.6 pp HALVES DISAGREE 0.00% 0.00% 118,819
+1% / −2% 47.5% 39.8% 16.4% 43.8% 79.2% 70.8% 60% 56% +8.4 pp -7.0 pp +1.4 pp HALVES DISAGREE 0.00% 0.00% 118,819
+1% / −3% 48.0% 40.4% 6.0% 53.7% 90.0% 87.1% 53% 46% +2.9 pp -4.1 pp -1.2 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −0.25% 8.3% 6.3% 84.5% 9.2% 9.3% 6.9% 89% 91% +2.4 pp -2.4 pp -0.0 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −0.5% 13.1% 9.4% 70.6% 20.0% 17.0% 11.7% 77% 80% +5.2 pp -4.2 pp +1.0 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −1% 16.4% 12.5% 47.5% 40.1% 29.2% 20.8% 56% 60% +8.4 pp -7.0 pp +1.4 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −2% 17.8% 14.2% 17.8% 68.0% 55.6% 44.4% 32% 32% +11.2 pp -11.1 pp +0.1 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −3% 18.1% 14.5% 6.7% 78.8% 74.0% 68.5% 24% 21% +5.5 pp -9.4 pp -3.8 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −0.25% 2.9% 2.5% 85.1% 12.4% 3.5% 2.9% 84% 88% +0.6 pp -1.2 pp -0.6 pp halves agree 0.00% 0.00% 118,819
+3% / −0.5% 4.7% 4.0% 71.3% 24.8% 6.8% 5.3% 70% 75% +1.5 pp -2.2 pp -0.7 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −1% 6.0% 5.3% 48.0% 46.7% 12.9% 10.0% 46% 53% +2.9 pp -4.1 pp -1.2 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −2% 6.7% 6.3% 18.1% 75.6% 31.5% 26.0% 21% 24% +5.5 pp -9.4 pp -3.8 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −3% 6.8% 6.5% 6.8% 86.7% 51.3% 48.7% 13% 13% +2.5 pp -11.8 pp -9.3 pp HALVES DISAGREE 0.00% 0.00% 118,819

The three gap columns add: raw + change after detrending = detrended gap. Only the detrended gap is tested and only it carries the interval in the table above. “Of resolved” is the target-first rate among entries that reached either barrier — on cells where little resolves it can read near 100% while the unconditional rate is modest.

Sampling check: re-running this horizon on 526 strictly non-overlapping entries (rather than 118,819 every-bar entries) moves the asymmetry by a median of 2.1 pp and at most 7.9 pp.

5d horizon

264 non-overlapping entries · 367 coverage-span equivalents · median 276 bars per window

At this horizon: 0.25% ≈ 0.13σ · 0.5% ≈ 0.25σ · 1% ≈ 0.51σ · 2% ≈ 1.01σ · 3% ≈ 1.50σ — the same percentage barrier is a far bigger move at 4h than at 5d, which is most of why resolution rates differ across horizons.

2026-08-03T11:19:33.282109 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/

Shares of all long entries, not of the ones that resolved: the three add to 100%. “Neither” is the entry still open when the horizon expired — its share is the column below, and across this site it runs from near zero to nearly every entry depending on the horizon and how wide the rungs are. What happened inside those windows is measured in the next section, from intrabar highs and lows.

target / stoplong target firstlong stop first long neitherexcess (long − short)95% CI long effective n
+0.25% / −0.25% 50.5% 49.5% 0.0% -1.8 pp -4.3 to +0.7 pp 5988
+0.25% / −0.5% 67.2% 32.7% 0.0% -1.5 pp -4.5 to +1.5 pp 3569
+0.25% / −1% 80.7% 18.8% 0.4% -0.4 pp -3.5 to +2.6 pp 2191
+0.25% / −2% 87.6% 8.1% 4.3% +0.4 pp -2.1 to +3.1 pp 1541
+0.25% / −3% 88.6% 3.9% 7.5% -0.1 pp -1.8 to +1.8 pp 1518
+0.5% / −0.25% 34.6% 65.4% 0.0% -1.7 pp -4.7 to +1.3 pp 3582
+0.5% / −0.5% 52.1% 47.8% 0.1% -0.6 pp -5.0 to +3.6 pp 2148
+0.5% / −1% 68.0% 29.9% 2.1% +0.4 pp -4.7 to +5.1 pp 1393
+0.5% / −2% 76.8% 12.5% 10.7% +1.9 pp -2.1 to +6.1 pp 1004
+0.5% / −3% 78.1% 6.1% 15.8% +0.6 pp -2.4 to +3.9 pp 907
+1% / −0.25% 22.2% 77.4% 0.4% -0.4 pp -3.5 to +2.5 pp 2238
+1% / −0.5% 36.1% 62.3% 1.6% +0.4 pp -4.7 to +5.1 pp 1316
+1% / −1% 49.6% 41.2% 9.2% +1.0 pp -6.1 to +7.6 pp 861
+1% / −2% 57.5% 17.1% 25.3% +3.4 pp -2.9 to +10.6 pp 583
+1% / −3% 58.7% 8.4% 32.9% +0.9 pp -4.4 to +6.7 pp 524
+2% / −0.25% 11.2% 83.8% 5.0% +0.4 pp -2.1 to +3.1 pp 1479
+2% / −0.5% 18.5% 70.0% 11.5% +1.9 pp -2.1 to +6.1 pp 821
+2% / −1% 24.9% 47.5% 27.6% +3.4 pp -2.9 to +10.6 pp 517
+2% / −2% 28.2% 20.7% 51.1% +4.4 pp -5.5 to +16.4 pp 320
+2% / −3% 28.7% 10.4% 60.9% +1.3 pp -9.8 to +13.4 pp 262
+3% / −0.25% 5.5% 84.9% 9.6% -0.1 pp -1.8 to +1.8 pp 1221
+3% / −0.5% 8.8% 71.4% 19.8% +0.6 pp -2.4 to +3.9 pp 683
+3% / −1% 11.5% 48.8% 39.7% +0.9 pp -4.4 to +6.7 pp 420
+3% / −2% 13.0% 21.4% 65.6% +1.3 pp -9.8 to +13.4 pp 218
+3% / −3% 13.4% 10.6% 76.1% -0.4 pp -17.3 to +16.0 pp 151
Full detail — conditional rates, both directions, drift reconciliation
target / stop long target firstshort target first short stop firstshort neither long, of resolvedshort, of resolved long resolvedshort resolved raw gapchange after detrendingdetrended gap stabilitylong tiesshort tiesn
+0.25% / −0.25% 50.5% 48.6% 51.4% 0.0% 50.5% 48.6% 100% 100% +1.9 pp -3.7 pp -1.8 pp HALVES DISAGREE 0.86% 0.86% 118,819
+0.25% / −0.5% 67.2% 64.8% 35.2% 0.0% 67.2% 64.8% 100% 100% +2.4 pp -4.0 pp -1.5 pp HALVES DISAGREE 0.44% 0.60% 118,819
+0.25% / −1% 80.7% 77.3% 22.2% 0.4% 81.1% 77.7% 100% 100% +3.4 pp -3.8 pp -0.4 pp HALVES DISAGREE 0.06% 0.06% 118,819
+0.25% / −2% 87.6% 83.8% 11.2% 5.0% 91.5% 88.2% 96% 95% +3.3 pp -3.0 pp +0.4 pp HALVES DISAGREE 0.00% 0.00% 118,819
+0.25% / −3% 88.6% 84.9% 5.5% 9.6% 95.8% 94.0% 92% 90% +1.8 pp -1.9 pp -0.1 pp HALVES DISAGREE 0.00% 0.00% 118,819
+0.5% / −0.25% 34.6% 32.3% 67.7% 0.0% 34.6% 32.3% 100% 100% +2.3 pp -4.0 pp -1.7 pp HALVES DISAGREE 0.60% 0.44% 118,819
+0.5% / −0.5% 52.1% 47.6% 52.3% 0.1% 52.1% 47.6% 100% 100% +4.5 pp -5.1 pp -0.6 pp HALVES DISAGREE 0.21% 0.21% 118,819
+0.5% / −1% 68.0% 62.2% 36.1% 1.6% 69.5% 63.3% 98% 98% +6.2 pp -5.8 pp +0.4 pp HALVES DISAGREE 0.01% 0.01% 118,819
+0.5% / −2% 76.8% 70.0% 18.5% 11.5% 86.0% 79.1% 89% 89% +6.9 pp -5.0 pp +1.9 pp HALVES DISAGREE 0.00% 0.00% 118,819
+0.5% / −3% 78.1% 71.4% 8.8% 19.8% 92.7% 89.0% 84% 80% +3.7 pp -3.1 pp +0.6 pp HALVES DISAGREE 0.00% 0.00% 118,819
+1% / −0.25% 22.2% 18.8% 80.8% 0.4% 22.3% 18.8% 100% 100% +3.4 pp -3.8 pp -0.4 pp HALVES DISAGREE 0.06% 0.06% 118,819
+1% / −0.5% 36.1% 29.9% 68.0% 2.1% 36.7% 30.5% 98% 98% +6.2 pp -5.8 pp +0.4 pp HALVES DISAGREE 0.01% 0.01% 118,819
+1% / −1% 49.6% 41.2% 49.6% 9.2% 54.6% 45.4% 91% 91% +9.2 pp -8.1 pp +1.0 pp HALVES DISAGREE 0.00% 0.00% 118,819
+1% / −2% 57.5% 47.5% 24.9% 27.6% 77.1% 65.7% 75% 72% +11.4 pp -8.0 pp +3.4 pp HALVES DISAGREE 0.00% 0.00% 118,819
+1% / −3% 58.7% 48.8% 11.5% 39.7% 87.4% 81.0% 67% 60% +6.4 pp -5.6 pp +0.9 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −0.25% 11.2% 8.1% 87.6% 4.3% 11.8% 8.5% 95% 96% +3.3 pp -3.0 pp +0.4 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −0.5% 18.5% 12.5% 76.8% 10.7% 20.9% 14.0% 89% 89% +6.9 pp -5.0 pp +1.9 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −1% 24.9% 17.1% 57.5% 25.3% 34.3% 22.9% 72% 75% +11.4 pp -8.0 pp +3.4 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −2% 28.2% 20.7% 28.2% 51.1% 57.6% 42.4% 49% 49% +15.3 pp -10.9 pp +4.4 pp HALVES DISAGREE 0.00% 0.00% 118,819
+2% / −3% 28.7% 21.4% 13.0% 65.6% 73.5% 62.1% 39% 34% +11.4 pp -10.0 pp +1.3 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −0.25% 5.5% 3.9% 88.6% 7.5% 6.0% 4.2% 90% 92% +1.8 pp -1.9 pp -0.1 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −0.5% 8.8% 6.1% 78.1% 15.8% 11.0% 7.3% 80% 84% +3.7 pp -3.1 pp +0.6 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −1% 11.5% 8.4% 58.7% 32.9% 19.0% 12.6% 60% 67% +6.4 pp -5.6 pp +0.9 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −2% 13.0% 10.4% 28.7% 60.9% 37.9% 26.5% 34% 39% +11.4 pp -10.0 pp +1.3 pp HALVES DISAGREE 0.00% 0.00% 118,819
+3% / −3% 13.4% 10.6% 13.4% 76.1% 55.8% 44.2% 24% 24% +11.6 pp -12.0 pp -0.4 pp HALVES DISAGREE 0.00% 0.00% 118,819

The three gap columns add: raw + change after detrending = detrended gap. Only the detrended gap is tested and only it carries the interval in the table above. “Of resolved” is the target-first rate among entries that reached either barrier — on cells where little resolves it can read near 100% while the unconditional rate is modest.

Sampling check: re-running this horizon on 264 strictly non-overlapping entries (rather than 118,819 every-bar entries) moves the asymmetry by a median of 5.5 pp and at most 22.5 pp.

Across the 4 horizons this window publishes, 20 of 24 cells that look significant uncorrected survive Benjamini–Hochberg at q=0.05, and 8 of those 20 Benjamini–Hochberg survivors also agree across both halves of history — survives Benjamini-Hochberg AND both halves of history agree in sign. Only confirmed cells are shown in bold and ringed on the charts; a cell that is significant but not confirmed keeps its colour, its number and its interval, marked “not confirmed” rather than hidden. The gaps between all three counts are themselves the point.

How much heat, and how far it runs

Not every window in the barrier grid above resolves: especially at shorter horizons and wider rungs, many windows touch neither barrier before the horizon runs out. This section measures what those windows did anyway, resolved or not — how far price ran in the trader's favour (MFE) and how much heat it took against them (MAE) — from intrabar high and low, never from closes: a stop is hit by the low, not the close. See methodology.

MFE is signed positive and MAE is signed negative. For MFE the higher quantile is the better outcome; for MAE it is the opposite — the lower (more negative) quantile is the worse drawdown, and the higher quantile is the mildest one. The tables below label each MAE column by what it means, not just by its quantile, so the two are never read the same way by mistake.

At the 4h horizon, a +1% / −1% bracket resolves — hits target or stop — in only 7.7% of long entries; the other 92.3% touch neither barrier inside the horizon. Across every 4h window regardless of whether it resolved, the median run in the trader's favour (MFE) was +0.20% and the best tenth of windows reached +0.65%, while the median heat taken against them (MAE) was -0.19% and the worst tenth of windows drew down -0.67% — that is what the rest of the grid's “neither” column was doing instead of resolving.

4h horizon — excursions

7,770 non-overlapping entries · 11,022 coverage-span equivalents.

Sidenon-overlapping entries MFE medianMFE p90 — best case MAE median — typical heatMAE p10 — worst-case heat
Long 7,770 +0.20% +0.65% -0.19% -0.67%
Short 7,770 +0.19% +0.67% -0.19% -0.64%
Heat before the win, by target/stop — long side only

Long-side reading only — there is no short-side version of this table. Of long entries whose maximum favourable excursion reached at least the target rung, what share drew down past the stop rung before the target was reached — i.e. would the stop already have closed a trade that went on to work. A drawdown that happens after the target was reached does not count: the position was already closed by then. Keyed by the same target/stop rungs as the barrier grid above, so the two tables read side by side. See methodology.

target / stopqualifying long entries share drew down past stop firsteffective n
+0.25% / −0.25% 48,042 13.6% 2902
+0.25% / −0.5% 48,042 3.1% 3040
+0.25% / −1% 48,042 0.3% 3666
+0.25% / −2% 48,042 0.0% 9429
+0.25% / −3% 48,042 0.0% 23830
+0.5% / −0.25% 19,219 18.6% 1276
+0.5% / −0.5% 19,219 5.1% 891
+0.5% / −1% 19,219 0.7% 1037
+0.5% / −2% 19,219 0.1% 4814
+0.5% / −3% 19,219 0.0% 6358
+1% / −0.25% 4,181 25.3% 313
+1% / −0.5% 4,181 8.6% 213
+1% / −1% 4,181 1.7% 336
+1% / −2% 4,181 0.3% 1288
+1% / −3% 4,181 0.1% 1207
+2% / −0.25% 458 32.8% 47
+2% / −0.5% 458 17.0% 45
+2% / −1% 458 4.4% 94
+2% / −2% 458 1.5% 208
+2% / −3% 458 0.9% 175
+3% / −0.25% insufficient data — 95 qualifying long entries, against a floor of 100, or an effective sample size below 30
+3% / −0.5% insufficient data — 95 qualifying long entries, against a floor of 100, or an effective sample size below 30
+3% / −1% insufficient data — 95 qualifying long entries, against a floor of 100, or an effective sample size below 30
+3% / −2% insufficient data — 95 qualifying long entries, against a floor of 100, or an effective sample size below 30
+3% / −3% insufficient data — 95 qualifying long entries, against a floor of 100, or an effective sample size below 30

1d horizon — excursions

1,298 non-overlapping entries · 1,837 coverage-span equivalents.

Sidenon-overlapping entries MFE medianMFE p90 — best case MAE median — typical heatMAE p10 — worst-case heat
Long 1,298 +0.55% +1.60% -0.49% -1.58%
Short 1,298 +0.49% +1.61% -0.55% -1.57%
Heat before the win, by target/stop — long side only

Long-side reading only — there is no short-side version of this table. Of long entries whose maximum favourable excursion reached at least the target rung, what share drew down past the stop rung before the target was reached — i.e. would the stop already have closed a trade that went on to work. A drawdown that happens after the target was reached does not count: the position was already closed by then. Keyed by the same target/stop rungs as the barrier grid above, so the two tables read side by side. See methodology.

target / stopqualifying long entries share drew down past stop firsteffective n
+0.25% / −0.25% 87,358 32.5% 5891
+0.25% / −0.5% 87,358 13.0% 3585
+0.25% / −1% 87,358 2.3% 3201
+0.25% / −2% 87,358 0.2% 5656
+0.25% / −3% 87,358 0.1% 5632
+0.5% / −0.25% 63,524 39.3% 2524
+0.5% / −0.5% 63,524 15.9% 1611
+0.5% / −1% 63,524 3.3% 1495
+0.5% / −2% 63,524 0.4% 2527
+0.5% / −3% 63,524 0.1% 2575
+1% / −0.25% 30,131 41.2% 1072
+1% / −0.5% 30,131 17.5% 763
+1% / −1% 30,131 4.5% 680
+1% / −2% 30,131 0.6% 1103
+1% / −3% 30,131 0.3% 1034
+2% / −0.25% 6,417 45.5% 259
+2% / −0.5% 6,417 21.6% 162
+2% / −1% 6,417 6.3% 183
+2% / −2% 6,417 1.8% 202
+2% / −3% 6,417 1.3% 231
+3% / −0.25% 2,031 53.7% 90
+3% / −0.5% 2,031 31.1% 60
+3% / −1% 2,031 10.1% 60
+3% / −2% 2,031 3.5% 85
+3% / −3% 2,031 2.6% 121

3d horizon — excursions

526 non-overlapping entries · 612 coverage-span equivalents.

Sidenon-overlapping entries MFE medianMFE p90 — best case MAE median — typical heatMAE p10 — worst-case heat
Long 526 +0.95% +2.60% -0.78% -2.44%
Short 526 +0.79% +2.50% -0.94% -2.54%
Heat before the win, by target/stop — long side only

Long-side reading only — there is no short-side version of this table. Of long entries whose maximum favourable excursion reached at least the target rung, what share drew down past the stop rung before the target was reached — i.e. would the stop already have closed a trade that went on to work. A drawdown that happens after the target was reached does not count: the position was already closed by then. Keyed by the same target/stop rungs as the barrier grid above, so the two tables read side by side. See methodology.

target / stopqualifying long entries share drew down past stop firsteffective n
+0.25% / −0.25% 101,288 39.8% 7661
+0.25% / −0.5% 101,288 20.9% 4708
+0.25% / −1% 101,288 6.9% 2821
+0.25% / −2% 101,288 0.9% 3974
+0.25% / −3% 101,288 0.2% 4497
+0.5% / −0.25% 84,968 51.2% 3853
+0.5% / −0.5% 84,968 28.4% 2319
+0.5% / −1% 84,968 9.8% 1446
+0.5% / −2% 84,968 1.3% 2153
+0.5% / −3% 84,968 0.4% 2665
+1% / −0.25% 57,285 57.1% 1902
+1% / −0.5% 57,285 32.1% 1127
+1% / −1% 57,285 11.1% 817
+1% / −2% 57,285 1.5% 1272
+1% / −3% 57,285 0.4% 1250
+2% / −0.25% 21,650 54.5% 712
+2% / −0.5% 21,650 28.2% 441
+2% / −1% 21,650 9.9% 400
+2% / −2% 21,650 2.2% 520
+2% / −3% 21,650 0.7% 504
+3% / −0.25% 8,187 57.6% 272
+3% / −0.5% 8,187 31.4% 157
+3% / −1% 8,187 13.3% 154
+3% / −2% 8,187 3.0% 218
+3% / −3% 8,187 1.1% 237

5d horizon — excursions

264 non-overlapping entries · 367 coverage-span equivalents.

Sidenon-overlapping entries MFE medianMFE p90 — best case MAE median — typical heatMAE p10 — worst-case heat
Long 264 +1.25% +3.38% -0.99% -3.05%
Short 264 +1.00% +3.15% -1.23% -3.27%
Heat before the win, by target/stop — long side only

Long-side reading only — there is no short-side version of this table. Of long entries whose maximum favourable excursion reached at least the target rung, what share drew down past the stop rung before the target was reached — i.e. would the stop already have closed a trade that went on to work. A drawdown that happens after the target was reached does not count: the position was already closed by then. Keyed by the same target/stop rungs as the barrier grid above, so the two tables read side by side. See methodology.

target / stopqualifying long entries share drew down past stop firsteffective n
+0.25% / −0.25% 105,657 42.2% 8513
+0.25% / −0.5% 105,657 23.9% 5445
+0.25% / −1% 105,657 9.1% 3271
+0.25% / −2% 105,657 1.5% 3019
+0.25% / −3% 105,657 0.4% 2873
+0.5% / −0.25% 93,382 55.2% 4500
+0.5% / −0.5% 93,382 33.4% 2752
+0.5% / −1% 93,382 13.5% 1652
+0.5% / −2% 93,382 2.3% 1668
+0.5% / −3% 93,382 0.7% 1551
+1% / −0.25% 70,235 62.4% 2444
+1% / −0.5% 70,235 38.9% 1395
+1% / −1% 70,235 16.1% 887
+1% / −2% 70,235 2.7% 1194
+1% / −3% 70,235 0.8% 1086
+2% / −0.25% 34,491 61.3% 1148
+2% / −0.5% 34,491 36.3% 631
+2% / −1% 34,491 14.3% 479
+2% / −2% 34,491 3.0% 538
+2% / −3% 34,491 1.1% 552
+3% / −0.25% 16,135 59.8% 447
+3% / −0.5% 16,135 35.1% 258
+3% / −1% 16,135 15.6% 255
+3% / −2% 16,135 4.1% 282
+3% / −3% 16,135 1.6% 246

How far it moves, and what the spread costs

Horizonmedian movep90 movep99 move non-overlapping entriesn spread as share of median move
4h 0.18% 0.65% 1.61% 7,770 118,546 13.6%
1d 0.51% 1.61% 1,298 118,551 4.9%
3d 0.84% 2.49% 526 118,808 3.0%
5d 1.11% 3.14% 264 118,818 2.2%

Cost assumes a round-trip spread of 0.025% of price. That is a configured assumption, not a measurement — this feed publishes bid candles only, so there is no bid–ask in the data.

How move size scales with holding period

Sigma may be scaled by the square root of time; medians, stop distances and targets may not. Variance grows in proportion to time, so σ — its square root — grows with the square root of time. The typical move grows faster than that, so scaling a median from a short horizon to a longer one sets it too tight — on every asset and window this site publishes. The tails do not miss in one direction the way the median does, so a stop distance or a target is read off the measured table above, never scaled to it.

Horizonq√t factor from 4h median move, √t predictionmedian move, measured errormedian ÷ σkurtosis non-overlapping entriesn
4h 16 bars ×1.00 0.184% 0.184% +0.0% 0.417 17.4 7,770 118,546
1d 92 bars ×2.40 0.442% 0.506% +14.4% 0.487 9.6 1,298 118,551
3d 224 bars ×3.74 0.690% 0.843% +22.2% 0.526 9.0 526 118,808
5d 276 bars ×4.15 0.766% 1.115% +45.5% 0.559 7.5 264 118,818

A positive error means the real move is larger than √t predicts. The error is relative — (measured − predicted) ÷ predicted — not itself a move size in percent of price, even though it sits between two columns that are. The reason a positive error is the norm is in the last two columns: aggregation pulls the distribution toward normal, where median ÷ σ is 0.674 and kurtosis is 3.0. By the longest horizon this table actually publishes (5d), median ÷ σ is 0.559 and kurtosis is 7.5 — read those against the Gaussian reference above rather than assuming the shape has normalised by then.

The measurement behind it — variance ratio

VR(q) = Var(q-bar move) ÷ (q × Var(1-bar move)). Above 1 moves extend and a distant target is more reachable than its distance suggests; below 1 they retrace. The null is exactly 1. q is derived from this asset's own bar calendar, so “5d” is however many bars a five-calendar-day window actually contains — usually fewer than five trading days, because it swallows a weekend.

HorizonqVR95% interval as move size vs random walkrobust zp (robust) blockshomoskedastic z verdictsplit-half VR (first / second)
4h 16 bars ≈ 0.17 trading days 0.949 0.873 to 1.025 93% to 101% -1.32 0.188 7,427 -4.01 not significant 0.961 / 0.944 — halves agree
1d 92 bars ≈ 1.00 trading days 1.002 0.843 to 1.160 92% to 108% +0.02 0.984 1,291 +0.05 not significant 0.946 / 1.025 — HALVES DISAGREE
3d 224 bars ≈ 2.43 trading days 0.967 0.740 to 1.193 86% to 109% -0.29 0.774 530 -0.67 not significant 0.914 / 0.989 — halves agree
5d 276 bars ≈ 3.00 trading days 0.937 0.692 to 1.183 83% to 109% -0.50 0.617 430 -1.13 not significant 0.898 / 0.953 — halves agree

Only the robust z (and its p, the column so labelled) is tested; it allows the size of moves to change over time, which this asset's does. The homoskedastic z column assumes it does not, and is shown to make the gap visible: 1 of these horizons would look significant under it against 0 that survive Benjamini–Hochberg on the robust one. That difference is volatility clustering read as mean reversion, not a finding.

The verdict column applies one rule and states it in full: survives Benjamini-Hochberg on the robust standard error AND both halves of history agree in sign of (VR - 1). The split-half column is the second half of that rule shown as data — the same VR recomputed on each disjoint half of the window, at the same q. The comparison is on the sign of (VR − 1), not of VR: VR is always positive, so comparing raw signs would mark every pair as agreeing and the check could never fail. Halves that disagree do not overturn a significant result on their own; they stop it being called confirmed.

2026-08-03T11:19:33.371117 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/

Gap risk — A3

How far price moved while you could not trade. Split three ways and never pooled: a venue halt and a weekend are different phenomena and only one of them carries real overnight risk. No stop protects you across either.

Kindnmedianp90p99 >1× median bar>3×
session 0 insufficient data
weekend 254 0.045 5.765 39.085 32.7% 15.4%
daily break 1035 -0.147 1.247 6.074 6.5% 1.4%

Gaps are in USD/oz, signed. Median bar range for comparison: 2.513.

A1 — 15-minute range and true range (execution detail)

Kept for placing an entry, not as a headline: the horizon this site reports at is hours to days, and a multi-day stop sized to a 15-minute range is the error that shakes a trader out of positions that would have worked.

Range

Unitnmeanp10p25p50p75p90p95p99
USD/oz 118819 4.1831 0.9900 1.5000 2.5130 4.7500 8.8302 12.6800 25.7500
% of price 118819 0.1438 0.0493 0.0720 0.1095 0.1717 0.2672 0.3517 0.6420

True range

Unitnmeanp10p25p50p75p90p95p99
USD/oz 117530 4.1690 0.9900 1.5040 2.5200 4.7500 8.8100 12.6016 25.3571
% of price 117530 0.1435 0.0493 0.0720 0.1096 0.1717 0.2665 0.3502 0.6345

Trailing 12 months

23,548 bars · 2025-08-03T22:00:00+00:00 to 2026-08-02T23:45:00+00:00

Over this window the price drifted +21.3% a year. Each cell below shows how much of its long/short gap that drift accounts for; only the remainder is tested.

4h horizon

1,540 non-overlapping entries · 2,184 coverage-span equivalents · median 16 bars per window

At this horizon: 0.25% ≈ 0.34σ · 0.5% ≈ 0.68σ · 1% ≈ 1.35σ · 2% ≈ 2.69σ · 3% ≈ 4.01σ — the same percentage barrier is a far bigger move at 4h than at 5d, which is most of why resolution rates differ across horizons.

2026-08-03T11:19:33.452992 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/

Shares of all long entries, not of the ones that resolved: the three add to 100%. “Neither” is the entry still open when the horizon expired — its share is the column below, and across this site it runs from near zero to nearly every entry depending on the horizon and how wide the rungs are. What happened inside those windows is measured in the next section, from intrabar highs and lows.

target / stoplong target firstlong stop first long neitherexcess (long − short)95% CI long effective n
+0.25% / −0.25% 43.0% 45.6% 11.4% -3.4 pp -6.9 to +0.3 pp 2383
+0.25% / −0.5% 52.4% 23.6% 23.9% -3.4 pp -7.0 to +0.8 pp 1244
+0.25% / −1% 55.9% 7.4% 36.6% -2.8 pp -5.3 to -0.1 pp 723
+0.25% / −2% 56.4% 1.6% 42.0% -1.6 pp not confirmed -2.7 to -0.6 pp 611
+0.25% / −3% 56.5% 0.7% 42.8% -0.9 pp -1.6 to -0.2 pp 727
+0.5% / −0.25% 21.7% 53.9% 24.3% -3.4 pp -6.9 to +0.9 pp 2021
+0.5% / −0.5% 27.3% 28.9% 43.8% -4.5 pp -9.9 to +1.5 pp 1129
+0.5% / −1% 29.7% 9.6% 60.7% -5.8 pp -11.0 to -0.1 pp 477
+0.5% / −2% 30.1% 2.1% 67.8% -3.8 pp not confirmed -6.1 to -1.5 pp 278
+0.5% / −3% 30.1% 1.0% 68.9% -2.5 pp -4.4 to -0.6 pp 279
+1% / −0.25% 5.9% 56.5% 37.6% -2.8 pp -5.2 to -0.0 pp 1397
+1% / −0.5% 7.6% 30.7% 61.7% -5.9 pp -11.0 to -0.1 pp 748
+1% / −1% 8.4% 10.6% 81.0% -13.1 pp -22.9 to -2.7 pp 357
+1% / −2% 8.7% 2.5% 88.8% -13.1 pp not confirmed -19.2 to -5.6 pp 130
+1% / −3% 8.7% 1.2% 90.1% -9.6 pp not confirmed -14.9 to -3.0 pp 94
+2% / −0.25% 0.8% 56.8% 42.5% -1.6 pp not confirmed -2.7 to -0.6 pp 1172
+2% / −0.5% 1.0% 31.0% 68.0% -3.8 pp not confirmed -6.1 to -1.5 pp 505
+2% / −1% 1.2% 10.8% 88.0% -13.1 pp not confirmed -19.2 to -5.6 pp 181
+2% / −2% 1.3% 2.6% 96.1% -35.4 pp not confirmed -53.7 to -17.7 pp 105
+2% / −3% 1.3% 1.2% 97.5% -38.0 pp not confirmed -52.3 to -18.5 pp 55
+3% / −0.25% 0.2% 56.8% 43.0% -0.9 pp -1.6 to -0.2 pp 2146
+3% / −0.5% 0.2% 31.0% 68.7% -2.5 pp -4.4 to -0.6 pp 1100
+3% / −1% 0.3% 10.8% 88.9% -9.6 pp not confirmed -14.9 to -3.0 pp 317
+3% / −2% 0.4% 2.6% 97.0% -38.0 pp not confirmed -52.3 to -18.5 pp 128
+3% / −3% 0.4% 1.2% 98.4% -55.6 pp not confirmed -74.9 to -30.1 pp 54
Full detail — conditional rates, both directions, drift reconciliation
target / stop long target firstshort target first short stop firstshort neither long, of resolvedshort, of resolved long resolvedshort resolved raw gapchange after detrendingdetrended gap stabilitylong tiesshort tiesn
+0.25% / −0.25% 43.0% 44.3% 44.3% 11.4% 48.5% 50.0% 89% 89% -1.4 pp -1.9 pp -3.4 pp not computed: this window is too short for two halves to detect instability 1.33% 1.33% 23,538
+0.25% / −0.5% 52.4% 53.4% 22.2% 24.3% 68.9% 70.6% 76% 76% -1.7 pp -1.7 pp -3.4 pp not computed: this window is too short for two halves to detect instability 0.51% 0.48% 23,538
+0.25% / −1% 55.9% 56.4% 6.0% 37.6% 88.3% 90.4% 63% 62% -2.1 pp -0.7 pp -2.8 pp not computed: this window is too short for two halves to detect instability 0.11% 0.08% 23,538
+0.25% / −2% 56.4% 56.8% 0.8% 42.5% 97.2% 98.7% 58% 58% -1.5 pp -0.2 pp -1.6 pp not computed: this window is too short for two halves to detect instability 0.01% 0.00% 23,538
+0.25% / −3% 56.5% 56.8% 0.2% 43.0% 98.8% 99.6% 57% 57% -0.8 pp -0.1 pp -0.9 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+0.5% / −0.25% 21.7% 23.1% 52.9% 23.9% 28.7% 30.4% 76% 76% -1.7 pp -1.7 pp -3.4 pp not computed: this window is too short for two halves to detect instability 0.48% 0.51% 23,538
+0.5% / −0.5% 27.3% 28.6% 27.6% 43.8% 48.6% 51.0% 56% 56% -2.4 pp -2.2 pp -4.5 pp not computed: this window is too short for two halves to detect instability 0.24% 0.24% 23,538
+0.5% / −1% 29.7% 30.7% 7.7% 61.7% 75.6% 80.0% 39% 38% -4.4 pp -1.4 pp -5.8 pp not computed: this window is too short for two halves to detect instability 0.02% 0.03% 23,538
+0.5% / −2% 30.1% 31.0% 1.0% 68.0% 93.4% 96.9% 32% 32% -3.5 pp -0.3 pp -3.8 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+0.5% / −3% 30.1% 31.0% 0.2% 68.7% 96.8% 99.2% 31% 31% -2.4 pp -0.1 pp -2.5 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+1% / −0.25% 5.9% 7.3% 56.0% 36.6% 9.5% 11.5% 62% 63% -2.1 pp -0.7 pp -2.8 pp not computed: this window is too short for two halves to detect instability 0.08% 0.11% 23,538
+1% / −0.5% 7.6% 9.6% 29.7% 60.7% 19.9% 24.3% 38% 39% -4.4 pp -1.4 pp -5.9 pp not computed: this window is too short for two halves to detect instability 0.03% 0.02% 23,538
+1% / −1% 8.4% 10.6% 8.5% 81.0% 44.4% 55.6% 19% 19% -11.2 pp -1.9 pp -13.1 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+1% / −2% 8.7% 10.8% 1.2% 88.0% 77.5% 89.8% 11% 12% -12.3 pp -0.8 pp -13.1 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+1% / −3% 8.7% 10.8% 0.3% 88.9% 87.9% 97.0% 10% 11% -9.1 pp -0.5 pp -9.6 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −0.25% 0.8% 1.6% 56.4% 42.0% 1.3% 2.8% 58% 58% -1.4 pp -0.2 pp -1.6 pp not computed: this window is too short for two halves to detect instability 0.00% 0.01% 23,538
+2% / −0.5% 1.0% 2.1% 30.1% 67.8% 3.1% 6.6% 32% 32% -3.5 pp -0.3 pp -3.8 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −1% 1.2% 2.5% 8.7% 88.8% 10.2% 22.5% 12% 11% -12.3 pp -0.8 pp -13.1 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −2% 1.3% 2.6% 1.3% 96.1% 32.9% 67.1% 4% 4% -34.3 pp -1.1 pp -35.4 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −3% 1.3% 2.6% 0.4% 97.0% 51.0% 87.9% 3% 3% -36.9 pp -1.1 pp -38.0 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −0.25% 0.2% 0.7% 56.5% 42.8% 0.4% 1.2% 57% 57% -0.8 pp -0.1 pp -0.9 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −0.5% 0.2% 1.0% 30.1% 68.9% 0.8% 3.2% 31% 31% -2.4 pp -0.1 pp -2.5 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −1% 0.3% 1.2% 8.7% 90.1% 3.0% 12.1% 11% 10% -9.1 pp -0.5 pp -9.6 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −2% 0.4% 1.2% 1.3% 97.5% 12.1% 49.0% 3% 3% -36.9 pp -1.1 pp -38.0 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −3% 0.4% 1.2% 0.4% 98.4% 22.7% 77.3% 2% 2% -54.6 pp -1.0 pp -55.6 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538

The three gap columns add: raw + change after detrending = detrended gap. Only the detrended gap is tested and only it carries the interval in the table above. “Of resolved” is the target-first rate among entries that reached either barrier — on cells where little resolves it can read near 100% while the unconditional rate is modest.

12 Benjamini–Hochberg survivors in the 4h horizon — not computed: this window is too short for two halves to detect instability, so none can be confirmed here.

Sampling check: re-running this horizon on 1,540 strictly non-overlapping entries (rather than 23,538 every-bar entries) moves the asymmetry by a median of 0.7 pp and at most 8.4 pp.

1d horizon

258 non-overlapping entries · 364 coverage-span equivalents · median 92 bars per window

At this horizon: 0.25% ≈ 0.14σ · 0.5% ≈ 0.28σ · 1% ≈ 0.56σ · 2% ≈ 1.12σ · 3% ≈ 1.67σ — the same percentage barrier is a far bigger move at 4h than at 5d, which is most of why resolution rates differ across horizons.

2026-08-03T11:19:33.546042 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/

Shares of all long entries, not of the ones that resolved: the three add to 100%. “Neither” is the entry still open when the horizon expired — its share is the column below, and across this site it runs from near zero to nearly every entry depending on the horizon and how wide the rungs are. What happened inside those windows is measured in the next section, from intrabar highs and lows.

target / stoplong target firstlong stop first long neitherexcess (long − short)95% CI long effective n
+0.25% / −0.25% 48.1% 50.0% 1.9% -3.1 pp -7.0 to +1.1 pp 2047
+0.25% / −0.5% 64.1% 32.6% 3.4% -2.3 pp -7.2 to +2.5 pp 1388
+0.25% / −1% 75.6% 17.0% 7.4% -0.7 pp -5.3 to +4.1 pp 717
+0.25% / −2% 79.6% 7.2% 13.2% -2.6 pp -6.0 to +0.6 pp 448
+0.25% / −3% 79.9% 3.5% 16.6% -2.6 pp -4.6 to -0.5 pp 481
+0.5% / −0.25% 32.3% 64.7% 3.1% -2.3 pp -7.2 to +2.6 pp 1156
+0.5% / −0.5% 48.2% 45.9% 5.9% +0.1 pp -7.1 to +6.7 pp 745
+0.5% / −1% 60.0% 26.2% 13.9% -0.0 pp -7.6 to +7.8 pp 429
+0.5% / −2% 64.3% 11.2% 24.4% -4.4 pp -10.1 to +1.8 pp 260
+0.5% / −3% 64.7% 5.5% 29.8% -4.3 pp -8.0 to -0.5 pp 254
+1% / −0.25% 18.3% 74.0% 7.7% -0.6 pp -5.2 to +4.2 pp 853
+1% / −0.5% 28.3% 56.3% 15.5% -0.0 pp -7.6 to +7.8 pp 527
+1% / −1% 35.7% 33.5% 30.7% -1.1 pp -10.7 to +10.7 pp 304
+1% / −2% 38.5% 14.5% 47.0% -6.9 pp -18.2 to +4.7 pp 153
+1% / −3% 38.8% 7.2% 54.0% -7.0 pp -14.7 to +1.8 pp 126
+2% / −0.25% 5.8% 77.9% 16.3% -2.6 pp -6.0 to +0.7 pp 756
+2% / −0.5% 8.7% 60.3% 31.0% -4.4 pp -10.1 to +1.8 pp 428
+2% / −1% 11.6% 36.0% 52.4% -6.9 pp -18.2 to +4.7 pp 208
+2% / −2% 12.6% 15.9% 71.5% -16.9 pp -34.6 to +3.2 pp 102
+2% / −3% 12.7% 8.1% 79.2% -19.6 pp -36.0 to +0.7 pp 67
+3% / −0.25% 1.7% 78.2% 20.1% -2.6 pp -4.6 to -0.5 pp 656
+3% / −0.5% 2.8% 60.7% 36.5% -4.3 pp -8.0 to -0.5 pp 334
+3% / −1% 4.3% 36.4% 59.3% -7.0 pp -14.7 to +1.8 pp 142
+3% / −2% 4.8% 16.2% 79.0% -19.6 pp -36.0 to +0.7 pp 78
+3% / −3% 4.9% 8.2% 86.9% -28.2 pp -51.6 to -0.8 pp 50
Full detail — conditional rates, both directions, drift reconciliation
target / stop long target firstshort target first short stop firstshort neither long, of resolvedshort, of resolved long resolvedshort resolved raw gapchange after detrendingdetrended gap stabilitylong tiesshort tiesn
+0.25% / −0.25% 48.1% 48.7% 49.4% 1.9% 49.0% 49.6% 98% 98% -0.6 pp -2.5 pp -3.1 pp not computed: this window is too short for two halves to detect instability 1.35% 1.35% 23,538
+0.25% / −0.5% 64.1% 64.1% 32.8% 3.1% 66.3% 66.2% 97% 97% +0.1 pp -2.4 pp -2.3 pp not computed: this window is too short for two halves to detect instability 0.55% 0.53% 23,538
+0.25% / −1% 75.6% 73.9% 18.4% 7.7% 81.7% 80.0% 93% 92% +1.6 pp -2.4 pp -0.7 pp not computed: this window is too short for two halves to detect instability 0.19% 0.17% 23,538
+0.25% / −2% 79.6% 77.9% 5.8% 16.3% 91.7% 93.1% 87% 84% -1.4 pp -1.3 pp -2.6 pp not computed: this window is too short for two halves to detect instability 0.01% 0.00% 23,538
+0.25% / −3% 79.9% 78.2% 1.7% 20.1% 95.8% 97.9% 83% 80% -2.1 pp -0.5 pp -2.6 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+0.5% / −0.25% 32.3% 32.0% 64.6% 3.4% 33.3% 33.1% 97% 97% +0.1 pp -2.4 pp -2.3 pp not computed: this window is too short for two halves to detect instability 0.53% 0.55% 23,538
+0.5% / −0.5% 48.2% 45.6% 48.5% 5.9% 51.3% 48.4% 94% 94% +2.8 pp -2.8 pp +0.1 pp not computed: this window is too short for two halves to detect instability 0.28% 0.28% 23,538
+0.5% / −1% 60.0% 56.2% 28.3% 15.5% 69.6% 66.5% 86% 85% +3.1 pp -3.1 pp -0.0 pp not computed: this window is too short for two halves to detect instability 0.02% 0.03% 23,538
+0.5% / −2% 64.3% 60.3% 8.7% 31.0% 85.2% 87.4% 76% 69% -2.2 pp -2.2 pp -4.4 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+0.5% / −3% 64.7% 60.7% 2.8% 36.5% 92.2% 95.6% 70% 63% -3.4 pp -0.9 pp -4.3 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+1% / −0.25% 18.3% 16.8% 75.8% 7.4% 19.8% 18.1% 92% 93% +1.7 pp -2.3 pp -0.6 pp not computed: this window is too short for two halves to detect instability 0.17% 0.19% 23,538
+1% / −0.5% 28.3% 26.1% 60.0% 13.9% 33.5% 30.3% 85% 86% +3.1 pp -3.1 pp -0.0 pp not computed: this window is too short for two halves to detect instability 0.03% 0.02% 23,538
+1% / −1% 35.7% 33.5% 35.7% 30.7% 51.6% 48.4% 69% 69% +3.2 pp -4.3 pp -1.1 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+1% / −2% 38.5% 36.0% 11.6% 52.4% 72.6% 75.7% 53% 48% -3.1 pp -3.8 pp -6.9 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+1% / −3% 38.8% 36.4% 4.3% 59.3% 84.4% 89.5% 46% 41% -5.2 pp -1.9 pp -7.0 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −0.25% 5.8% 7.2% 79.6% 13.2% 6.9% 8.3% 84% 87% -1.4 pp -1.3 pp -2.6 pp not computed: this window is too short for two halves to detect instability 0.00% 0.01% 23,538
+2% / −0.5% 8.7% 11.2% 64.3% 24.4% 12.6% 14.8% 69% 76% -2.2 pp -2.2 pp -4.4 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −1% 11.6% 14.5% 38.5% 47.0% 24.3% 27.4% 48% 53% -3.1 pp -3.8 pp -6.9 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −2% 12.6% 15.9% 12.6% 71.5% 44.2% 55.8% 28% 28% -11.7 pp -5.2 pp -16.9 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −3% 12.7% 16.2% 4.8% 79.0% 61.1% 77.1% 21% 21% -16.0 pp -3.6 pp -19.6 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −0.25% 1.7% 3.5% 79.9% 16.6% 2.1% 4.2% 80% 83% -2.1 pp -0.5 pp -2.6 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −0.5% 2.8% 5.5% 64.7% 29.8% 4.4% 7.8% 63% 70% -3.4 pp -0.9 pp -4.3 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −1% 4.3% 7.2% 38.8% 54.0% 10.5% 15.6% 41% 46% -5.2 pp -1.9 pp -7.0 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −2% 4.8% 8.1% 12.7% 79.2% 22.9% 38.9% 21% 21% -16.0 pp -3.6 pp -19.6 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −3% 4.9% 8.2% 4.9% 86.9% 37.4% 62.6% 13% 13% -25.3 pp -2.9 pp -28.2 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538

The three gap columns add: raw + change after detrending = detrended gap. Only the detrended gap is tested and only it carries the interval in the table above. “Of resolved” is the target-first rate among entries that reached either barrier — on cells where little resolves it can read near 100% while the unconditional rate is modest.

Sampling check: re-running this horizon on 258 strictly non-overlapping entries (rather than 23,538 every-bar entries) moves the asymmetry by a median of 3.4 pp and at most 12.1 pp.

3d horizon

105 non-overlapping entries · 121 coverage-span equivalents · median 222 bars per window

At this horizon: 0.25% ≈ 0.09σ · 0.5% ≈ 0.18σ · 1% ≈ 0.36σ · 2% ≈ 0.72σ · 3% ≈ 1.08σ — the same percentage barrier is a far bigger move at 4h than at 5d, which is most of why resolution rates differ across horizons.

2026-08-03T11:19:33.636428 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/

Shares of all long entries, not of the ones that resolved: the three add to 100%. “Neither” is the entry still open when the horizon expired — its share is the column below, and across this site it runs from near zero to nearly every entry depending on the horizon and how wide the rungs are. What happened inside those windows is measured in the next section, from intrabar highs and lows.

target / stoplong target firstlong stop first long neitherexcess (long − short)95% CI long effective n
+0.25% / −0.25% 49.0% 51.0% 0.0% -3.0 pp -7.0 to +1.3 pp 1983
+0.25% / −0.5% 66.0% 33.8% 0.2% -2.0 pp -6.9 to +3.0 pp 1363
+0.25% / −1% 80.5% 18.9% 0.7% +1.2 pp -3.8 to +6.6 pp 720
+0.25% / −2% 87.6% 9.6% 2.8% -0.2 pp -4.3 to +4.4 pp 475
+0.25% / −3% 89.3% 5.5% 5.2% -1.3 pp -4.5 to +2.1 pp 432
+0.5% / −0.25% 33.7% 66.2% 0.2% -2.0 pp -6.8 to +3.0 pp 1105
+0.5% / −0.5% 51.4% 48.1% 0.5% +0.8 pp -6.2 to +7.8 pp 745
+0.5% / −1% 67.9% 30.0% 2.1% +3.2 pp -4.2 to +11.1 pp 428
+0.5% / −2% 76.9% 16.1% 7.0% -0.4 pp -7.5 to +7.5 pp 283
+0.5% / −3% 79.3% 9.5% 11.2% -2.1 pp -7.6 to +4.3 pp 236
+1% / −0.25% 22.4% 77.1% 0.6% +1.3 pp -3.7 to +6.7 pp 730
+1% / −0.5% 36.5% 61.6% 1.9% +3.2 pp -4.2 to +11.1 pp 457
+1% / −1% 49.5% 42.1% 8.4% +3.4 pp -7.7 to +15.3 pp 273
+1% / −2% 57.1% 23.3% 19.6% -1.2 pp -12.8 to +11.7 pp 165
+1% / −3% 58.9% 13.9% 27.2% -3.9 pp -14.3 to +8.1 pp 128
+2% / −0.25% 11.0% 83.5% 5.5% -0.2 pp -4.3 to +4.4 pp 582
+2% / −0.5% 17.7% 70.0% 12.3% -0.4 pp -7.5 to +7.5 pp 348
+2% / −1% 24.0% 49.5% 26.5% -1.2 pp -12.8 to +11.7 pp 199
+2% / −2% 27.7% 27.8% 44.6% -6.2 pp -22.9 to +13.8 pp 107
+2% / −3% 28.8% 17.1% 54.2% -9.7 pp -27.1 to +11.0 pp 75
+3% / −0.25% 5.1% 84.8% 10.0% -1.3 pp -4.5 to +2.1 pp 459
+3% / −0.5% 8.6% 71.9% 19.5% -2.1 pp -7.6 to +4.3 pp 268
+3% / −1% 11.7% 51.1% 37.1% -3.9 pp -14.3 to +8.1 pp 155
+3% / −2% 14.0% 28.9% 57.1% -9.7 pp -27.1 to +11.0 pp 85
+3% / −3% 14.5% 17.6% 68.0% -15.2 pp -37.6 to +12.7 pp 55
Full detail — conditional rates, both directions, drift reconciliation
target / stop long target firstshort target first short stop firstshort neither long, of resolvedshort, of resolved long resolvedshort resolved raw gapchange after detrendingdetrended gap stabilitylong tiesshort tiesn
+0.25% / −0.25% 49.0% 49.5% 50.5% 0.0% 49.0% 49.5% 100% 100% -0.5 pp -2.5 pp -3.0 pp not computed: this window is too short for two halves to detect instability 1.48% 1.48% 23,538
+0.25% / −0.5% 66.0% 65.6% 34.3% 0.2% 66.1% 65.7% 100% 100% +0.4 pp -2.4 pp -2.0 pp not computed: this window is too short for two halves to detect instability 0.62% 0.61% 23,538
+0.25% / −1% 80.5% 76.9% 22.6% 0.6% 81.0% 77.3% 99% 99% +3.7 pp -2.5 pp +1.2 pp not computed: this window is too short for two halves to detect instability 0.28% 0.20% 23,538
+0.25% / −2% 87.6% 83.5% 11.0% 5.5% 90.1% 88.3% 97% 95% +1.8 pp -2.0 pp -0.2 pp not computed: this window is too short for two halves to detect instability 0.01% 0.00% 23,538
+0.25% / −3% 89.3% 84.8% 5.1% 10.0% 94.2% 94.3% 95% 90% -0.0 pp -1.3 pp -1.3 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+0.5% / −0.25% 33.7% 33.2% 66.6% 0.2% 33.7% 33.3% 100% 100% +0.5 pp -2.4 pp -2.0 pp not computed: this window is too short for two halves to detect instability 0.61% 0.62% 23,538
+0.5% / −0.5% 51.4% 47.8% 51.8% 0.5% 51.6% 48.0% 100% 100% +3.6 pp -2.8 pp +0.8 pp not computed: this window is too short for two halves to detect instability 0.35% 0.35% 23,538
+0.5% / −1% 67.9% 61.6% 36.5% 1.9% 69.3% 62.8% 98% 98% +6.5 pp -3.3 pp +3.2 pp not computed: this window is too short for two halves to detect instability 0.03% 0.04% 23,538
+0.5% / −2% 76.9% 70.0% 17.7% 12.3% 82.7% 79.8% 93% 88% +2.9 pp -3.2 pp -0.4 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+0.5% / −3% 79.3% 71.9% 8.6% 19.5% 89.3% 89.3% 89% 80% +0.0 pp -2.1 pp -2.1 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+1% / −0.25% 22.4% 18.6% 80.8% 0.7% 22.5% 18.7% 99% 99% +3.8 pp -2.5 pp +1.3 pp not computed: this window is too short for two halves to detect instability 0.20% 0.28% 23,538
+1% / −0.5% 36.5% 30.0% 67.9% 2.1% 37.2% 30.6% 98% 98% +6.5 pp -3.3 pp +3.2 pp not computed: this window is too short for two halves to detect instability 0.04% 0.03% 23,538
+1% / −1% 49.5% 42.1% 49.5% 8.4% 54.0% 46.0% 92% 92% +8.1 pp -4.7 pp +3.4 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+1% / −2% 57.1% 49.5% 24.0% 26.5% 71.0% 67.3% 80% 73% +3.7 pp -4.9 pp -1.2 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+1% / −3% 58.9% 51.1% 11.7% 37.1% 80.9% 81.3% 73% 63% -0.4 pp -3.5 pp -3.9 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −0.25% 11.0% 9.6% 87.6% 2.8% 11.7% 9.9% 95% 97% +1.8 pp -2.0 pp -0.2 pp not computed: this window is too short for two halves to detect instability 0.00% 0.01% 23,538
+2% / −0.5% 17.7% 16.1% 76.9% 7.0% 20.2% 17.3% 88% 93% +2.9 pp -3.2 pp -0.4 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −1% 24.0% 23.3% 57.1% 19.6% 32.7% 29.0% 73% 80% +3.7 pp -4.9 pp -1.2 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −2% 27.7% 27.8% 27.7% 44.6% 49.9% 50.1% 55% 55% -0.2 pp -5.9 pp -6.2 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+2% / −3% 28.8% 28.9% 14.0% 57.1% 62.8% 67.3% 46% 43% -4.6 pp -5.2 pp -9.7 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −0.25% 5.1% 5.4% 89.3% 5.2% 5.7% 5.7% 90% 95% -0.0 pp -1.3 pp -1.3 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −0.5% 8.6% 9.5% 79.3% 11.2% 10.7% 10.7% 80% 89% +0.0 pp -2.1 pp -2.1 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −1% 11.7% 13.9% 58.9% 27.2% 18.7% 19.1% 63% 73% -0.4 pp -3.5 pp -3.9 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −2% 14.0% 17.1% 28.8% 54.2% 32.7% 37.2% 43% 46% -4.6 pp -5.2 pp -9.7 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538
+3% / −3% 14.5% 17.6% 14.5% 68.0% 45.2% 54.8% 32% 32% -9.6 pp -5.6 pp -15.2 pp not computed: this window is too short for two halves to detect instability 0.00% 0.00% 23,538

The three gap columns add: raw + change after detrending = detrended gap. Only the detrended gap is tested and only it carries the interval in the table above. “Of resolved” is the target-first rate among entries that reached either barrier — on cells where little resolves it can read near 100% while the unconditional rate is modest.

Sampling check: re-running this horizon on 105 strictly non-overlapping entries (rather than 23,538 every-bar entries) moves the asymmetry by a median of 2.6 pp and at most 10.7 pp.

5d horizon

Insufficient data — 53 non-overlapping 5d entries in this coverage span, below the floor of 100. A hit rate estimated on fewer cannot distinguish the deviations this statistic exists to detect.

Across the 3 horizons this window publishes, 12 of 28 cells that look significant uncorrected survive Benjamini–Hochberg at q=0.05, and 0 of those 12 Benjamini–Hochberg survivors also agree across both halves of history — survives Benjamini-Hochberg AND both halves of history agree in sign. Only confirmed cells are shown in bold and ringed on the charts; a cell that is significant but not confirmed keeps its colour, its number and its interval, marked “not confirmed” rather than hidden. The gaps between all three counts are themselves the point.

How much heat, and how far it runs

Not every window in the barrier grid above resolves: especially at shorter horizons and wider rungs, many windows touch neither barrier before the horizon runs out. This section measures what those windows did anyway, resolved or not — how far price ran in the trader's favour (MFE) and how much heat it took against them (MAE) — from intrabar high and low, never from closes: a stop is hit by the low, not the close. See methodology.

MFE is signed positive and MAE is signed negative. For MFE the higher quantile is the better outcome; for MAE it is the opposite — the lower (more negative) quantile is the worse drawdown, and the higher quantile is the mildest one. The tables below label each MAE column by what it means, not just by its quantile, so the two are never read the same way by mistake.

At the 4h horizon, a +1% / −1% bracket resolves — hits target or stop — in only 19.0% of long entries; the other 81.0% touch neither barrier inside the horizon. Across every 4h window regardless of whether it resolved, the median run in the trader's favour (MFE) was +0.30% and the best tenth of windows reached +0.95%, while the median heat taken against them (MAE) was -0.30% and the worst tenth of windows drew down -1.04% — that is what the rest of the grid's “neither” column was doing instead of resolving.

4h horizon — excursions

1,540 non-overlapping entries · 2,184 coverage-span equivalents.

Sidenon-overlapping entries MFE medianMFE p90 — best case MAE median — typical heatMAE p10 — worst-case heat
Long 1,540 +0.30% +0.95% -0.30% -1.04%
Short 1,540 +0.30% +1.05% -0.30% -0.94%
Heat before the win, by target/stop — long side only

Long-side reading only — there is no short-side version of this table. Of long entries whose maximum favourable excursion reached at least the target rung, what share drew down past the stop rung before the target was reached — i.e. would the stop already have closed a trade that went on to work. A drawdown that happens after the target was reached does not count: the position was already closed by then. Keyed by the same target/stop rungs as the barrier grid above, so the two tables read side by side. See methodology.

target / stopqualifying long entries share drew down past stop firsteffective n
+0.25% / −0.25% 13,302 21.6% 1160
+0.25% / −0.5% 13,302 6.4% 948
+0.25% / −1% 13,302 0.8% 988
+0.25% / −2% 13,302 0.1% 2829
+0.25% / −3% 13,302 0.0% 7517
+0.5% / −0.25% 7,101 26.3% 547
+0.5% / −0.5% 7,101 8.6% 326
+0.5% / −1% 7,101 1.5% 400
+0.5% / −2% 7,101 0.2% 2033
+0.5% / −3% 7,101 0.1% 2798
+1% / −0.25% 2,049 31.0% 166
+1% / −0.5% 2,049 12.1% 104
+1% / −1% 2,049 2.9% 205
+1% / −2% 2,049 0.6% 897
+1% / −3% 2,049 0.3% 760
+2% / −0.25% 308 41.9% 50
+2% / −0.5% 308 24.0% 49
+2% / −1% 308 6.5% 93
+2% / −2% 308 2.3% 187
+2% / −3% 308 1.3% 152
+3% / −0.25% insufficient data — 89 qualifying long entries, against a floor of 100, or an effective sample size below 30
+3% / −0.5% insufficient data — 89 qualifying long entries, against a floor of 100, or an effective sample size below 30
+3% / −1% insufficient data — 89 qualifying long entries, against a floor of 100, or an effective sample size below 30
+3% / −2% insufficient data — 89 qualifying long entries, against a floor of 100, or an effective sample size below 30
+3% / −3% insufficient data — 89 qualifying long entries, against a floor of 100, or an effective sample size below 30

1d horizon — excursions

258 non-overlapping entries · 364 coverage-span equivalents.

Sidenon-overlapping entries MFE medianMFE p90 — best case MAE median — typical heatMAE p10 — worst-case heat
Long 258 +0.79% +2.22% -0.70% -2.61%
Short 258 +0.70% +2.68% -0.78% -2.17%
Heat before the win, by target/stop — long side only

Long-side reading only — there is no short-side version of this table. Of long entries whose maximum favourable excursion reached at least the target rung, what share drew down past the stop rung before the target was reached — i.e. would the stop already have closed a trade that went on to work. A drawdown that happens after the target was reached does not count: the position was already closed by then. Keyed by the same target/stop rungs as the barrier grid above, so the two tables read side by side. See methodology.

target / stopqualifying long entries share drew down past stop firsteffective n
+0.25% / −0.25% 18,871 38.4% 1969
+0.25% / −0.5% 18,871 19.4% 1638
+0.25% / −1% 18,871 5.4% 1086
+0.25% / −2% 18,871 0.7% 1476
+0.25% / −3% 18,871 0.3% 1460
+0.5% / −0.25% 15,325 49.6% 1159
+0.5% / −0.5% 15,325 25.5% 736
+0.5% / −1% 15,325 7.9% 599
+0.5% / −2% 15,325 1.2% 739
+0.5% / −3% 15,325 0.6% 730
+1% / −0.25% 9,214 52.9% 475
+1% / −0.5% 9,214 27.7% 316
+1% / −1% 9,214 8.7% 289
+1% / −2% 9,214 1.7% 393
+1% / −3% 9,214 0.9% 377
+2% / −0.25% 3,068 55.5% 138
+2% / −0.5% 3,068 33.1% 95
+2% / −1% 3,068 11.2% 103
+2% / −2% 3,068 3.5% 116
+2% / −3% 3,068 2.6% 140
+3% / −0.25% 1,206 67.2% 110
+3% / −0.5% 1,206 46.0% 58
+3% / −1% 1,206 16.8% 41
+3% / −2% 1,206 6.0% 65
+3% / −3% 1,206 4.4% 91

3d horizon — excursions

105 non-overlapping entries · 121 coverage-span equivalents.

Sidenon-overlapping entries MFE medianMFE p90 — best case MAE median — typical heatMAE p10 — worst-case heat
Long 105 +1.27% -1.08%
Short 105 +1.09% -1.25%
Heat before the win, by target/stop — long side only

Long-side reading only — there is no short-side version of this table. Of long entries whose maximum favourable excursion reached at least the target rung, what share drew down past the stop rung before the target was reached — i.e. would the stop already have closed a trade that went on to work. A drawdown that happens after the target was reached does not count: the position was already closed by then. Keyed by the same target/stop rungs as the barrier grid above, so the two tables read side by side. See methodology.

target / stopqualifying long entries share drew down past stop firsteffective n
+0.25% / −0.25% 21,227 44.1% 2639
+0.25% / −0.5% 21,227 26.1% 2142
+0.25% / −1% 21,227 10.4% 1088
+0.25% / −2% 21,227 2.9% 1083
+0.25% / −3% 21,227 0.9% 1223
+0.5% / −0.25% 18,933 57.4% 1309
+0.5% / −0.5% 18,933 35.7% 919
+0.5% / −1% 18,933 15.6% 578
+0.5% / −2% 18,933 4.4% 596
+0.5% / −3% 18,933 1.4% 760
+1% / −0.25% 14,128 62.4% 640
+1% / −0.5% 14,128 39.2% 448
+1% / −1% 14,128 17.5% 310
+1% / −2% 14,128 4.9% 352
+1% / −3% 14,128 1.8% 360
+2% / −0.25% 6,926 62.5% 268
+2% / −0.5% 6,926 39.8% 197
+2% / −1% 6,926 18.3% 179
+2% / −2% 6,926 6.0% 224
+2% / −3% 6,926 2.2% 200
+3% / −0.25% 3,497 65.4% 148
+3% / −0.5% 3,497 42.0% 94
+3% / −1% 3,497 21.0% 97
+3% / −2% 3,497 5.6% 110
+3% / −3% 3,497 2.6% 116

5d horizon — excursions

Insufficient data — 53 non-overlapping 5d entries in this coverage span, below the floor of 100. An excursion quantile estimated on fewer cannot distinguish real heat from noise.

How far it moves, and what the spread costs

Horizonmedian movep90 movep99 move non-overlapping entriesn spread as share of median move
4h 0.29% 0.95% 1,540 23,483 8.6%
1d 0.72% 2.49% 258 23,483 3.5%
3d 1.06% 105 23,536 2.4%
5d insufficient data (53 non-overlapping entries)

Cost assumes a round-trip spread of 0.025% of price. That is a configured assumption, not a measurement — this feed publishes bid candles only, so there is no bid–ask in the data.

How move size scales with holding period

Sigma may be scaled by the square root of time; medians, stop distances and targets may not. Variance grows in proportion to time, so σ — its square root — grows with the square root of time. The typical move grows faster than that, so scaling a median from a short horizon to a longer one sets it too tight — on every asset and window this site publishes. The tails do not miss in one direction the way the median does, so a stop distance or a target is read off the measured table above, never scaled to it.

Horizonq√t factor from 4h median move, √t predictionmedian move, measured errormedian ÷ σkurtosis non-overlapping entriesn
4h 16 bars ×1.00 0.290% 0.290% +0.0% 0.434 13.7 1,540 23,483
1d 92 bars ×2.40 0.695% 0.722% +3.9% 0.463 7.6 258 23,483
3d 222 bars ×3.72 1.080% 1.056% -2.2% 0.447 7.5 105 23,536
5d insufficient data — the horizon-move table did not publish this horizon

A positive error means the real move is larger than √t predicts. The error is relative — (measured − predicted) ÷ predicted — not itself a move size in percent of price, even though it sits between two columns that are. The reason a positive error is the norm is in the last two columns: aggregation pulls the distribution toward normal, where median ÷ σ is 0.674 and kurtosis is 3.0. By the longest horizon this table actually publishes (3d), median ÷ σ is 0.447 and kurtosis is 7.5 — read those against the Gaussian reference above rather than assuming the shape has normalised by then.

The measurement behind it — variance ratio

VR(q) = Var(q-bar move) ÷ (q × Var(1-bar move)). Above 1 moves extend and a distant target is more reachable than its distance suggests; below 1 they retrace. The null is exactly 1. q is derived from this asset's own bar calendar, so “5d” is however many bars a five-calendar-day window actually contains — usually fewer than five trading days, because it swallows a weekend.

HorizonqVR95% interval as move size vs random walkrobust zp (robust) blockshomoskedastic z verdictsplit-half VR (first / second)
4h 16 bars ≈ 0.17 trading days 0.920 0.772 to 1.069 88% to 103% -1.05 0.293 1,471 -2.78 not significant not computed: this window is too short for two halves to detect instability
1d 92 bars ≈ 1.00 trading days 1.015 0.702 to 1.328 84% to 115% +0.09 0.926 255 +0.21 not significant not computed: this window is too short for two halves to detect instability
3d 222 bars ≈ 2.41 trading days 0.970 0.524 to 1.416 72% to 119% -0.13 0.896 106 -0.27 not significant not computed: this window is too short for two halves to detect instability
5d insufficient data — 85 non-overlapping q-blocks at this horizon, below the floor of 100

Only the robust z (and its p, the column so labelled) is tested; it allows the size of moves to change over time, which this asset's does. The homoskedastic z column assumes it does not, and is shown to make the gap visible: 1 of these horizons would look significant under it against 0 that survive Benjamini–Hochberg on the robust one. That difference is volatility clustering read as mean reversion, not a finding.

The verdict column applies one rule and states it in full: survives Benjamini-Hochberg on the robust standard error AND both halves of history agree in sign of (VR - 1). The split-half column is the second half of that rule shown as data — the same VR recomputed on each disjoint half of the window, at the same q. The comparison is on the sign of (VR − 1), not of VR: VR is always positive, so comparing raw signs would mark every pair as agreeing and the check could never fail. Halves that disagree do not overturn a significant result on their own; they stop it being called confirmed.

2026-08-03T11:19:33.716941 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/

Gap risk — A3

How far price moved while you could not trade. Split three ways and never pooled: a venue halt and a weekend are different phenomena and only one of them carries real overnight risk. No stop protects you across either.

Kindnmedianp90p99 >1× median bar>3×
session 0 insufficient data
weekend 49 insufficient data
daily break 204 0.482 3.169 14.397 5.9% 1.0%

Gaps are in USD/oz, signed. Median bar range for comparison: 7.530.

A1 — 15-minute range and true range (execution detail)

Kept for placing an entry, not as a headline: the horizon this site reports at is hours to days, and a multi-day stop sized to a 15-minute range is the error that shakes a trader out of positions that would have worked.

Range

Unitnmeanp10p25p50p75p90p95p99
USD/oz 23538 10.0139 3.2000 4.8500 7.5300 11.8500 18.4730 25.3104 49.2100
% of price 23538 0.2261 0.0811 0.1159 0.1738 0.2666 0.4083 0.5550 1.0602

True range

Unitnmeanp10p25p50p75p90p95p99
USD/oz 23284 9.9489 3.1970 4.8500 7.5130 11.7800 18.2700 25.0096 48.4599
% of price 23284 0.2247 0.0810 0.1158 0.1733 0.2649 0.4052 0.5490 1.0346