SMC Mitigation Block: An Empirical Test
Test period: January 2012 – October 2026 · Instruments: EURUSD, GBPUSD, USDJPY, AUDUSD, XAUUSD, BTCUSD (from May 2017), US100 (M1, bid) · Out-of-sample block: 2012–2018 · Timeframes: M15, H1, H4, D1 · Published: November 2026
1. Objective
The mitigation block is the lowest-ranked member of the standard price-array hierarchy. In the bullish case, price makes a swing low A, rallies to a swing high B, then falls back to a higher low C: a failure swing that never reaches the old low. Sellers who entered around B have not been paid. When price then closes above B, they are underwater, and the story is that they will use a return to the candle at B to buy back at or near break-even — so that candle should act as support.
The same shape with one difference — C does take out A before the reversal — is the breaker block. In the standard ranking the mitigation block sits below the breaker in strength, and it is the array price meets first when it moves away from equilibrium (EQ, the midpoint of the current range). This study turns those statements into fixed, mechanical rules and tests them against a random baseline in the same format as the Order Block study.
1.1 Claims tested
| # | Claim | Section |
|---|---|---|
| ① | A limit order on the first return to a mitigation block beats random entries and has a positive expectancy after costs | 3.1 |
| ② | A mitigation block is weaker than a breaker, the same structure with a stop run | 3.2 |
| ③ | The mitigation block is the array closest to EQ, and where it sits relative to EQ matters | 3.3 |
| ④ | Refinements help: entering at the 50% level of the candle body, or placing the stop beyond the second low | 3.4 |
2. Methodology
2.1 Data
- Source: Dukascopy, M1 bid (via the
dukascopy-nodeCLI). BTCUSD is available from May 2017 only - Range: 2012-01-01 to 2026-10-31, about 4.2–5.5 million one-minute bars per instrument after removing flat (OHLC-equal) bars
- Candles: M15 and H1 on clock boundaries; the 4-hour and daily candles are NY-aligned (opening at 18:00 New York time, with full daylight-saving rules). The daily timeframe is included because the hierarchy is usually taught for higher timeframes
- Out-of-sample split: all definitions, bins and criteria were written down before any result was examined. Results were examined on 2019–2026 first; the 2012–2018 block was then run once with no changes, so it acts as an out-of-sample check. Every result is reported for both blocks. The one exception is the post hoc sensitivity analysis in Section 3.6.
2.2 Mitigation block definition (fixed before testing)
- Swings: a swing high is a candle whose high is strictly above the highs of the two candles on each side (swing low mirrored). Consecutive swings of the same type are merged, keeping the more extreme one, so the sequence alternates high / low
- Structure (bullish): swing low A → swing high B → swing low C, with no candle between B and C trading above B
- Failure swing: C is at or above A, so the earlier low is not swept. If C is below A the event is a breaker and is kept as the comparison group
- Break: within 20 candles after C, a candle closes above B before any candle trades below C
- Block candle: the last up-close candle at B, searching B and up to five candles before it (not before A). Its body must be at least 0.1 × ATR(14)
- Zone: near edge = candle close (body top); mean threshold (MT) = 50% of the body; far edge = candle low
- No look-ahead: the setup is live only from the close of the later of (a) the break candle and (b) the second candle after C, when C is confirmed as a swing. If price has already returned to the near edge, or traded below C, by that moment, the event is skipped
- First return: the first touch of the entry level within 48 candles, found on M1 data. If the touching M1 bar opens beyond the limit price (a gap into the zone), the fill is that bar’s open. The 48-candle limit is a choice made for the test; the concept itself has no time limit (see Section 3.6)
Across all instruments and timeframes the rules produced 147,997 mitigation blocks (M15 113,004; H1 26,651; H4 6,948; D1 1,394) and 91,016 breakers. Price returned to the near edge within 48 candles in 81–84% of mitigation blocks, depending on the timeframe; 19,124 remained as trades after the minimum-stop rule in Section 2.5.
2.3 Location in the range
To place a block relative to EQ, the range is the highest high and lowest low of the last 80 candles of the same timeframe, up to the candle that makes the setup live. EQ is the midpoint. The location score measures how far the block’s near edge lies from EQ, in units of half the range, and is signed so that positive means the side of EQ where the trade is supposed to be: a discount for buys, a premium for sells. Zero is EQ, +1 is the far end of the range, and a negative value means the block sits on the wrong side.
2.4 Random baseline
Every trade is paired with ten random entries in the same direction, at the same minute of the day (UTC), on other days within ±60 days, with the same stop distance. Random entries are market orders at that minute’s open and follow exactly the same exit rules. The quantity reported throughout is the edge: the real win rate minus the random win rate, in percentage points (pp). Standard errors and z-values use a month-block bootstrap, because events overlap in time.
2.5 Outcomes and costs
- Fixed targets of 1R and 2R; whichever of target or stop is hit first on M1 data, within three days. Trades still open after three days are closed at market. (On D1 this window is short relative to the candle size; it was kept for comparability.)
- If the entry M1 bar itself already touches the stop, the trade is counted as a loss; if target and stop are both hit inside the same later M1 bar, the trade is excluded as unresolved
- Minimum stop distance: 10 × the round-trip cost, so costs never exceed 0.1R. This removes most M15 setups (only 7% of M15 blocks remain as trades, against 24% on H1, 51% on H4 and 78% on D1), because their zones are too small to trade at prop-firm costs
- Net expectancy is reported after an approximate prop-firm cost (spread plus commission, round trip, October 2026):
| EURUSD | GBPUSD | USDJPY | AUDUSD | XAUUSD | BTCUSD | US100 |
|---|---|---|---|---|---|---|
| 1.4 pips | 2.2 pips | 2.5 pips | 1.6 pips | $0.58 | $30 | 1.5 pts |
2.6 Plan and independence
The analysis plan was fixed in advance. A result counts as replicated only if it has the same sign and a z-value of at least 2 in absolute terms in both blocks. About 106 comparisons are examined, so roughly five of them would reach |z| ≥ 2 by chance alone. Two things are not independent of earlier work: the failure-swing structure was already evaluated, including 2012–2018, as the no-sweep control group in a companion study of the breaker block using the same code, so claims ① and ② reproduce numbers that had been seen before. Claim ③ and the daily timeframe are new here. Section 3.6 was added after both blocks had been examined and is labelled post hoc.
3. Results
3.1 Claim ① — Does the first return to a mitigation block beat random?
| TF | Period | Target | n | Win rate | Random | Edge, pp (z) | Gross exp. | Net exp. |
|---|---|---|---|---|---|---|---|---|
| M15 | 2012–2018 | 1R | 1,515 | 48.9% | 50.0% | -1.13 (z -0.9) | -0.015R | -0.091R |
| M15 | 2012–2018 | 2R | 1,516 | 31.5% | 32.1% | -0.60 (z -0.5) | -0.014R | -0.090R |
| M15 | 2019–2026 | 1R | 6,658 | 49.5% | 49.4% | +0.06 (z +0.1) | -0.008R | -0.071R |
| M15 | 2019–2026 | 2R | 6,661 | 32.8% | 32.7% | +0.07 (z +0.1) | -0.005R | -0.068R |
| H1 | 2012–2018 | 1R | 2,056 | 49.0% | 48.5% | +0.57 (z +0.5) | +0.003R | -0.065R |
| H1 | 2012–2018 | 2R | 2,057 | 31.0% | 29.9% | +1.08 (z +0.9) | +0.021R | -0.047R |
| H1 | 2019–2026 | 1R | 4,244 | 48.8% | 49.1% | -0.32 (z -0.4) | -0.013R | -0.069R |
| H1 | 2019–2026 | 2R | 4,248 | 30.7% | 31.2% | -0.50 (z -0.6) | -0.029R | -0.086R |
| H4 | 2012–2018 | 1R | 1,430 | 44.8% | 46.2% | -1.49 (z -1.1) | -0.036R | -0.094R |
| H4 | 2012–2018 | 2R | 1,430 | 25.1% | 25.0% | +0.06 (z +0.0) | -0.013R | -0.070R |
| H4 | 2019–2026 | 1R | 2,121 | 46.3% | 46.3% | +0.00 (z +0.0) | -0.008R | -0.055R |
| H4 | 2019–2026 | 2R | 2,123 | 26.2% | 26.3% | -0.11 (z -0.1) | -0.012R | -0.060R |
| D1 | 2012–2018 | 1R | 458 | 29.5% | 34.7% | -5.22 (z -2.2) | -0.081R | -0.119R |
| D1 | 2012–2018 | 2R | 458 | 12.0% | 14.7% | -2.73 (z -1.9) | -0.065R | -0.102R |
| D1 | 2019–2026 | 1R | 627 | 34.9% | 35.6% | -0.72 (z -0.4) | +0.022R | -0.007R |
| D1 | 2019–2026 | 2R | 627 | 12.3% | 13.3% | -1.04 (z -0.8) | +0.008R | -0.022R |
| All TFs | 2012–2018 | 1R | 5,459 | 46.2% | 47.2% | -0.93 (z -1.4) | -0.019R | -0.084R |
| All TFs | 2012–2018 | 2R | 5,461 | 28.0% | 28.0% | +0.03 (z +0.0) | -0.005R | -0.070R |
| All TFs | 2019–2026 | 1R | 13,650 | 48.1% | 48.2% | -0.10 (z -0.2) | -0.008R | -0.065R |
| All TFs | 2019–2026 | 2R | 13,659 | 30.2% | 30.4% | -0.19 (z -0.4) | -0.013R | -0.070R |
Limit entry at the near edge, stop at the far edge. Net expectancy is per trade, in R, after the cost table in Section 2.5.
Pooled over all timeframes, mitigation blocks win 48.1% of 1R trades against 48.2% for random entries with the same stop in 2019–2026 (edge -0.10 pp, z -0.2), and 46.2% against 47.2% in 2012–2018 (-0.93 pp, z -1.4). At 2R the edge is -0.19 pp and +0.03 pp. Before costs the average trade earns -0.008R and -0.019R; after costs, -0.065R and -0.084R. With no gross edge, there is no cost level at which the setup breaks even.
The only value with |z| above 2 is D1 in 2012–2018, and it is negative (-5.2 pp, z -2.2, n = 458). D1 is also below zero in 2019–2026 (-0.7 pp, n = 627) but not significantly. D1 is the one place where net expectancy gets close to zero (-0.007R in 2019–2026), and that is because costs are a small fraction of a daily stop, not because of an edge.
3.2 Claim ② — Is a mitigation block weaker than a breaker?
Breakers use exactly the same rules, except that C takes out A. If the ranking holds, breakers should beat mitigation blocks.
| TF | Period | n (mitigation / breaker) | Mitigation edge (pp) | Breaker edge (pp) | Difference (z) | Net exp. (mitigation / breaker) |
|---|---|---|---|---|---|---|
| M15 | 2012–2018 | 1,515 / 405 | -1.13 | +0.88 | -2.01 (z -0.7) | -0.091R / -0.072R |
| M15 | 2019–2026 | 6,658 / 2,852 | +0.06 | -2.05 | +2.11 (z +1.7) | -0.071R / -0.107R |
| H1 | 2012–2018 | 2,056 / 736 | +0.57 | +3.41 | -2.84 (z -1.4) | -0.065R / -0.031R |
| H1 | 2019–2026 | 4,244 / 2,081 | -0.32 | +1.21 | -1.53 (z -1.1) | -0.069R / -0.056R |
| H4 | 2012–2018 | 1,430 / 723 | -1.49 | -3.26 | +1.77 (z +0.7) | -0.094R / -0.134R |
| H4 | 2019–2026 | 2,121 / 1,206 | +0.00 | +0.68 | -0.67 (z -0.4) | -0.055R / -0.040R |
| D1 | 2012–2018 | 458 / 274 | -5.22 | -2.41 | -2.81 (z -0.8) | -0.119R / -0.084R |
| D1 | 2019–2026 | 627 / 355 | -0.72 | -1.30 | +0.58 (z +0.2) | -0.007R / -0.064R |
| All | 2012–2018 | 5,459 / 2,138 | -0.93 | -0.07 | -0.86 (z -0.7) | -0.084R / -0.080R |
| All | 2019–2026 | 13,650 / 6,494 | -0.10 | -0.46 | +0.35 (z +0.4) | -0.065R / -0.076R |
The largest |z| anywhere in this comparison is 1.99, and the sign of the difference differs between the two blocks in 7 of 10 comparisons. Over all timeframes the difference is +0.35 pp (z +0.4) in 2019–2026 and -0.86 pp (z -0.7) in 2012–2018. The data show no measurable difference between the two: not the ordering the ranking predicts, and not the reverse.
3.3 Claim ③ — Closest to EQ, and does the side of EQ matter?
Where the blocks sit. If mitigation blocks are the array closest to EQ, they should form nearer the middle of the range than breakers.
| TF | Period | Events (mitigation / breaker) | Mean location (mitigation / breaker) | Mean |location| (mitigation / breaker) | Difference in |location| |
|---|---|---|---|---|---|
| M15 | 2012–2018 | 47,348 / 28,588 | -0.16 / -0.07 | 0.474 / 0.428 | +0.045 |
| M15 | 2019–2026 | 65,651 / 40,312 | -0.18 / -0.07 | 0.477 / 0.430 | +0.047 |
| H1 | 2012–2018 | 11,167 / 7,047 | -0.18 / -0.06 | 0.488 / 0.449 | +0.039 |
| H1 | 2019–2026 | 15,478 / 9,896 | -0.20 / -0.07 | 0.487 / 0.440 | +0.047 |
| H4 | 2012–2018 | 2,950 / 1,802 | -0.24 / -0.07 | 0.502 / 0.455 | +0.047 |
| H4 | 2019–2026 | 3,990 / 2,518 | -0.21 / -0.06 | 0.484 / 0.449 | +0.035 |
| D1 | 2012–2018 | 580 / 371 | -0.25 / -0.10 | 0.489 / 0.423 | +0.065 |
| D1 | 2019–2026 | 806 / 465 | -0.26 / -0.11 | 0.499 / 0.450 | +0.049 |
| All | 2012–2018 | 62,045 / 37,808 | -0.17 / -0.07 | 0.478 / 0.433 | +0.044 |
| All | 2019–2026 | 85,925 / 53,191 | -0.19 / -0.07 | 0.479 / 0.433 | +0.046 |
They do not. In both blocks and on every timeframe, mitigation blocks sit slightly farther from EQ than breakers: a mean |location| of 0.48 against 0.43 in 2019–2026 and 0.48 against 0.43 in 2012–2018, a difference of about 0.05 half-ranges, or two per cent of the range. Both types sit on average on the wrong side of EQ (mean location -0.19 for mitigation blocks, -0.07 for breakers): bullish blocks tend to lie in the upper half of the range and bearish blocks in the lower half. That follows from the geometry. A failure swing is a with-trend pattern (a higher low, then a break upward), so it forms after price has already moved away from EQ in the trend direction. The z-values for the |location| difference are very large because the events overlap heavily; the consistent sign and the small size of the difference are the informative parts.
One caution. The hierarchy is a statement about which array price meets first on its way out from EQ. Comparing where two kinds of block form is only a proxy for that, so this result does not support the ordering, but it does not test it directly either.
Does the side of EQ matter? A block on the side of EQ where the trade is meant to be (a buy in discount, a sell in premium) should work better.
| Location bin | Period | n | 1R: edge, pp (z) | 1R: net exp. |
|---|---|---|---|---|
| <0 | 2012–2018 | 3,927 | -1.31 (z -1.6) | -0.086R |
| <0 | 2019–2026 | 9,381 | -0.60 (z -0.9) | -0.066R |
| 0-.25 | 2012–2018 | 573 | -1.85 (z -0.9) | -0.083R |
| 0-.25 | 2019–2026 | 1,488 | +0.37 (z +0.2) | -0.065R |
| .25-.5 | 2012–2018 | 533 | +2.84 (z +1.5) | -0.058R |
| .25-.5 | 2019–2026 | 1,458 | -0.26 (z -0.2) | -0.087R |
| .5-.75 | 2012–2018 | 372 | -2.63 (z -1.1) | -0.131R |
| .5-.75 | 2019–2026 | 1,113 | +3.66 (z +2.6) | -0.014R |
| >=.75 | 2012–2018 | 46 | +10.65 (z +1.4) | +0.040R |
| >=.75 | 2019–2026 | 210 | -0.14 (z -0.0) | -0.142R |
In 2019–2026 the 0.5–0.75 bin reaches +3.7 pp (z +2.6, n = 1,113). In 2012–2018 the same bin is -2.6 pp (z -1.1, n = 372). The simpler contrast — correct side of EQ minus wrong side — tells the same story:
| TF | Period | n (correct side / wrong side) | Edge, correct side (pp) | Edge, wrong side (pp) | Difference (z) |
|---|---|---|---|---|---|
| M15 | 2012–2018 | 328 / 1,187 | +0.29 | -1.53 | +1.81 (z +0.6) |
| M15 | 2019–2026 | 1,989 / 4,669 | -0.48 | +0.29 | -0.77 (z -0.5) |
| H1 | 2012–2018 | 596 / 1,460 | +2.89 | -0.38 | +3.27 (z +1.2) |
| H1 | 2019–2026 | 1,383 / 2,861 | -0.16 | -0.39 | +0.23 (z +0.1) |
| H4 | 2012–2018 | 453 / 975 | -0.67 | -2.00 | +1.33 (z +0.4) |
| H4 | 2019–2026 | 689 / 1,432 | +5.59 | -2.68 | +8.27 (z +3.5) |
| D1 | 2012–2018 | 147 / 305 | -10.54 | -2.69 | -7.86 (z -1.9) |
| D1 | 2019–2026 | 208 / 419 | +7.40 | -4.75 | +12.15 (z +2.6) |
| All | 2012–2018 | 1,524 / 3,927 | -0.03 | -1.31 | +1.28 (z +0.8) |
| All | 2019–2026 | 4,269 / 9,381 | +0.99 | -0.60 | +1.59 (z +1.5) |
On H4, the correct side beats the wrong side by +8.3 pp in 2019–2026 (z +3.5), the largest edge difference found for mitigation blocks in 2019–2026. In 2012–2018 it is +1.3 pp (z +0.4). On D1 the difference is +12.2 pp (z +2.6) in 2019–2026 and -7.9 pp (z -1.9) in 2012–2018, so the sign reverses. No location result meets the replication criterion. Out of roughly 106 comparisons, a few strong-looking cells in 2019–2026 are what chance produces; the earlier block, which had not been examined for this analysis, is consistent with that reading.
3.4 Claim ④ — Entry and stop refinements
| Entry / stop | Period | n | 1R: edge, pp (z) | 1R: net exp. | 2R: edge, pp (z) | 2R: net exp. |
|---|---|---|---|---|---|---|
| Near edge, stop at block extreme (baseline) | 2012–2018 | 5,459 | -0.93 (z -1.4) | -0.084R | +0.03 (z +0.0) | -0.070R |
| Near edge, stop at block extreme (baseline) | 2019–2026 | 13,650 | -0.10 (z -0.2) | -0.065R | -0.19 (z -0.4) | -0.070R |
| Near edge, stop beyond the second low C | 2012–2018 | 10,688 | +0.41 (z +0.7) | -0.065R | +0.75 (z +1.4) | -0.061R |
| Near edge, stop beyond the second low C | 2019–2026 | 23,174 | -0.48 (z -1.0) | -0.069R | -0.10 (z -0.2) | -0.065R |
| Mean threshold (50% of body), stop at block extreme | 2012–2018 | 1,901 | -1.92 (z -1.8) | -0.104R | -0.62 (z -0.5) | -0.103R |
| Mean threshold (50% of body), stop at block extreme | 2019–2026 | 6,627 | -0.35 (z -0.5) | -0.070R | +0.11 (z +0.2) | -0.053R |
Mitigation blocks, all timeframes pooled.
- Stop beyond the second low C. A wider stop lowers the cost per trade in R only slightly, and the edge stays at -0.48 pp (z -1.0) in 2019–2026 and +0.41 pp (z +0.7) in 2012–2018. Net expectancy stays negative (-0.069R and -0.065R).
- Entry at the mean threshold. Waiting for a fill at 50% of the body is filled much less often and does no better: -0.35 pp (z -0.5) in 2019–2026 and -1.92 pp (z -1.8) in 2012–2018, with a net of -0.070R and -0.104R.
3.5 By instrument
| Instrument | n (2012–18 / 2019–26) | Edge 2012–2018 | Edge 2019–2026 | Net exp. 2012–2018 | Net exp. 2019–2026 |
|---|---|---|---|---|---|
| EURUSD | 1,007 / 879 | -1.50 pp (z -0.7) | -0.63 pp (z -0.4) | -0.075R | -0.081R |
| GBPUSD | 738 / 768 | -0.71 pp (z -0.4) | -1.07 pp (z -0.6) | -0.084R | -0.065R |
| USDJPY | 545 / 633 | -1.32 pp (z -0.7) | +2.84 pp (z +1.2) | -0.118R | -0.005R |
| AUDUSD | 808 / 667 | -0.86 pp (z -0.5) | -1.23 pp (z -0.7) | -0.067R | -0.094R |
| XAUUSD | 350 / 909 | +2.81 pp (z +1.0) | -0.69 pp (z -0.4) | -0.017R | -0.055R |
| BTCUSD | 60 / 1,334 | +4.00 pp (z +1.0) | +0.25 pp (z +0.2) | +0.024R | -0.068R |
| US100 | 436 / 1,802 | -2.61 pp (z -0.9) | -0.61 pp (z -0.5) | -0.142R | -0.050R |
Mitigation blocks, H1, H4 and D1 pooled, limit entry at the near edge, 1R. BTCUSD has few out-of-sample trades because its data starts in May 2017.
No instrument has a positive edge in both blocks, and net expectancy is negative in every cell with enough data except BTCUSD in 2012–2018, which rests on a handful of trades. USDJPY is the best instrument in 2019–2026 (+2.8 pp, z +1.2) and negative in 2012–2018 (-1.3 pp). XAUUSD shows the reverse pattern. Seven instruments in two blocks will produce values like these without any real effect.
3.6 Sensitivity: the return window (post hoc)
The concept as taught puts no time limit on the return to the block, while the main test accepts a first touch only within 48 candles. After the results above were final, the window was widened to 96 and 192 candles, and an optional cancel rule was added: the unfilled limit order is dropped if price trades through the second low C, or if it runs two zone-heights away from the near edge in the trade direction. This analysis was run after both blocks had been examined, so it is post hoc and was not part of the pre-set plan. The 48-candle setting reproduces the main results exactly. Because the random entries are drawn again for each setting, the same trades can differ by about 0.3 pp in edge between rows; that is the noise level of the comparison.
| Return window | Period | n | 1R: edge, pp (z) | 1R: net exp. |
|---|---|---|---|---|
| 48 candles (main test) | 2019–2026 | 13,650 | -0.10 (z -0.2) | -0.065R |
| 48 candles (main test) | 2012–2018 | 5,459 | -0.93 (z -1.4) | -0.084R |
| 96 candles | 2019–2026 | 14,585 | -0.05 (z -0.1) | -0.064R |
| 96 candles | 2012–2018 | 5,853 | -0.45 (z -0.7) | -0.079R |
| 192 candles | 2019–2026 | 15,151 | -0.10 (z -0.2) | -0.063R |
| 192 candles | 2012–2018 | 6,128 | -0.55 (z -0.8) | -0.079R |
| 48 candles + cancel rule | 2019–2026 | 9,044 | -0.45 (z -0.7) | -0.071R |
| 48 candles + cancel rule | 2012–2018 | 3,975 | -1.21 (z -1.6) | -0.094R |
| 192 candles + cancel rule | 2019–2026 | 9,128 | -0.34 (z -0.6) | -0.070R |
| 192 candles + cancel rule | 2012–2018 | 4,039 | -1.41 (z -2.0) | -0.095R |
Mitigation blocks, all timeframes pooled, limit entry at the near edge, stop at the far edge.
- A longer window changes nothing. With 192 candles, about 9% of fills happen after the 48th candle. The pooled edge stays at -0.10 pp (2019–2026) and -0.55 pp (2012–2018), and at 2R it is -0.06 pp and -0.05 pp. Net expectancy stays between -0.063R and -0.079R.
- The late returns alone. The fills after the 48th candle (n = 1,501 and 669) show +1.31 pp (z +1.0) and +1.75 pp (z +0.9) at 1R: the same sign in both blocks, but not significant, and still negative after costs (-0.046R and -0.033R). At 2R the signs differ (+2.12 pp and -1.44 pp).
- The cancel rule removes about half of the orders (the fill rate falls from 84% to 42%), so roughly half of the returns in the main test occur after price has broken C or has already left the zone by a wide margin. Dropping them gives no edge either. The 192-candle cancel variant reaches z -2.0 in 2012–2018 but only z -0.6 in 2019–2026, so it does not meet the replication criterion.
Widening or conditioning the return window does not turn the mitigation block into a setup that beats random entries.
4. Checks
- Independent re-simulation. All 5,008 mitigation-block setups for EURUSD on H1, H4 and D1 were re-run with a separate, plain loop over the M1 data (touch minute, fill price, minimum-stop exclusion, stop and target order). 4,188 trades and exclusions and 820 non-fills matched the main engine exactly; there were no differences.
- Location score. The location score was recomputed independently for 6,737 EURUSD events (H1 and D1) with no differences, and the pooled means were reproduced with separate code.
- Same detection as the companion study. The number of events and of sweep / no-sweep events is identical to the breaker study in all 21 instrument and timeframe combinations that both cover (M15, H1, H4).
- Neutral baseline. Random entries average between -0.005R and +0.054R before costs across cells. The baseline is close to neutral; the larger positive values appear on the daily timeframe and at 2R, where the holding window is long relative to the stop, which is likely market drift. Every edge is measured against matched random entries, so this drift is already netted out.
- No changes after the out-of-sample run. Definitions, bins and criteria in Sections 3.1–3.5 are those fixed before the first run. Section 3.6 was added afterwards and is labelled as such.
- Window re-run. The 48-candle setting of the sensitivity code reproduces all 28 instrument and timeframe result files of the main run exactly.
5. Conclusion
- ① The first return to a mitigation block does not beat random entries. Pooled edge: -0.10 pp (2019–2026) and -0.93 pp (2012–2018). Gross expectancy is slightly negative, and after prop-firm costs the average trade loses 0.065R to 0.084R. Widening the return window to 192 candles, or cancelling stale orders, does not change this (Section 3.6, post hoc).
- ② There is no measurable difference in strength between a mitigation block and a breaker, in either direction.
- ③ Mitigation blocks do not form closer to EQ than breakers; they form slightly farther away, on the trend side of the range. The side of EQ does not predict the outcome: the apparent effects in 2019–2026 vanish in 2012–2018.
- ④ Entering at the mean threshold or moving the stop beyond the second low creates no edge that holds in both blocks.
Taken together with the order block, breaker block and rejection block studies, the picture is consistent: within what can be defined mechanically, a candle left behind by a failed or failing swing is not a special price level. The mitigation block does not even show the small, stable pre-cost edge that the 4-hour order block did.
6. Limitations
- One mechanical reading of the concept was tested. Discretionary use adds context (higher-timeframe bias, time of day, other arrays nearby) that is not modelled here.
- The range used for location is the last 80 candles of the same timeframe. The hierarchy is usually taught on weekly and monthly ranges, which have too few swings in 15 years for this kind of test.
- The ordering claim is about the sequence in which arrays are met on the way out from EQ. That needs a path-based test across array types, which was not done here.
- The swing definition (two candles per side) and the 20-candle window for the break are single choices. The three-day outcome window is short for D1.
- The main test limits the return to 48 candles, whereas the concept names no time limit; Section 3.6 examines this after the fact. The exits are fixed 1R and 2R targets, not the liquidity or higher-timeframe targets used in discretionary teaching, and no higher-timeframe context filter is applied beyond the location score.
- The minimum-stop rule removes most M15 setups, so M15 results describe only its larger zones.
- Claims ① and ② are not independent of the earlier breaker study (Section 2.6). Costs are representative estimates and slippage is not modelled. Results are on bid prices only.
7. Next Steps
- A path-based test of the array ordering: starting from EQ, which array does price reach first, and how often does a breaker stop the move short of the next array?
- Repeat the location analysis with weekly and daily dealing ranges defined by major swings rather than a rolling window
- Test liquidity-based exits (the next opposing swing or void) in place of fixed R multiples
- Combine blocks only with a higher-timeframe bias that has first been shown to carry information on its own
Appendix — Technical notes: Swing detection runs on M15, H1 and NY-aligned H4 and D1 candles; fills and outcomes are JIT-compiled with Numba and resolved on M1 data for exact touch, stop and target ordering. Swings: fractal of two candles per side, confirmed at the close of the second candle after the swing. Random baselines: ten same-direction, same-minute-of-day entries within ±60 days per trade, same stop distance. Standard errors: month-block bootstrap. Costs: EURUSD 1.4 pips, GBPUSD 2.2 pips, USDJPY 2.5 pips, AUDUSD 1.6 pips, XAUUSD $0.58, BTCUSD $30, US100 1.5 points round trip. Full methodology and scripts available on request.
