Markets › Metals · XAUUSD spot (broker data)
Gold Opening-Range Breakout
Trade a break of the first 30 minutes of the Asian, London or New York session, with and without an RSI filter.
Buried · CostsPaid in gross. Costs took most of it.
Variants tried: 12 (6 original + 6 in Round 2) · Passed every gate: 0 · Holdout opened: yes (used before this test)
Short answer: not in this test. We backtested a 30-minute opening-range breakout on spot gold in 12 variants over 22 years, net of costs, and 0 passed every gate. Together they made +4,774 R before costs and -2,003 R after 52,616 trades.How much costs took here, compared across all 54 of our tests →Compare all 14 gold strategies we tested →
00The verdict in three lines
- The idea is a classic: mark the high and low of the first 30 minutes of a trading session, trade the break of that range, and in one version only when RSI agrees with the direction.
- We tested six versions (three sessions, each with and without the RSI filter) on 22 years of gold, net of costs. None passed. The best net result was +109 R over 3,646 trades (LD-B, London + RSI), only +0.03 R per trade, and its 95% range includes zero. The worst was -300 R.
- Every version made money before costs (about 0.07 to 0.18 R per trade), but costs of about 0.09 to 0.17 R per trade absorbed most of it. Three versions ended slightly positive (AS-B +21 R, LD-A +70 R, LD-B +109 R) and three ended negative (AS-A -300 R, NY-A -125 R, NY-B -100 R), and none passed all the gates. The RSI filter did not change the verdict. Cause of death: Costs
- Round 2 (added later): adding a 1 × R profit target to every version did not rescue it. All six Round 2 versions got worse and ended negative, and none passes.
01The claim
The 30-minute opening-range breakout is a popular intraday idea: the first half hour of a session sets a range, and a break out of it often leads to a bigger move. Adding an RSI reading is a common way to try to keep only the breakouts that have momentum behind them. We found no single source for this exact setup. It's a common retail setup, so we credit nobody and test our own exact definition. We test rules, not people.
Spot gold, not futures. The price history is a broker's XAUUSD spot (CFD-type) data, not gold futures. We call these results gold results, never futures results.
02The rules we tested (frozen 7 Oct 2026, before any run)
- Sessions: Asia (09:00 Tokyo), London (08:00 London) and New York (09:30 New York), in local time with the real daylight-saving rules. Monday to Friday, one trade per session per day at most.
- Opening range: the high and low of the first 30 minutes. Days with too little data, or a range under $0.60 (twice the round-trip cost), are skipped.
- Entry: a stop-order breakout one tick beyond the range, allowed from 30 minutes to 4 hours after the open.
- Stop and exit: the stop is the other side of the range. There is no profit target. Anything still open is closed 7 hours after the open.
- RSI filter (second version of each session): RSI(14) on 30-minute bars. A long breakout is taken only if RSI is above 50, a short only if it is below 50. If RSI disagrees, that side is ignored for the day.
- Six variants declared up front: AS-A, AS-B, LD-A, LD-B, NY-A, NY-B (A = no filter, B = with the RSI filter).
Results are in R, where R is the size of that day's opening range. The full dated specification is in the files at the bottom.
03Data and costs
| Period | Dates |
|---|---|
| Development (P1) | 2004 to 2012 |
| Validation (P2) | 2013 to 2019 |
| Holdout (P3, already used) | 2020 to October 2026 |
Costs: $0.30 per ounce per round trip. That is optimistic for the early years, when real retail spreads on gold were wider, so these results are, if anything, generous to the strategy. Because ranges differ a lot by session and year, the same $0.30 is a small bite on a big range and a large bite on a small one: on average costs took 0.09 to 0.17 R per trade.
A typical 30-minute range averaged about $3.32 in Asia, $3.78 in London and $6.07 in New York per ounce, so one R is roughly $332, $378 and $607 on a 100-ounce lot. We checked our session clocks against the data itself: the busiest half-hour for gold is 13:30 UTC, exactly the New York open. That check was made on the whole history, which recent years dominate; the clock audit below found the time stamps one hour early in many weeks of 2004 to 2010.
Honest caveat on the holdout: the same gold history was used in earlier tests of other strategies, so the holdout can't count as clean. Six variants means more chances of luck, so the count is part of the result.
Data: broker 1-minute history, 2004 to 2026. Raw vendor data is not published.
04Results: every variant, net of costs
| Variant | Trades | Net | Avg R | PF dev | t (dev) | PF val | PF holdout* | Top 10 removed |
|---|---|---|---|---|---|---|---|---|
| AS-A | 4,814 | -300 R | -0.06 | 1.07 | 0.99 | 0.77 | 0.96 | -419 R |
| AS-B | 3,459 | +21 R | +0.01 | 1.41 | 3.76 | 0.86 | 0.91 | -91 R |
| LD-A | 4,938 | +70 R | +0.01 | 1.05 | 0.66 | 1.05 | 0.96 | -102 R |
| LD-B | 3,646 | +109 R | +0.03 | 1.15 | 1.48 | 1.01 | 0.97 | -64 R |
| NY-A | 5,458 | -125 R | -0.02 | 0.89 | -1.78 | 1.01 | 1.00 | -235 R |
| NY-B | 3,993 | -100 R | -0.02 | 0.90 | -1.35 | 0.95 | 1.04 | -199 R |
* Holdout already used before this test. PF = profit factor in R. A = no filter, B = with the RSI filter. AS = Asia, LD = London, NY = New York.
Before and after costs
| Variant | Gross per trade | Costs per trade | Net per trade | Cause of death |
|---|---|---|---|---|
| AS-A | +0.11 R | -0.17 R | -0.06 R | Costs |
| AS-B | +0.18 R | -0.17 R | +0.01 R | Overfit |
| LD-A | +0.14 R | -0.13 R | +0.01 R | Fragile |
| LD-B | +0.16 R | -0.13 R | +0.03 R | Fragile |
| NY-A | +0.07 R | -0.09 R | -0.02 R | Costs |
| NY-B | +0.07 R | -0.09 R | -0.02 R | Costs |
Gross is positive in all six, but costs of 0.09 to 0.17 R per trade absorb most of it. A strategy needs an edge bigger than its costs, and here the edges are about the same size as the costs or smaller.
Longs and shorts
| Variant | Longs net | Longs PF | Shorts net | Shorts PF |
|---|---|---|---|---|
| AS-A | +123 R | 1.07 | -423 R | 0.78 |
| AS-B | +261 R | 1.20 | -240 R | 0.81 |
| LD-A | -186 R | 0.91 | +256 R | 1.14 |
| LD-B | -139 R | 0.91 | +247 R | 1.18 |
| NY-A | +124 R | 1.09 | -249 R | 0.84 |
| NY-B | +62 R | 1.05 | -161 R | 0.85 |
Which side makes money flips by session: in Asia and New York the longs are positive and the shorts lose, in London it is the other way round. Gold rose from about $384 to about $4,139 in this data, nearly elevenfold, which favours longs, and with six versions some sides will look good by chance. Different sessions can genuinely behave differently, so a sign flip alone does not rule out an edge. But with six versions tried, flips like this are what chance alone produces, and the version that looked best in development (Asia with RSI) did not hold up in validation or the holdout.
- The RSI filter cut the number of trades by about a quarter and did not change the verdict. In Asia it lifted the net result from -300 R to +21 R, in London from +70 R to +109 R, and in New York it barely changed it (-125 R against -100 R). None of those is a robust gain, and none repeats in validation and the holdout.
- AS-B is the warning sign. It was the best version in development (profit factor 1.41, t-statistic 3.76, the only version to clear that gate) and then fell to 0.86 in validation and 0.91 in the holdout. Nothing was fitted. This is what a lucky result among several tries looks like, which is why we test on later periods.
- Confidence: the chance that the true average trade is zero or negative is 99% (AS-A), 43% (AS-B), 34% (LD-A), 23% (LD-B), 88% (NY-A), 87% (NY-B).
05The curves
AS-B: the version that looked best in development
LD-B: the best net result
The strategy line sits above the random band in most months (228 of 274 for AS-B, 238 for LD-B). That looks good but is a low bar: random entries have no gross edge and pay the full costs, so they lose about 0.14 R per trade in Asia and 0.11 R in London. Beating random here means "better than throwing away the costs", not "profitable". The curves themselves hover around zero, and AS-B rises through development and then drifts down.
06The gates
| Gate | AS-A | AS-B | LD-A | LD-B | NY-A | NY-B |
|---|---|---|---|---|---|---|
| PF ≥ 1.2 in validation | fail | fail | fail | fail | fail | fail |
| ≥ 50 trades per period | pass | pass | pass | pass | pass | pass |
| t ≥ 2.0 on development | fail | pass | fail | fail | fail | fail |
| Above 95th pct of random runs | pass | pass | pass | pass | pass | pass |
| Positive without top-10 trades | fail | fail | fail | fail | fail | fail |
| Holdout net positive (used) | fail | fail | fail | fail | fail | pass |
| Gates passed (all 6 needed) | 2 / 6 | 3 / 6 | 2 / 6 | 2 / 6 | 2 / 6 | 3 / 6 |
Every version clears the sample-size gate and the random-entry gate (for the reason above, which the control check below confirms). All six fail the validation gate and the ten-best-trades test. Only AS-B clears the development t-statistic, and it then fails validation and the holdout. Only NY-B has a positive holdout, and only just (+22 R).
Control check after review (added 8 Oct 2026)
Every variant sat at the 100th percentile of our random control, even the ones that ended below zero. A control that every variant beats can simply be too easy, so we checked. The frozen control takes a random side at a random minute inside the entry window; it has no gross edge by construction and no structure by time of day. We re-ran the comparison with controls that keep the same exits, stop and costs, and match when the entry happens (the real distribution of entry minutes after the range) and which side: one with the real long/short mix, and, separately, longs against random longs and shorts against random shorts. Because the random trades are on the same side and at the same times, the market's drift and the time-of-day pattern are in both.
| Variant | Frozen control (as published) | Matched on entry minute and side mix | Longs vs random longs | Shorts vs random shorts |
|---|---|---|---|---|
| AS-A | 100.0th | 100.0th | 100.0th | 84.8th |
| AS-B | 100.0th | 100.0th | 100.0th | 89.0th |
| LD-A | 100.0th | 100.0th | 99.6th | 100.0th |
| LD-B | 100.0th | 100.0th | 99.2th | 100.0th |
| NY-A | 100.0th | 100.0th | 100.0th | 91.4th |
| NY-B | 100.0th | 100.0th | 99.6th | 91.0th |
| AS-A-T | 100.0th | 100.0th | 100.0th | 100.0th |
| AS-B-T | 100.0th | 100.0th | 100.0th | 100.0th |
| LD-A-T | 100.0th | 100.0th | 100.0th | 100.0th |
| LD-B-T | 100.0th | 100.0th | 95.8th | 100.0th |
| NY-A-T | 100.0th | 100.0th | 100.0th | 100.0th |
| NY-B-T | 100.0th | 99.8th | 94.2th | 99.8th |
Percentile of the average net per trade among 500 random runs, 95 needed. Percentiles move by a point or two between runs because the random trade count is calibrated to the real count. Code and output: gold_control_check.js, gold_control_check.txt, gold_r2_control_check.txt.
What this changes. Nothing about the verdict, but it settles the doubt. Against a control matched on entry minute and side mix, all twelve variants (six original, six Round 2) are at the 99.8th percentile or above overall. So the 100th percentiles were not an artifact: the breakout entry earns more per trade than random entries at the same times and sides, which fits the post's finding that the gross result is positive. Split by side, 8 of the 12 original session-sides (all six long sides and the two London short sides) are at the 99th percentile or above, while the Asia and New York short sides (4 of the 12) sit at the 85th to 91st, where there is no clear breakout effect. In Round 2 every side is at the 94th percentile or above.
What this does not mean. Beating random entries is not the same as being profitable. The random trades pay the same costs and have no gross edge, so they lose about the cost per trade, and the breakout entry beats that by roughly its small gross edge. After costs the original versions net between -300 R and +109 R, and the other gates still fail.
What it does not change. The frozen gate results, the verdict and the causes of death. The open question for gold is the cost: the gross edge is about the size of the costs, so the result depends on the real spread and commission, which we have not checked against a broker.
Cost check: what if your costs are lower? (added 8 Oct 2026)
We assumed $0.30 per ounce per round trip, fixed before the run. The IC Markets Raw Spread account publishes a commission of $3.50 per lot per side, which is $7 per round turn on a 100-ounce lot, or $0.07 per ounce, plus a spread that third-party reviews put at about $0.10 per ounce on average today. That is roughly $0.17 per ounce, below our assumption. Spreads in 2004 to 2012 were wider, and the MT4 history does not record spreads, so we cannot check the early years. The table recomputes each original variant from its published trade log at other round-trip costs.
| Variant | Net at $0.10 | Net at $0.17 | Net at $0.30 (assumed) | Net at $0.45 | Validation PF at $0.17 | Validation PF at $0.10 |
|---|---|---|---|---|---|---|
| AS-A | +242 R | +53 R | -300 R | -706 R | 0.87 | 0.93 |
| AS-B | +416 R | +278 R | +21 R | -275 R | 0.98 | 1.05 |
| LD-A | +496 R | +347 R | +70 R | -250 R | 1.14 | 1.20 |
| LD-B | +425 R | +314 R | +109 R | -129 R | 1.10 | 1.16 |
| NY-A | +210 R | +93 R | -125 R | -376 R | 1.10 | 1.15 |
| NY-B | +144 R | +59 R | -100 R | -283 R | 1.03 | 1.08 |
What this shows. At $0.17 per ounce the six original versions end between +53 R and +347 R, all above zero, so the “Costs” label below describes the frozen $0.30 assumption and would not apply to them at the lower cost. But none passes: the validation profit factor stays between 0.87 and 1.14 against the 1.2 required, and even at $0.10 the best validation profit factor is 1.20 with a development t-statistic of 2.21 for that variant against the 2.5 required. The Round 2 versions (with the 1 R target) end between -99 R and +18 R at $0.17 and none passes either. So the cost assumption changes the story from “costs ate the edge” to “at best a small positive result that does not hold up in validation”, and the verdict stays Buried.
What it does not change. The frozen gate results, the verdict and the causes of death as published. This is a sensitivity check on a cost we fixed in advance. The open question is the real cost over the whole period, including 2004 to 2012.
R2Round 2: a fixed stop and target (added after the first result)
Honest label: these variants were added after we saw the original results, so they are not pre-registered in the way the originals were. They are reported in full, counted in the total (12 variants tried: 6 original, 6 in Round 2), and judged by the same six gates. The original numbers above are unchanged.
After the first result we added a profit target to every gold variant, next to the stop that was already there: a target of 1 × R, where R is the size of that day's opening range, so the reward equals the risk. Six variants, one for each original, named AS-A-T, AS-B-T, LD-A-T, LD-B-T, NY-A-T and NY-B-T. The same rule applies to all six, because choosing which ones to test would itself be a choice based on the results.
| Variant | Original net | Round 2 net | Trades | PF dev | t (dev) | PF val | PF holdout* | vs random | Top 10 removed |
|---|---|---|---|---|---|---|---|---|---|
| AS-A-T | -300 R | -452 R | 4,814 | 0.91 | -1.75 | 0.68 | 0.92 | 100.0th | -463 R |
| AS-B-T | +21 R | -315 R | 3,459 | 0.94 | -0.93 | 0.71 | 0.88 | 100.0th | -327 R |
| LD-A-T | +70 R | -260 R | 4,938 | 0.91 | -1.81 | 0.85 | 0.94 | 100.0th | -273 R |
| LD-B-T | +109 R | -237 R | 3,646 | 0.89 | -1.80 | 0.83 | 0.91 | 100.0th | -250 R |
| NY-A-T | -125 R | -212 R | 5,458 | 0.78 | -5.21 | 1.00 | 1.02 | 100.0th | -236 R |
| NY-B-T | -100 R | -203 R | 3,993 | 0.75 | -5.06 | 0.93 | 1.03 | 100.0th | -223 R |
Results in R, net of costs. * Holdout already used before this test. "Original net" is the net result of the matching original variant shown above.
All six got worse: every Round 2 version ends negative, from -203 R to -452 R. The win rate rose from roughly 28 to 40 percent to about 50 to 54 percent, but a 1 R target caps each winner while the losers stay at full size, and the gross result per trade fell from 0.07 to 0.18 R down to 0.04 to 0.08 R. Costs of about 0.09 to 0.17 R per trade did the rest.
| Gate | AS-A-T | AS-B-T | LD-A-T | LD-B-T | NY-A-T | NY-B-T |
|---|---|---|---|---|---|---|
| PF ≥ 1.2 in validation | fail | fail | fail | fail | fail | fail |
| ≥ 50 trades per period | pass | pass | pass | pass | pass | pass |
| t ≥ 2.5 on development | fail | fail | fail | fail | fail | fail |
| Above 95th pct of random runs | pass | pass | pass | pass | pass | pass |
| Positive without top-10 trades | fail | fail | fail | fail | fail | fail |
| Holdout net positive (used) | fail | fail | fail | fail | pass | pass |
| Gates passed (all 6 needed) | 2 / 6 | 2 / 6 | 2 / 6 | 2 / 6 | 3 / 6 | 3 / 6 |
A stricter bar now applies. With 12 variants of this strategy tried in total, the development t-statistic needed rises from 2.0 to 2.5, for the original variants as well as the Round 2 ones. No original verdict changes, because every original variant had already failed other gates too (AS-B did clear 2.5 in development, at t 3.76, and then failed validation and the holdout).
What this tells us: the stop and target combination tested here did not produce a variant that passed the protocol, and after costs it made every version we tried worse. A stop and target reshape the wins and losses of a trade rather than the entry signal. We tested one stop and target distance per strategy and did not test other distances or other exit types, so this does not show that no exit could help. The cause of death above stands.
07Cause of death
Costs Opening-range breakouts on gold have a small positive gross result, around 0.07 to 0.18 R per trade, and the costs are about as big. NY-A and NY-B end clearly negative, and AS-A is negative too. Fragile LD-A and LD-B end slightly positive, but remove their ten best trades and they turn negative. Overfit AS-B looked strong in development and did not repeat.
What we did not test: other range lengths (15 or 60 minutes), profit targets, other RSI settings, other instruments or gold futures, trade filters like volatility or news, and live execution. We kept to one common definition on purpose. Trying many settings would raise the odds of finding a lucky one, not a real edge.
What would change our mind: a forward sample of new trades with a net result clearly above zero, ideally on real gold futures with real fills, or a version whose gross edge is much larger than its costs.
TWhat this shows, and what to take into your own tests
What the results show
- All six versions made money before costs (about 0.07 to 0.18 R per trade), but costs of about 0.09 to 0.17 R per trade absorbed most of it: three ended slightly positive and three negative, and none passed all the gates.
- The RSI filter cut the number of trades by about a quarter and did not change the verdict.
- Which side makes money flipped from one session to the next, and the best-looking version in development (Asia with RSI) fell apart later.
- Every version beat our random-entry control at the 100th percentile, which looked too easy. Against controls matched on entry minute and side, all twelve variants (six original, six Round 2) still sit at the 99th percentile or above overall, so the gross edge is real relative to random entries at the same times. It is just small next to costs.
What remains unknown
- Real gold futures with real fills. We used broker spot data.
- Other range lengths, such as 15 or 60 minutes, and other targets.
- Whether real costs were lower than our $0.30 per ounce assumption.
Why it failed
The gross edge is small relative to the costs, which absorbed much of the profit: three versions stayed slightly positive after costs and three turned negative, and none passed the other gates. Costs weigh more on days with a small opening range. The one version that looked strong was the best of six tries, which is exactly what luck produces. Different sessions can behave differently, so a sign flip alone proves nothing either way, but with six tries chance alone produces flips like this.
What you can apply to your own tests
- Express results in R (risk units) and compare your cost in R, not in dollars, because the same dollar cost is a different size on every day.
- Count your tries. The best of six is not a one-in-one result.
- Always check later periods. A development result that vanishes is information.
- Check whether the winning side stays the same across sessions and markets.
- If every variant beats your control, including the losers, test a harder control. Ours was at the 100th percentile for all of them; matching entry time and side confirmed it, but we had to check.
A note on the numbers: drawdown figures are measured on closed trades unless a table says it includes open losses. Open losses inside a trade are not counted in a closed-trade drawdown, so real account risk is higher, especially for systems with no stop. Backtests are not live trading.
FAQCommon questions
Does a gold opening-range breakout work?
Not in this test. Across 12 variants (three sessions, with and without an RSI filter and a profit target) 0 passed every gate. They made +4,774 R before costs and -2,003 R after costs, and the best-looking version in development did not hold up in validation or the holdout.
How much do costs matter for a gold breakout strategy?
At the $0.30 per ounce we assumed, the six original variants end between -300 R and +109 R. At about $0.17 per ounce, an estimate of broker costs, they end between +53 R and +347 R, but none passes the validation test. The cost check is in this post.
Does an RSI filter improve a gold opening-range breakout?
In our test it cut the number of trades by about 27 percent and did not change the verdict.
How was the gold breakout tested?
On 22 years of spot gold, with rules written and dated before the data was run, costs included on every trade, results split into development, validation and holdout periods, a random-entry control as the benchmark, and every variant reported. Read the protocol.
08Check our arithmetic
gold_orb_protocol.js · gold_control_check.js · gold_cost_sensitivity.js
Round 2 files: round2_spec.md (dated before the run) · code: round2_gold.js · gold_r2_results.txt · trade logs: AS-A-T, AS-B-T, LD-A-T, LD-B-T, NY-A-T, NY-B-T
clock_audit_compare.txt · clock_audit_map.txt · clock_audit_fix.txt · clock_audit_map.js · clock_audit_fix.js · clock_audit_compare.js
Code provenance: our own code, written from the common definition of an opening-range breakout and the standard RSI. No third-party source code is used or published.
Full console output: gold_results.txt and gold_control_check.txt (control check, added 8 Oct 2026).
09Clock audit (added 9 Oct 2026)
We checked the time stamps of this broker's MetaTrader 4 history against an outside event: the price jump at the US data releases that come out at 08:30 New York (the payrolls, the weekly jobless claims). Week by week, the jump should sit in the minute 08:30 to 08:31. For gold it sat one hour early in 366 of 1,197 weeks, mostly 2004 to 2010, plus a few weeks a year after that when the US and European clocks change on different dates. In 225 of those weeks there was no clear release, so the week took the call of the nearest week that had one; that part is an estimate. We moved the time stamps of those weeks by one hour (prices untouched) and ran the same code again on the same data (clock_audit_compare.txt). This test depends on the time of day, because the opening range is the first 30 minutes of a session, so in the weeks that were off the range was taken one hour after the real open.
| Clock audit | Trades, clock as published → corrected | Net, as published → corrected | Gates passed | Verdict |
|---|---|---|---|---|
| AS-A | 4,815 → 4,909 | -299.8 R → -478.7 R | 2 → 1 | Buried (unchanged) |
| AS-B | 3,460 → 3,548 | +21.0 R → -100.4 R | 3 → 3 | Buried (unchanged) |
| LD-A | 4,940 → 4,965 | +67.6 R → +56.0 R | 2 → 2 | Buried (unchanged) |
| LD-B | 3,647 → 3,639 | +112.5 R → +114.2 R | 2 → 2 | Buried (unchanged) |
| NY-A | 5,459 → 5,449 | -124.4 R → -62.5 R | 2 → 3 | Buried (unchanged) |
| NY-B | 3,993 → 4,042 | -99.7 R → +16.4 R | 3 → 3 | Buried (unchanged) |
| AS-A-T | 4,815 → 4,909 | -452.5 R → -506.8 R | 2 → 2 | Buried (unchanged) |
| AS-B-T | 3,460 → 3,548 | -316.3 R → -326.1 R | 2 → 2 | Buried (unchanged) |
| LD-A-T | 4,940 → 4,965 | -261.9 R → -252.8 R | 2 → 2 | Buried (unchanged) |
| LD-B-T | 3,647 → 3,639 | -235.8 R → -200.4 R | 2 → 2 | Buried (unchanged) |
| NY-A-T | 5,459 → 5,449 | -210.7 R → -137.7 R | 3 → 3 | Buried (unchanged) |
| NY-B-T | 3,993 → 4,042 | -202.8 R → -128.2 R | 3 → 3 | Buried (unchanged) |
Both columns are runs of the same code on the same copy of the file (8 October 2026, a day longer than the run published above), so the difference comes from the clock alone.
What changes. No verdict: all twelve stay Buried. The numbers move, mostly through 2004 to 2010: the Asia versions lose more (AS-B goes from +21.0 R to -100.4 R, and its development t-statistic from 3.76 to 2.42, still above the 2.0 bar), the New York versions lose less (NY-B goes from -99.7 R to +16.4 R), and London changes little. The holdout, 2020 to 2026, barely moves, because gold's clock in this file is right from 2012 except for a few weeks a year. The tables above stay as the record of the run we published; read the early-year figures in them with this table next to them.
10Corrections
7 Oct 2026, after an outside review: the text said all six original versions lost money after costs. Three ended slightly positive (AS-B +21 R, LD-A +70 R, LD-B +109 R) and three negative; costs absorbed most of the gross profit and none passed all the gates. The claim that a real edge cannot change sign between sessions was also qualified. 7 Oct 2026: added the "What this shows, and what to take into your own tests" section and a note that drawdown is measured on closed trades. No result changed. Also 7 Oct 2026: the Round 2 sentence in the verdict now says "All six Round 2 versions" so that it cannot be read as describing the original six. No result changed. 8 Oct 2026, after a second outside review: (1) the explanation under “Why it failed” now says the gross edge is small relative to the costs, which absorbed much of the profit, instead of “smaller than the costs”, because three versions stayed slightly positive after costs; (2) the Round 2 sentence saying a stop and a target “can't create an edge” was replaced with a statement limited to the combination tested here, which did not produce a variant that passed the protocol; other distances and exits were not tested. No result changed. Also 8 Oct 2026, control audit: every variant sat at the 100th percentile of the random control, which looked too easy. A control check with controls matched on entry minute and side is added under “The gates”; it confirms the result (all twelve variants at the 99.8th percentile or above overall) and shows that the breakout effect is clear on the long sides and the London short sides but not on the Asia and New York short sides. The frozen gate results, the verdict and the causes of death did not change. Also 8 Oct 2026, after checking the IC Markets Raw Spread costs: a cost check was added under “The gates”. At about $0.17 per ounce instead of the assumed $0.30 the original versions end slightly positive but none passes; the “Costs” label describes the frozen assumption. No result or verdict changed. 9 Oct 2026, clock audit: a check against the US data releases at 08:30 New York showed the time stamps of the gold file one hour early in many weeks, mostly 2004 to 2010, so in those weeks the opening range was taken one hour after the real open. The same tests re-run with corrected time stamps are in the new “Clock audit” section: no verdict changed, several net results moved (for example AS-B and NY-B), and the tables above stay as the record of the published run. The sentence about checking the session clocks against the data was qualified accordingly. 8 Oct 2026, search and navigation: added an answer-first line, a FAQ and links to related tests and guides. No result changed. 8 Oct 2026, new tests: added links to the new golden cross tests (daily and 1-hour) in the related tests block. No result changed. 18 Oct 2026, navigation: added links to the new guide that compares all 11 gold strategy tests. No result changed. 22 Oct 2026, navigation: added a link to the new guide comparing trading costs across all our tests. No result changed. 22 Oct 2026, navigation: added a link to the new guide comparing trend following and mean reversion across all our tests. No result changed. 22 Oct 2026, navigation: added a link to the new guide comparing versions with and without a stop loss across our tests. No result changed.
+More tests and guides
- Best gold trading strategy
- Donchian channel breakout strategy backtest
- Supertrend indicator backtest
- Golden cross 1 hour backtest
- Forex strategy backtest
- Did the stop loss help? This test next to the other with-and-without pairs
- Trend following vs mean reversion: this test next to the others of its style
- Free prop firm challenge calculator
- What all the backtests found so far
- The backtesting protocol
- How to backtest a trading strategy without fooling yourself
- Backtesting glossary