Opening Range Breakout on ES: The Setup

An opening range breakout strategy defines a price range from the first few minutes of the trading session, then enters a trade when price moves beyond that range in either direction. On the ES futures contract, the most common version uses the first 5, 15, or 30 minutes after the 9:30am ET open to set the high and low, then places a buy stop above the high and a sell stop below the low. The strategy sounds simple because it is simple. The part that actually determines whether it makes money is the filter that keeps you out of the breakouts that fail.
What is an opening range breakout strategy?
The idea goes back decades and predates electronic futures entirely. The first stretch of trading after the open tends to establish a range as overnight orders, economic data, and early positioning get absorbed. Once price clears that range in one direction, the theory goes, it often keeps moving that way for a chunk of the session.
On ES, one tick is 0.25 points and worth $12.50 per contract. A 10-point opening range is worth $500 per contract if you're measuring risk in dollar terms, which matters more than the point count once you're sizing a position.
Defining the opening range on ES
The range is just two numbers: the highest high and lowest low printed between the open and some fixed number of minutes later. A 5-minute range on ES captures the 9:30 to 9:35 ET bar. A 30-minute range runs to 10:00 ET.
Shorter windows produce tighter ranges and more breakout signals, including more false ones. Longer windows produce wider ranges that take bigger moves to trigger, which means fewer trades but a different risk profile per trade. Neither length is correct in isolation. It depends on what you're filtering for and how you size the stop.
The long and short trigger
Once the range is set, the mechanics are a pair of stop orders. A buy stop sits a tick or two above the range high. A sell stop sits a tick or two below the range low. Whichever one fills first gives you your position, and the other is cancelled.
That's the entire entry logic. No indicator, no discretion about whether the move looks good. The trigger is the price level itself, which is exactly why the strategy is easy to code and easy to backtest honestly. It's also why it needs a filter layered on top, because a bare stop order has no opinion about whether the breakout is likely to hold.
The entry is just a stop order sitting at a price level. The filter is what decides whether that order deserves to be there.
Why do opening range breakouts fail?
A failed open happens when price pokes through the range, fills your stop, and then reverses straight back through it within a few bars. You're long at the high of a range that turns out to have been the high of the morning. This is the single most common way a raw opening range breakout strategy bleeds money, trade after trade, in small increments that add up.
It tends to happen on two kinds of days. One is a narrow, quiet range that any bit of order flow can punch through without real conviction behind it. The other is a range that forms right before a scheduled data release, where the real move hasn't happened yet and the early breakout is just noise ahead of it.
The filter that avoids the failed-open trap
The fix isn't a different entry signal. It's a condition that decides whether to take the signal at all. The most direct version compares the width of the opening range to a recent average, something like the 10-day average true range on ES. If the opening range is unusually narrow relative to that average, skip the trade: a narrow range breaks easily and often, and most of those breaks don't carry through the day.
A second, complementary filter waits for confirmation instead of a bare touch: require the close of the triggering bar beyond the range, not just a wick through it. That single rule cuts a meaningful share of the one-tick-through-and-back failures, at the cost of entering a little later and a little further from the range edge.
Some versions combine both: skip days where the range is too narrow, and on the days that qualify, require a confirmed close before entering. You give up some trades and some early entry price. What you get back is fewer positions built on a move that was never going anywhere.
Where the stop and target go
The natural stop for a long breakout trade is the opposite side of the range, the low, or sometimes the midpoint if the range is wide enough that the far side represents too much risk per contract. That stop placement is part of why range width matters so much upfront: a 20-point range means a stop that's 20 points away before you even account for the entry buffer.
Targets vary by implementation. Some versions hold to the close, some use a fixed multiple of the range itself, and some trail a stop once the trade is working. None of this works in isolation from the filter. A good entry with no plan for where you're wrong is still a plan to lose money slowly.