← All articles

Strategy Graveyard, chapter 10 — chart patterns and levels

ORB on gold: the 5 R target hit 29 times in 926 sessions

13 min read · Published 27 Oct 2026

We tested the opening range breakout (ORB) on gold, separately for the London and New York sessions, on about 930 sessions of each from 2018–2023. The best variant gave a PF of 1.06, and 1.03 without the three best trades, with a drawdown that in simulation reached 20–32% of capital. The 5 R target was hit 29 times in 926 sessions in London and not once in New York, so the “rarely, but big” strategy in practice closed positions at a fixed time. Before we got to the result, we caught our own clock error, which had shifted every session by 2–3 hours.

Abbreviations: R is a trade’s result in units of risk (−1 R = a loss equal to the distance to the stop). PF (profit factor) is total gains divided by total losses; a PF of 1.00 means breaking even. ATR is the average candle range over the last 14 candles, a measure of volatility; we calculate the daily ATR from daily candles. M5 and M15 are five- and fifteen-minute candles. UTC is Coordinated Universal Time, against which we set the session hours.

Hypothesis

The opening range breakout (ORB) is one of the oldest intraday trading rules. You take the highest and lowest price of the first minutes of the session. When price moves above that range, you buy, and when it drops below it, you sell. The stop goes on the other side of the range. The rationale goes like this: orders that built up overnight meet at the open, and the direction of the first breakout is supposed to reveal where the market will go for the rest of the day.

In recent years the topic was revived by a paper by Zarattini and Aziz (2023) on the US stock market. It describes a version with a distant target, measured in multiples of risk, and with the position closed at the end of the day. The logic of such a target is simple: rare but large wins are supposed to cover frequent small losses. Our version is not a copy of that paper, because it concerns a different market and has a different range length and a different target.

We wrote the rule down in full before the test:

  1. Two separate sessions: London from 8:00 UTC and New York from 13:30 UTC.
  2. The opening range is the high and low of the first 15 minutes, that is, three M5 candles.
  3. The width of the range must fall within a set band relative to the daily ATR (more on this threshold below).
  4. Entry happens when an M5 candle closes outside the range; a wick alone is not enough. Only the first breakout counts, no later than one hour after the range ends, and there is at most one trade per session.
  5. The stop goes on the opposite side of the range, with a buffer of 0.1 daily ATR.
  6. Exit A: a 5 R target, and if it isn’t hit, a close at 16:00 UTC. Exit B: after a profit of 1 R, the stop moves to the entry price, and then trails at a distance of one M15 ATR.

A rule like this has about ten parameters. That is exactly why we tuned nothing in it: with ten knobs you can fit anything. We froze the hypothesis before the first run: after real costs, the breakout gives a positive average R. A negative result, or one indistinguishable from the placebo, meant the end of the topic.

This was our second and last attempt. In the first, at the beginning of September, the New York session breakout on gold gave a PF of 0.69 in the training sample and 1.06 in the holdout sample, and did not survive the correction for multiple testing. On the German index (in a version with a retest of the level), a range taken from the middle of the session gave a PF of 0.76, and the real opening range 0.82. There, the open carried nothing beyond any other 15 minutes.

How we tested it

Data and cost. We used M5 candles for gold at our broker from 2018. Earlier years had about 260 “M5 candles” a year, that is, daily candles passed off as a lower timeframe (chapter 4). The cost was $0.13 per trade, round trip: a median spread of $0.09 from 3.57 million ticks, plus slippage. The spread column stored with the candles showed $0.05, or 56% of the real value (chapter 3).

Split and controls. Training covered 2018–2023, and the period from 2024 to September 2026 was a one-shot holdout sample, to be used only if something passed training. The main family consisted of four tests (2 sessions × 2 exits), with a correction for multiple testing. The placebo was the same mechanism on a 15-minute range from the middle of the session (11:00 UTC for London, 16:30 for New York). On top of that came a permutation in daily blocks, PF without the three best trades, a Monte Carlo drawdown simulation and a requirement of at least 60% of years in profit. Passing also required a PF above 1 on a second instrument. The German index already had a PF of 0.82, so this condition could not be met from the outset. We wrote that down in the pre-registration before the start, not after the result.

Our clock error. The first run looked odd: the New York session gave 3 trades, and the placebo “at 16:30” as many as 127. The cause was on our side. Candle times from the terminal are the broker’s server clock (UTC+2 in winter, UTC+3 in summer), and we had treated them as UTC. Every session shifted by 2–3 hours. Our “New York at 13:30” was in reality a quiet late morning in Europe, while the placebo at 16:30 server time landed on the real New York open. A simple check gave the error away: gold’s volatility peak fell at 16:00 by the server clock, which after correct conversion is 14:00 UTC, during the opening hours of trading in New York. We invalidated the run and made the “where does the volatility peak fall?” check a permanent part of every session-based test (chapter 2).

A threshold that could not be met. The original specification required a range 0.3–1.5 daily ATR wide. On gold, however, the median was 0.092 ATR in London and 0.167 in New York. Only 1.3% and 11.2% of sessions fell within the band, and 0.0% were above 1.5 ATR, so the upper threshold would not have triggered even once. We reset it to the 25th and 90th percentiles of the width distribution from the training years: 0.074–0.167 ATR for London and 0.127–0.311 for New York. We calibrated only on the width distribution, not on the strategy’s result. It was, however, a change made after the first, invalidated run, so we record it here honestly.

