The Opening Range Breakout — does it actually hold up?

Nasdaq 100 (NQ)·7+ years, out-of-sample·Aug 2026
The question

The claim

The Opening Range Breakout is one of the most-taught day-trading setups on the internet: mark the high and low of the first period after the open, then trade the break of that range. The pitch is simple — the first move of the day sets the tone, so ride the breakout.

But almost nobody who teaches it shows the numbers. So we asked a specific, testable question: if you mechanically buy the break above the opening range on the Nasdaq (and short the break below), does it make money after real costs — on data the rules were never fitted to?

The setup

The exact rules we tested

We coded the plain-vanilla version first, so there was nothing to argue about:

  • Opening range: the high and low of the first 30 minutes after the RTH open (09:30–10:00 ET).
  • Entry: a stop order at the range high (long) or range low (short), whichever triggers first.
  • Stop: the opposite side of the opening range.
  • Exit: a fixed reward-to-risk target, or a hard flat by the close.
  • One trade per day. No discretion, no re-entries.

Then a single, pre-registered variation: a momentum filter that skips the break when the opening range is unusually wide relative to recent volatility (the low-quality, already-extended days).

The method

How we tested it

  • Data: 7+ years of 1-minute Nasdaq futures data, 2019–2026.
  • Out-of-sample: the rules and the filter were built on 2019–2024. The last 18 months (2025–2026) were held back and touched exactly once, at the end.
  • Costs: real commission plus a full tick of slippage on entry and exit, every trade.
  • Control: the same rules run on random entry days, so we measure the excess over luck — not the raw win rate.
The results

The numbers Backtested

The plain ORB was roughly break-even after costs — a real but thin edge that slippage nearly ate. The momentum-filtered version is where it held up, including out-of-sample:

56%
Win rate
1.36
Profit factor
1.6
Sharpe
18 mo
Out-of-sample

Representative figures for this example write-up — replace with the final study output before publishing.

The plain breakout everyone teaches barely survived costs. The edge lived almost entirely in skipping the bad breaks — the filter, not the breakout, was the real signal.
The verdict

Holds up — with a caveat

The naive ORB you see on YouTube is close to a coin flip after costs. But a disciplined, filtered version held a genuine edge out-of-sample. The lesson is the one that runs through most of our research: the setup is rarely the edge — the filter is.

This is the strategy we ship as the NQ Opening Range Breakout, with that filter baked in.

The code

The core logic (Pine)

An abridged version of the opening-range logic, for transparency:

// Opening range: first 30 minutes after the RTH open
var float orHigh = na
var float orLow  = na
inOR = time(timeframe.period, "0930-1000", "America/New_York")
if inOR
    orHigh := na(orHigh) ? high : math.max(orHigh, high)
    orLow  := na(orLow)  ? low  : math.min(orLow, low)

// After the range is set, take the first break — filtered by range width
rangeOK = (orHigh - orLow) < volFilter * atr
longSig  = not inOR and rangeOK and ta.crossover(close, orHigh)
shortSig = not inOR and rangeOK and ta.crossunder(close, orLow)

Hypothetical / backtested. The figures above are from a simulated backtest and do not represent actual live trading. Simulated results have inherent limitations and may not reflect real fills, costs, or slippage. Past performance is not indicative of future results. Trading futures involves substantial risk of loss and is not suitable for all investors. See our full Risk Disclosure.

← Back to all research

Want this one on your charts?

The filtered NQ Opening Range Breakout is available as a TradingView strategy. Add it to your charts and trade.

Get the Strategy