Opening Range Breakout vs Session Breakout: Which Works Where?
Opening range breakout and session breakout look alike but measure different things. How each is defined, where each fits, and how to test both.
Opening Range Breakout vs Session Breakout: Which Works Where?
TLDR
An opening range breakout strategy measures the first minutes of the current session and trades the first move outside that short window. A session breakout strategy measures the entire range of a previous, usually quieter, session and trades the break of that range when a busier session opens. Both are breakout methods, but they answer different questions: ORB asks "which way did the open resolve?", session breakout asks "which way will the new session leave the overnight consolidation?". ORB suits markets with a genuine opening event such as index futures; session breakout suits markets that trade continuously such as forex and gold, where the Asian range into London is the classic case. This article defines both precisely, compares them in a table, works one day through both methods, and gives an original Pine Script v6 indicator for the session version.
Two definitions that are often blurred
Search for either term and you will find articles that use them interchangeably. They are not the same, and the difference is the whole point of choosing between them.
Opening range breakout
The range is the high and low of the first N minutes after a defined open, where N is short: 5, 15, 30, occasionally 60. The trade is taken in the same session, shortly after the range completes, and is typically closed the same session. The information being used is how the first wave of orders at the open resolved. Our pillar on the ORB trading strategy covers this in depth, including a full rule set and code.
Session breakout
The range is the high and low of a complete prior session, often several hours long: the Asian session (roughly Tokyo hours) ahead of the London open, the London morning ahead of New York, or the overnight electronic session ahead of a futures cash open. The trade is taken in the following, more active session when price leaves that range. The information being used is that a long, low-participation consolidation has built up resting orders at its edges, and the arrival of a liquid session tends to resolve it in one direction.
The key structural differences: the session range is measured on bars that have already closed before you start trading, so there is no waiting period during the active session; the range is usually several times wider than an opening range; and the first bar of the new session can already be outside the range, which is an immediate signal in one method and an invalid one in the other.
Side-by-side comparison
| Aspect | Opening range breakout | Session breakout |
|---|---|---|
| What is measured | First 5 to 60 minutes of the current session | Full range of a prior session, typically 4 to 9 hours |
| When the range is known | N minutes after the open; you wait | Before the trading session starts; no waiting |
| Typical range width | Narrow, so tight stops and larger positions | Wide, so wider stops and smaller positions for the same risk |
| Natural markets | Index futures, single stocks, anything with a real opening auction | Forex majors, gold, crypto, 24-hour futures where the "open" is a convention |
| Signals per day | At most one or two | At most one or two, but on some days price opens already outside the range |
| Main failure mode | False break in the first hour, then reversal through the range | Breakout at the session open that is the whole move; nothing left after entry |
| Sensitivity to news | High if a release lands inside the range window | High if a release lands at the new session open |
| Hold time | Minutes to a few hours, same session | Hours, often into the next session |
| Filters that matter most | Range width vs normal, time cutoff | Range width vs normal, direction of the higher timeframe, pre-break position inside the range |
Why the market decides, not the trader
The choice follows from whether the instrument has a real opening event.
An index future's cash open is a genuine discontinuity. Overnight news, pre-market earnings and the opening auction all land in a few minutes, and the first 15 minutes reflect a real repricing. Measuring that burst and trading its resolution makes sense. Measuring the overnight electronic session instead gives you a range built on thin volume that is routinely blown through at 09:30 with no follow-through; the session breakout on an index future tends to trigger at the open and leave you chasing.
A forex pair has no such discontinuity. London at 08:00 is a change in participation, not a reopening after a halt. Measuring "the first 15 minutes of London" is legitimate but somewhat arbitrary; the information content is lower than for an equity index open. By contrast the Asian session is a well-defined period of lower activity for European pairs, and the range it leaves behind is a real consolidation that the London participants have to resolve. The session breakout is the more natural fit.
Gold sits between the two. It trades continuously but has a strong New York data reaction at 08:30 and a COMEX pit open at 08:20. Both methods are used; which one survives your backtest depends on the window you choose and on how you handle US data days.
Worked example: one day, both methods
Illustrative figures on EURUSD, quoted to four decimals, with a 10,000 USD account risking 1% (100 USD) per trade. A standard lot is 100,000 units so one pip (0.0001) is worth 10 USD per standard lot and 0.10 USD per micro lot (0.01).
Session breakout version
- Asian session defined as 00:00 to 07:00 London. High 1.0862, low 1.0831. Width 31 pips.
- Normal check: the 20 day average Asian range is 34 pips, so today is normal.
- London opens at 08:00 and the 08:15 bar closes at 1.0866, above the high. Long at 1.0866.
- Stop at the opposite edge, 1.0831. Stop distance 35 pips.
- Size: 100 USD / (35 pips x 0.10 USD per pip per micro lot) = 28.6 micro lots, rounded down to 28 (0.28 lots). Risk at stop 98 USD.
- Target at 1.5R: 1.0866 + 0.0053 = 1.0919 (52.5 pips rounded). Potential gain 52 x 0.10 x 28 = 145.60 USD before costs.
Opening range version on the same day
- London opening range defined as 08:00 to 08:30. High 1.0871, low 1.0858. Width 13 pips.
- Normal check: the 20 day average 30 minute London range is 15 pips. Normal.
- The 08:45 bar closes at 1.0874, above the range high. Long at 1.0874.
- Stop at the opposite edge, 1.0858. Stop distance 16 pips.
- Size: 100 / (16 x 0.10) = 62.5 micro lots, rounded down to 62 (0.62 lots). Risk at stop 99.20 USD.
- Target at 2.0R: 1.0874 + 0.0032 = 1.0906. Potential gain 32 x 0.10 x 62 = 198.40 USD before costs.
Both trades are long, both risk about 100 USD, and both would have been in profit if the day trended. The differences: the session trade entered 30 minutes earlier and 8 pips lower with a position less than half the size; the ORB trade has a tighter stop that a normal pullback to the London open level around 1.0862 would hit, while the session trade's stop at 1.0831 survives that pullback. On a day where London rallies cleanly, the ORB trade makes more. On a day where London fakes up, pulls back to the Asian high and then rallies, the session trade wins and the ORB trade loses. Neither is better in the abstract; your backtest on your pair tells you which pattern dominates.
Spread deserves a line. A 1 pip spread is 6% of the ORB stop distance but under 3% of the session stop distance. On pairs or brokers with wider spreads, the ORB version degrades faster.
Original Pine Script v6: session range breakout levels
The indicator below marks the high and low of a reference session, locks them when the session ends, and signals the first confirmed close through either level during the following hours. It does not fire during the reference session itself. The buffer input lets you require a close some distance beyond the level rather than a bare tick through. For the opening range version, use the indicator in the ORB pillar; the two are deliberately kept separate so you can run both on one chart and compare.
//@version=6
indicator("Session Range Breakout Levels", overlay=true)
sess = input.session("0000-0700", "Reference session")
tz = input.string("Europe/London", "Timezone")
buf = input.float(0.0, "Breakout buffer (price units)", minval=0)
inSess = not na(time(timeframe.period, sess, tz))
var float sHigh = na
var float sLow = na
var float lockHigh = na
var float lockLow = na
if inSess and not inSess[1]
sHigh := high
sLow := low
else if inSess
sHigh := math.max(sHigh, high)
sLow := math.min(sLow, low)
if not inSess and inSess[1]
lockHigh := sHigh + buf
lockLow := sLow - buf
hasRange = not inSess and not na(lockHigh)
upBreak = hasRange and close > lockHigh and close[1] <= lockHigh
dnBreak = hasRange and close < lockLow and close[1] >= lockLow
plot(hasRange ? lockHigh : na, "Session high", color.teal, 2, plot.style_linebr)
plot(hasRange ? lockLow : na, "Session low", color.maroon, 2, plot.style_linebr)
bgcolor(inSess ? color.new(color.gray, 90) : na)
plotshape(upBreak and barstate.isconfirmed, "Up break", shape.triangleup,
location.belowbar, color.teal, size=size.small)
plotshape(dnBreak and barstate.isconfirmed, "Down break", shape.triangledown,
location.abovebar, color.maroon, size=size.small)
alertcondition(upBreak, "Session high break", "Close above reference session high")
alertcondition(dnBreak, "Session low break", "Close below reference session low")
Two implementation details worth knowing. The levels are plotted only after the session ends, so what you see on historical bars is exactly what you would have seen live; nothing is drawn with hindsight. The plotshape calls use barstate.isconfirmed so the triangle appears only once the bar has closed, which is what stops the signal from flickering on and off during a live bar. Alerts fired through alertcondition follow the alert's own trigger setting, so choose "once per bar close" when you create the alert. The non-repainting indicators article explains why this matters.
Filters that change the answer
Range width against normal
Applies to both methods but with opposite danger zones. A very narrow Asian range often precedes a large London move, which is good for the session trade if you are in it and bad if the first London bar gaps through the level and you miss it. A very narrow opening range is usually noise. Define "normal" as a band around the 20 session average and record what happens outside the band before you decide to filter it.
Where price sits inside the range before the break
Session breakout only. If the last Asian hour closed near the high, the up-break at London is a continuation of a drift and tends to have less energy than a break from the middle of the range. Some traders require the break to come from at least the midpoint; test it.
Higher timeframe direction
Both methods. Taking only breaks aligned with the daily trend reduces the number of trades and, in many tests, improves the average outcome per trade. Whether the total result improves depends on how many good counter-trend trades you give up. The confluence trading article shows a scoring approach that lets you weight this rather than switching it on or off.
News
Both methods. For session breakout the risk is a release at or near the new session's open that produces a spike through both levels. For ORB the risk is a release inside the range window or shortly after entry. The practical rule is the same: know the calendar before the session and have a written policy for release days.
Can you run both?
Yes, and on forex many traders do: the Asian session range as the primary structure and a short London opening range as a secondary trigger. One combined rule is to take the session breakout only if the London opening range also resolves in the same direction. That is stricter than either method alone, trades less often, and needs its own backtest because the statistics of the combination are not the average of the two parts. The important discipline is to log the two as separate strategies even if you trade them on the same chart, otherwise you will not know which one is earning the results.
Testing them honestly
Whichever you choose, the test has to include spread and slippage, has to use session definitions in the correct timezone across daylight-saving changes, and has to be run over a sample that includes trending months and ranging months. A session breakout tested only over a trending quarter looks like a money machine; the same rules in a ranging quarter produce a string of breaks that reverse. The backtesting platforms article covers which testers handle session logic and costs well.
Daylight saving is the detail most often missed. A session defined as "00:00 to 07:00 London" shifts by an hour relative to Tokyo twice a year; if your real intent is "Tokyo hours", define the session in Asia/Tokyo and let the platform convert. The indicator above takes the timezone as an input for this reason.
FAQ
Is the London breakout strategy an opening range breakout or a session breakout?
The term is used for both. Most "London breakout" descriptions trade the break of the Asian session range at the London open, which is a session breakout. A smaller number mark the first 15 or 30 minutes of London and trade the break of that, which is an opening range breakout. Check which range is being measured before you compare results.
Which method has the tighter stop?
Opening range breakout, almost always, because a 15 minute range is narrower than a 7 hour range. Tighter stops mean larger positions for the same risk and more frequent stop-outs. Whether that trade-off is favorable depends on the instrument.
Can I use the session breakout on index futures?
You can measure the overnight electronic range and trade its break at the cash open, but the cash open often gaps through the level immediately, which leaves no sensible entry. Many index traders find the opening range version better behaved. Test both on your contract rather than assuming.
Does the session breakout work on crypto?
Crypto has no closed hours, but participation still varies by time of day, and ranges built during the quieter Asian hours are frequently resolved when US desks arrive. The mechanics transfer; the specific session boundaries need to be found by testing rather than copied from forex.
Which one is easier to automate?
Both are straightforward: a session input, a range tracker, a breakout condition and an exit rule. Session breakout is slightly simpler because the range is complete before the trading window starts, so there is no "range still forming" state to handle. Either can be delivered as a Pine strategy with alerts or as an MT5 expert advisor.
Where Viprasol fits
Viprasol builds breakout tooling for both methods: a TradingView indicator that draws opening range and session range levels with width filters, news-day flags and non-repainting alerts, and strategy versions for testing each on your instrument with realistic costs. If your edge turns out to be the Asian range into London, or the 15 minute index open, we can turn the tested rules into an MT5 expert advisor with the risk guards you need. Start with the Pine Script development service, see rates on the pricing page, or describe your market and session through the contact form.
Risk disclaimer: trading forex, futures, CFDs, gold and crypto involves substantial risk of loss. This article is educational and is not investment advice; illustrative figures do not indicate future performance.
External Resources
About the Author
Viprasol Tech Team
Custom Software Development Specialists
The Viprasol Tech team specialises in algorithmic trading software, AI agent systems, and SaaS development. With 1000+ projects delivered across MT4/MT5 EAs, fintech platforms, and production AI systems, the team brings deep technical experience to every engagement.
Ready to Automate Your Trading?
Discuss a custom Expert Advisor with defined strategy rules, risk controls and a testing plan.
Free consultation • No commitment • Response within 24 hours
Need a custom EA or trading bot built?
We build MT4/MT5 Expert Advisors around your strategy, broker and risk requirements. Each project has an agreed scope, testing plan and individual quote.