Market Structure Tested: 0 of 32 Runs Passed, and a Break of Structure With the Trend Hit +1 ATR First Only 36% of the Time on EURUSD

Key takeaways
- I turned price action market structure into exact rules: swing highs and lows, higher highs and higher lows, the break of structure (BOS) and the change of character (CHoCH). Four entries, EURUSD and gold, M5 and M15, two exits each, spread included: 32 runs.
- 0 of 32 runs passed every check. 9 made money after cost, 3 made money in both halves of the data, and 1 beat the best 5% of coin-flip entries. That one still lost money.
- A break of structure in the direction of the trend reached +1 ATR before -1 ATR only 36.3% of the time on EURUSD M5. A random bar in a random direction did it 49.4% of the time. On EURUSD M15 it was 36.2%, on gold M15 38.9%.
- The reversal break beat the trend break on all 4 charts. On gold M5 the change of character made +$0.68 an ounce a trade while the trend break lost $1.34.
- By the time a candle closed beyond the swing high on EURUSD M5, price was a median 0.87 ATR past the level. Half of all bars had no clear structure at all.
“Forget indicators, learn market structure” is the advice that sends a beginner from moving averages to price action. Higher highs and higher lows mean an uptrend. When price closes above the last swing high, that is a break of structure and you trade with it. When a downtrend breaks its last lower high, the character has changed and you look for longs.
All of this sounds like reading the chart, not following a formula. But each step can be written down exactly, and then it can be counted on the same bars I used for the trading systems test and the support and resistance test.
How do you turn market structure into rules?

- Swing high: a bar whose high is above the 5 bars on each side. It can only be known 5 bars later, so the test only uses it from that bar on. No peeking at the right side of the chart.
- Uptrend: the last two confirmed swing highs rise and the last two swing lows rise (HH and HL). Downtrend: lower highs and lower lows. Anything else: no structure.
- Four entries: (1) any break: a close beyond the last swing high or low, in the direction of the break; (2) BOS: the same, only in the direction of the current trend; (3) CHoCH: a break against the trend, the reversal; (4) HL entry: in an uptrend, buy the bar that confirms a new higher low (sell a new lower high in a downtrend). Each level is traded once.
- Data: EURUSD, June 3 to August 26, 2026: 16,926 M5 bars and 5,642 M15 bars built from them. Gold (XAUUSD) over the same weeks: 13,736 M5 bars and 4,577 M15 bars.
- Two exits: stop 1.5 ATR, target 3 ATR, close after 48 bars at the latest; or a plain close after 12 bars. One trade at a time.
- Cost: 1 pip per EURUSD trade from my spread and swap measurement, $0.30 an ounce per gold trade.
- Checks: the data split at July 15 into two halves, and a coin: random entries on the same bars with the same exit and the same number of trades, 300 runs. A rule passes only if it makes money overall, in both halves, and beats the coin’s best 5%.
Does a break of structure follow through?

