Opening Range Breakout: What 142,348 Trades Actually Show
The opening range breakout works — barely, and not in the way almost every article about it claims. We ran 142,348 simulated ORB trades across 104 liquid US stocks and ETFs from January 2020 to August 2026 through the TrueTrader Strategy Lab, and the canonical 5-minute ORB produced a profit factor of 1.031 and an average of +0.011R per trade at a 53.9% win rate, before commissions. That is a coin flip that pays for itself and very little more. More importantly, we found out why published ORB backtests look so much better than that: roughly half of the edge they show is an artifact of a fill assumption that cannot happen in a real account.
Here are the five findings, all from the same run:
- Naked ORB is roughly breakeven. Profit factor 1.031, +0.011R per trade across 142,348 trades. The 54% win rate is real and almost irrelevant.
- The fill fantasy tax. Filling at the breakout level — what nearly every published ORB backtest does — shows +0.023R per trade. Filling at the next bar's open, the way an order actually executes, cuts it to +0.011R. 52% of the apparent edge is the fill assumption, not the strategy.
- ORB is a long-side, gap-day phenomenon. Long breakouts: PF 1.054. Short breakdowns: PF 1.009. Breakouts continuing an overnight gap: PF 1.058. Breakouts fighting the gap: PF 1.017.
- Filters move the win rate, not the edge. A 5% penetration buffer lifted the win rate from 53.9% to 56.0% and left expectancy at +0.011R. So did 15- and 30-minute ranges.
- ORB failed on the index and worked on single names. SPY was net negative (PF 0.94). 68% of individual symbols were net positive.
These results are based on simulated or hypothetical performance results that have certain inherent limitations. Unlike the results shown in an actual performance record, these results do not represent actual trading. Also, because these trades have not actually been executed, these results may have under- or over-compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated or hypothetical trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profits or losses similar to those shown.
That disclosure applies to every number on this page. One more thing to say plainly before the data: TrueTrader does not trade ORB as a live strategy. This is research, not a product, not a signal service, and not a track record. We ran it because our members kept asking whether the internet's favourite day-trading strategy actually holds up, and because we had the infrastructure to answer honestly.
The ORB strategy, specified to the letter
Most ORB articles describe the idea and skip the decisions that determine the result. Ambiguity is where backtests go to launder themselves, so here is the exact configuration, tight enough that a sceptical reader could rebuild it and check us.
- Opening range: the high and low of the first five minutes of the regular session, 09:30:00–09:34:59 ET.
- Entry trigger: the first touch beyond either edge of that range after 09:35 — long above the high, short below the low. One trade per symbol per day. No new entries after 15:49 ET.
- Fill rule: the open of the bar after the trigger bar. You cannot act on a bar until it has completed. This is the single most consequential line in the spec.
- Stop: the opposite edge of the opening range. Risk (1R) is therefore the full range width. Stops fill at stop-or-worse when price gaps through them.
- Targets: half the position at +0.5× the range beyond the breakout edge, the remaining half at +1.0× the range. Targets are treated as resting limit orders. When a stop and a target could both have been hit inside the same bar, we resolve stop-first.
- End of day: anything still open is flattened at 15:49 ET. No overnight holds, ever.
- Costs: zero commission (realistic for US retail equities today) and no slippage beyond the honest fill rule itself. No short borrow fees. Both of those omissions flatter the results.
- Normalisation: every trade is expressed in R, so a $600 stock cannot dominate a $30 one.
The configuration comparison: everything lands in the same band
We ran six configurations through the identical engine on the identical data. Read the last column. The win-rate column is the one that sells courses; the expectancy column is the one that decides outcomes.
| Configuration | Trades | Win rate | Profit factor | Avg R / trade |
|---|---|---|---|---|
| 5-min ORB, honest fills (canonical) | 142,348 | 53.9% | 1.031 | +0.011 |
| 5-min ORB, fills at the level (the published assumption) | 142,375 | 53.8% | 1.066 | +0.023 |
| 5-min ORB + 5% penetration buffer | 141,992 | 56.0% | 1.033 | +0.011 |
| 5-min ORB + minimum-range filter (0.3% of price) | 138,896 | 54.0% | 1.022 | +0.008 |
| 15-min ORB, honest fills | 140,369 | 55.3% | 1.034 | +0.010 |
| 30-min ORB, honest fills | 135,721 | 55.1% | 1.033 | +0.009 |
Five of the six rows sit in a band from +0.008R to +0.011R. Changing the opening range from 5 minutes to 30 minutes — the argument that consumes most of the ORB internet — moved expectancy by less than the measurement noise. Adding a penetration buffer bought two extra percentage points of win rate and paid for them exactly, in smaller average winners. The one row that moved materially is the row where we changed nothing about the strategy and only changed how we assumed the order got filled.
The fill fantasy tax
When a stock trades through the opening range high, the level has already printed. You are not the print; you are behind it, in a queue, with every other momentum trader and every algorithm that saw the same thing faster. On minute bars, the earliest fill you can honestly claim to know about is the open of the following bar. Filling at the level itself assumes you were resting an order there and got hit without moving the price — which is a story about the past, not an execution model.
| Fill model | Avg R / trade | Profit factor | Total R over 6.6 years |
|---|---|---|---|
| At the breakout level | +0.0226 | 1.066 | +3,221 |
| Next-bar open (honest) | +0.0109 | 1.031 | +1,551 |
| Difference | −52% | −0.035 | −1,670 R |
Same trades, same stops, same targets, same data. The only change is where the entry price comes from, and it removes 52 cents of every dollar of apparent edge.
Momentum entries are uniquely exposed to this. By construction you are buying seconds after a burst of buying, at the moment the order book is thinnest on your side. Mean-reversion entries — buying weakness — do not pay this tax anywhere near as heavily, because you are supplying liquidity rather than demanding it. That asymmetry is why a fill rule that looks like an accounting detail is, for ORB specifically, the difference between a strategy and a chart.
We could not find a single published ORB study that quantifies this. If you take one thing from this page, take this: before you trust any breakout backtest, find out where it fills. If the answer is "at the level", halve it and start again.
Where the thin edge actually concentrates
Long, not short
Long breakouts: 71,240 trades, 54.3% win rate, PF 1.054, +0.019R. Short breakdowns: 71,108 trades, 53.6%, PF 1.009, +0.003R. Essentially all of the measured edge is on the long side — consistent with the market's structural upward drift, and remember we charged the short side no borrow costs at all. A more realistic short model would be worse.
Gap alignment: the only filter that changed expectancy
| Overnight gap vs breakout direction | Trades | Profit factor | Avg R |
|---|---|---|---|
| Breakout with the gap (>0.2%) | 56,444 | 1.058 | +0.020 |
| Breakout against the gap | 59,557 | 1.017 | +0.006 |
| No meaningful gap (±0.2%) | 26,256 | 1.008 | +0.003 |
A breakout that continues the overnight gap carried roughly three times the expectancy of one fighting it. Combine that with the long-side result and you get the one cell of classic ORB with a genuine pulse in our data: a gap up, followed by a break of the opening range high. Everything else in the grid is close enough to zero that transaction costs decide it.
Time of first break
On liquid names a five-minute range does not survive long: 95.2% of first triggers occurred before 10:00 ET (135,461 trades, PF 1.032, +0.011R). The 10:00–11:00 window gave PF 1.020, and 11:00–13:00 was slightly negative at PF 0.995. There is a late-afternoon cell showing PF 1.170, and we are telling you not to believe it — it is 358 trades out of 142,348, which is noise wearing a nice hat.
Day of week: a null result worth publishing
Monday +0.015R, Tuesday +0.023R, Wednesday +0.004R, Thursday +0.007R, Friday +0.005R. At this effect size that spread is indistinguishable from randomness. There is no best day of the week to trade ORB in our data, and articles that name one are describing the past, not a mechanism.
Regime beats parameters
By calendar year: 2020 PF 1.049, 2021 PF 1.099, 2022 PF 0.972, 2023 PF 1.001, 2024 PF 1.053, 2025 PF 1.047, and January–August 2026 PF 0.989. The 2022 bear market pushed the strategy negative. The gap between the best year and the worst year is far larger than the gap between any two parameter choices in the configuration table. Arguing about 5 versus 15 minutes is optimising the wrong variable.
Anatomy of 142,348 trades
The outcome distribution explains why the totals net out near zero:
- 44.3% hit both targets, averaging +0.73R.
- 29.8% were straight stop-outs at a full −1.00R.
- 11.9% hit the first target and were then stopped, averaging −0.26R.
- 9.0% hit the first target and carried the rest to the close, averaging +0.32R.
- 5.0% hit no target and were flattened at 15:49, averaging −0.21R.
The winners are capped at +1.0× the range by design; the losers pay the full range. A 54% win rate with that payoff shape is, arithmetically, a near-breakeven system. This is the part of ORB that no amount of parameter tuning fixes — it is baked into taking a fixed target against a full-range stop.
Why ORB failed on SPY and worked on stocks
Of the 95 symbols with at least 500 trades, 65 (68%) were net positive. Dispersion was wide: the best names in the sample cleared PF 1.12–1.68, the worst sat at PF 0.84–0.95. SPY was in the losing group at PF 0.94 and −0.023R per trade.
We are deliberately not publishing a "trade these ten tickers" list. The historical best performer in a 104-name sample is mostly a statement about that sample, and presenting it as a recommendation would be exactly the kind of cherry-picking this study exists to argue against. The structural point is the useful one: an index ETF is a weighted average of hundreds of names whose individual opening momentum bursts cancel each other out. The opening range breakout is a bet on single-name momentum continuation, and the index is the one instrument engineered to dilute that away.
How to use ORB, and what a TradingView ORB indicator can't tell you
If you want to run this honestly on a chart, the mechanics are simple. Any ORB indicator on TradingView will draw the same three things: the opening range high, the opening range low, and usually the 0.5×/1.0× extensions. Set the session to the regular cash open, set the range length to 5, 15 or 30 minutes, and make sure the indicator is anchored to exchange time rather than your local time — a mislabelled session is the most common reason someone's ORB levels don't match anyone else's.
What the indicator cannot do is model your fill. It draws the level; it does not know you were third in the queue. When you backtest visually by scrolling a chart, your eye fills you at the line every single time, which is precisely the bias this study measured at 52% of the apparent edge. If you are going to evaluate ORB yourself, record your entry as the price you actually got, not the level you actually saw.
The practical read of our data, if you insist on trading this: prefer the long side, prefer days where the break continues the overnight gap, accept that 95% of your triggers arrive before 10:00, and understand that at +0.011R per trade the strategy has no room at all for wide spreads, late clicks, or a broker that fills you poorly. One extra tick of slippage per side removes the whole measured expectancy. That is not a reason to dismiss ORB as a structure — opening range levels remain genuinely useful as reference points — but it is a decisive reason to stop treating the naked version as a standalone system.
Why these numbers can be checked
The simulation ran on 1-minute SIP exchange bars for 104 liquid US large-caps and ETFs, 2026 symbols current as of the study date, covering 2026-08-14 back to 2020-01-02 across 144,067 symbol-days. Four things make us willing to publish the result:
- Three independent engines. Our ORB implementation was rebuilt from a written spec by three people working separately and reconciled until all three produced byte-identical output on all 344 fixture trades. All seven initial disagreements traced to a data gap or a stale file on one engine's side, not to ambiguity in the strategy.
- Mechanically audited fills. Every fill in the honest arm passes three scripted checks: the price was knowable before the fill occurred, the fill price lies inside that bar's traded range, and any close-derived signal fills at the close. These are tests, not judgement calls.
- Errors point one way. Same-bar stop/target conflicts resolve stop-first, stops fill at stop-or-worse on gaps, targets are resting limits. Where the model is wrong, it is wrong against the strategy.
- Stated survivorship bias. The universe is today's liquid names, which flatters the early period. That is why every conclusion here is a relative comparison — fill model against fill model, long against short, with-gap against against-gap — which survives universe bias in a way that a headline total return would not.
Costs excluded: commissions (zero on most US retail equity accounts), short borrow, and any slippage beyond the next-bar fill rule. Including realistic versions of the last two would make these results worse, not better.
How our desk actually uses work like this
We did not build this study to launch an ORB room. We built it because "does this popular thing hold up?" is a question worth spending compute on, and because knowing that a strategy is near-breakeven is as valuable as knowing one is not — it stops you burning a year finding out with real money. The output that matters to our traders is not the +0.011R; it is the fill rule, which now applies to every breakout idea we evaluate, and the gap-alignment result, which shows up in how the desk frames the first thirty minutes on gap mornings.
That is roughly how research reaches the floor here: a question, an honest test, and then a small number of durable habits that survive it. If you want to see that process in the room rather than in an article, our open house is the place to watch it happen.