Result

Training, 2018–2023:

variant trades profitable average PF PF without the 3 best permutation p drawdown, p95
London, 5 R target 926 37.0% +0.034 R 1.06 1.03 0.25 63.9 R
London, trailing stop 926 49.7% −0.013 R 0.97 0.95 0.64 59.0 R
New York, 5 R target 938 46.7% +0.006 R 1.02 0.98 0.42 40.3 R
New York, trailing stop 938 47.5% −0.022 R 0.95 0.92 0.79 54.9 R

Every variant met at least one rejection condition. Both trailing-stop variants had an average below zero, and both 5 R target variants had a PF without the three best trades below 1.10. None came close to the PF 1.25 threshold. A drawdown of 40–64 R at the 95th percentile of the simulation means, at a risk of 0.5% per trade, losing 20–32% of capital, while our threshold is 6%. A direction filter from the EMA50 on M15, calculated alongside, changed nothing: with the 5 R target, PF came to 1.05 in London and 1.04 in New York. We did not open the 2024–2026 holdout sample.

How the trades with the 5 R target ended:

session 5 R target stop close at 16:00 UTC
London 29 (3.1%) 539 (58%) 358 (39%)
New York 0 204 (22%) 734 (78%)

The best variant owed its result mainly to a single year. London with the 5 R target made +25 R in 2020, out of a total of +31.7 R, and lost 14 R in 2021.

Why it doesn’t work

The 5 R target practically did not exist. In New York, the time from entry to the 16:00 UTC close ranged from just over an hour to just over two hours. None of the 938 trades managed to earn 5 R in that time, and in London it happened in 3% of cases. So the “few hits, but big wins” rule turned out to be a position closed at a fixed time. Its result depended on where price happened to be at 16:00.

A little information is not enough. The signal did better than the placebo: in London with the 5 R target, +0.034 R against −0.052 R. So it looked as if gold’s opening range carries a little information, unlike the German index. An edge of about 0.09 R over a random window, however, does not survive costs and the fragility of the result, because PF 1.06 drops to 1.03 without three trades. While writing this chapter, we found two things in the code that weaken even this comparison. First, we did not calculate the significance of the difference, although the pre-registration required it. Second, the New York placebo in the 5 R target variant was flawed: the 16:00 UTC close fell before its entries (the earliest at 16:50), so the placebo positions lived for one candle. The London comparison stands, but we treat it as a pointer, not proof.

A trailing stop takes away the right-hand side of the distribution. In London, variant B raised the share of profitable trades by 13 percentage points, and it lowered the average in both sessions. There, a stop moved to entry or trailed closed 450 of the 926 positions. It turned big losses into smaller ones, but it cut off the few big moves a breakout lives on. In our tests, this is the fourth independent confirmation of the same pattern.

Session hours should follow daylight saving time. This is the third thing we found only now. We froze the session hours in UTC for the whole year. London opens at 8:00 London time, which is 7:00 UTC in summer, so in summer our “London” range started an hour after the open. The New York stock market opens at 9:30 New York time, which is 13:30 UTC in summer but 14:30 in winter. So in winter our range fell at 8:30 in New York, the minute when the most important US data are released. On top of that, the server-clock conversion we adopted after fixing the error is off by an hour for about three weeks a year, when Europe and the US change their clocks on different days. We established this three days after the test.

The daily ATR also looked into the future. We found the fourth thing in the function that calculates ATR. The comment in the code said “from previous bars”, but the value assigned to a day included the range of that same day, which at 8:00 was still in progress. It is the same kind of error as in chapter 1, only weaker: here the current day carries roughly one fourteenth of the weight of the average. The daily ATR set the range-width threshold and the stop buffer, so on days with a big move both were somewhat different from what they would really have been at 8:00. We did not check whether correct hours and a correct ATR would change the verdict. With results this far from the thresholds we don’t expect them to, but that is a guess, not a measurement.

The lesson for you

ORB is well suited to learning how to test, because it is simple and easy to write down. Our two attempts, however, say more about measurement traps than about the breakout itself.

Before you trust your ORB:

  1. Check the clock before you calculate anything session-based. Find the hour of peak volatility in your data. For gold it should fall around the New York open. If it falls somewhere else, your “sessions” are shifted.
  2. Set sessions in the exchange’s local time, with daylight saving. A single UTC hour all year round is in practice two different sessions: a summer one and a winter one.
  3. Calculate the distribution of every threshold before you freeze it. A filter that lets through 1% of sessions, or rejects none, is not a filter.
  4. Count how your trades end. If the target is hit in 3% of cases, you have a time-exit strategy, not a strategy with a target.
  5. Compare the result with a placebo in the same construction. A range from the middle of the session with the same exit will show whether the open is special. While you are at it, check that the placebo has as much time until the close as the signal.

In your trading journal, record the reason for the exit (target, stop, time) for every trade; after a few dozen entries you will see whether your target is doing any work at all. The “Luck or edge?” calculator will show whether the result stands out from chance and how much of it is left without the three best trades.


Educational content, not investment advice. Past results do not guarantee future results. We describe the result of our reconstruction of a single, strictly defined version of the opening range breakout on gold, on our data and with our costs — not an assessment of every variety of ORB.

Check it on your own trades

Free tools, no sign-up, your data stays in your browser.

← All articles