Before any trade rules, the plainest question: after price closes beyond a swing level, does it go on? I measured whether price moved 1 ATR further in the direction of the break before it moved 1 ATR back, within 48 bars. A random bar with a random direction should do that about half the time.
| +1 ATR reached before -1 ATR | Any break | BOS with the trend | CHoCH against it | Random bar |
|---|---|---|---|---|
| EURUSD M5 | 42.3% (809) | 36.3% (226) | 44.9% (187) | 49.4% |
| EURUSD M15 | 43.1% (274) | 36.2% (58) | 44.2% (77) | 49.7% |
| Gold M5 | 49.8% (606) | 49.5% (192) | 47.3% (169) | 49.6% |
| Gold M15 | 47.9% (194) | 38.9% (54) | 50.0% (52) | 50.2% |
Number of breaks in brackets. If both levels were touched inside one bar, the test counted the bad side first.
No column beat the random bar. The break with the trend, the one every price action course calls the safest, was the worst on three of four charts. On EURUSD it came back 1 ATR before it went on in almost two breaks of three. Gold M5 was a coin flip whatever the break.
One reason is visible in the data: the break is late. On EURUSD M5 the candle that closed above the swing high closed a median 0.87 ATR above it. On gold it was 0.35 ATR on both timeframes. By the time the break is confirmed, a good part of the move you hoped to catch is already behind you, and the swing level sits right where a pullback would go.
How did the four entries trade?
| Stop 1.5 ATR / target 3 ATR, after cost | Any break | BOS with trend | CHoCH | HL entry |
|---|---|---|---|---|
| EURUSD M5 (pips) | -1.36 (656) | -1.46 (193) | -0.83 (178) | -0.31 (441) |
| EURUSD M15 (pips) | -1.50 (201) | -2.72 (50) | -2.20 (70) | -0.45 (147) |
| Gold M5 ($ an ounce) | -0.56 (447) | -1.34 (169) | +0.68 (158) | +0.09 (368) |
| Gold M15 ($ an ounce) | +1.00 (145) | -1.88 (49) | +1.98 (49) | -0.57 (114) |
Per trade, trades in brackets.
The BOS with the trend lost on all four charts. The CHoCH, the reversal, did better than the BOS on all four: by 0.63 pips on EURUSD M5, by $2.02 an ounce on gold M5 and by $3.86 on gold M15. Price action courses usually treat the CHoCH as the risky signal and the BOS as the confirmed one. On these bars it was the other way round.
That does not make the CHoCH a good trade. On gold M15 its +$1.98 came from +$7.34 in the first half and -$0.39 in the second, on 49 trades. A coin with 49 trades reached +$4.18 in its best 5%. On gold M5 the CHoCH made money in both halves (+$1.93 and +$0.16), but stayed under the coin’s +$0.91.
Is the higher low entry better than the break?
It lost the least. Buying the bar that confirms a new higher low, instead of waiting for the next break, gave the best EURUSD rows in the test:
| HL entry | Trades | Before cost | After cost | Won | 1st half | 2nd half | Coin, best 5% |
|---|---|---|---|---|---|---|---|
| EURUSD M5, ATR exit (pips) | 441 | +0.69 | -0.31 | 38.1% | +0.11 | -0.70 | -0.56 |
| EURUSD M15, ATR exit (pips) | 147 | +0.55 | -0.45 | 35.4% | +0.40 | -1.29 | +0.19 |
| Gold M5, 12-bar exit ($) | 407 | +0.82 | +0.52 | 51.8% | +0.93 | +0.29 | +0.70 |
On EURUSD M5 the higher low entry made +0.69 pips a trade before the spread, and it is the only run of the 32 that beat the coin’s best 5%. The 1-pip cost still turned it into a loss. On gold M5 it made money in both halves and fell short of the coin by $0.18 an ounce. It is the closest thing to an edge in this test, and it is not enough to trade.
How many of the 32 runs passed?
| Check | Runs |
|---|---|
| Made money after cost | 9 of 32 |
| Made money in both halves | 3 of 32 |
| Beat the coin’s best 5% | 1 of 32 |
| All three | 0 of 32 |
All 9 profitable runs were on gold, and none on EURUSD. Gold fell about 10% to late June, ranged through July and rallied in August, so a rule that only sometimes caught a swing still had big moves to catch. The 12-bar exit or the ATR exit could swing the same rule by more than $2 an ounce, as in the trailing stop test.
How often is there a clear structure at all?
| Share of bars | Uptrend (HH+HL) | Downtrend (LH+LL) | No structure | Up label right 48 bars later |
|---|---|---|---|---|
| EURUSD M5 | 23.9% | 25.5% | 50.6% | 49.8% |
| EURUSD M15 | 24.2% | 24.5% | 51.3% | 43.9% |
| Gold M5 | 30.9% | 28.2% | 40.9% | 49.3% |
| Gold M15 | 26.8% | 29.5% | 43.6% | 48.2% |
Half of EURUSD bars had mixed swings, a higher high with a lower low or the other way round. When a clean uptrend label did appear, it lasted a median 14 bars on M5, about 70 minutes, and price was higher 48 bars later about half the time. The label described the last few swings well. It said little about the next ones.
So is market structure useless?
- Not as a description. It tells you honestly whether the recent swings trend or chop, and half the time the answer is “chop”.
- Not as a stand-alone entry on M5 or M15. 0 of 32 runs passed, and the textbook BOS with the trend lost on every chart.
- If you use it, enter on the higher low, not on the break. It lost the least on EURUSD and came closest to an edge on gold.
- Do not use the BOS as proof that a trend is safe. On EURUSD it was followed by a 1 ATR pullback first in about two breaks of three.
How swing structure compares with a plain moving average as a trend tool is in market structure vs moving average. Which swing length and rule did best, and how to mark swings in the platform, is in market structure indicator for MT4. Swing levels as support and resistance are covered in the support and resistance indicator guide.
Limits of this test
June 16 to August 26, 2026 after the warm-up bars, about ten weeks. Only two markets and two timeframes; H1 and H4, where most structure traders work, would need years of data to give enough breaks. A swing length of 5 bars on each side is one choice of many, and the other lengths are in the settings guide. Discretionary traders also look at where the break happens and skip the ugly ones, which no rule can copy.
Frequently asked questions
Does a break of structure work in forex?
Not as a rule on M5 and M15 in this test. A break in the direction of the trend lost on all four charts, from -1.34 to -2.72 a trade after cost, and on EURUSD M5 it reached +1 ATR before -1 ATR only 36.3% of the time against 49.4% for a random bar.
Is CHoCH better than BOS?
On these bars, yes, on all 4 charts. On gold M5 the change of character made +$0.68 an ounce a trade and the break of structure lost $1.34. Neither passed every check.
What is the best market structure entry?
The higher low entry lost the least: -0.31 pips a trade on EURUSD M5 after a 1-pip cost, +0.69 before it, and +$0.52 an ounce on gold M5 with a 12-bar exit, positive in both halves but under the coin’s best 5%.
How often is the market trending by structure?
EURUSD had higher highs and higher lows on 23.9% of M5 bars, lower highs and lower lows on 25.5%, and mixed swings on 50.6%.
Why does a break of structure fail?
Partly because the confirmation is late. On EURUSD M5 the breaking candle closed a median 0.87 ATR beyond the swing high, so the entry came after much of the move, right above the level a pullback returns to.
Want a clean indicator to install right now?
It is my own enhanced DeMARK Trend Line indicator for MetaTrader 4 and 5. Non repaint, clean, and free.

