← All ideas
#023BreakoutIntraday

15-minute opening range breakout with acceptance by the candle body

The range of the first 15 minutes of the cash session, entry only after a candle closes with its body beyond the boundary. Order-flow scalpers confirm the breakout with large trades in the body; bars leave candle shape and volume.

Chart Fanatics · Andrea Cimbali · Watch video

Markets

Futures, Indices

Timeframe

M1, M5, M15

Data

OHLC, Volume, Session times

Rules

Partly formalised

Difficulty

Medium

Status

Untested

Some rules were added by us and are marked in the text.

TradingView has pitfalls
EasyLanguage has pitfalls
MetaTrader 5 has pitfalls

Idea in brief

Two order-flow scalpers from Chart Fanatics live streams trade the same framework. It takes the range of the first 15 minutes of the US cash session. The trade follows the direction of the breakout, but only if the breakout is "accepted". Andrea Cimbali trades it on ES futures, Fabio Valentini on NQ.

Both read acceptance through large trades inside the candle on a footprint chart. Large buyers in the candle body mean the market agrees to trade above the level. Large buyers on the upper wick mean they have been absorbed, and price will return to the range.

A trader on TradingView, EasyLanguage or MT5 usually has no footprint. The card uses a bar version. The candle must close with its body beyond the range boundary, the body must make up most of the candle, and the candle's volume must be above a threshold. What is lost this way is covered at the end of the "Rules" section.

Why it might work

Andrea explains ORB through large orders. Funds and banks execute big orders in parts throughout the day. If such an order started working at the open, the move often lasts until the evening, and the breakout of the first range shows its side. Andrea sees the main mistake of ORB traders in trusting price alone and entering on false moves out of the range.

Fabio describes the same thing through a "cage". In the first 15-30 minutes, buyers at the upper boundary and sellers at the lower one absorb each other. The side that wins this fight first sets the direction of the day. Fabio calls trading inside the cage suicide for a scalper. Fabio also refers to research on the initial breakout in US stocks: after a breakout of the New York opening high or low, the move often continues. The source of this research is not named.

According to both, the close filter saves small stops on false breakouts. Volume is needed to tell real aggression from a fast move in an empty market where there are simply no market makers.

We have not verified these explanations. Andrea is a co-founder of Deep Charts, the order flow platform used on the stream.

Rules

Opening range (author)

// US cash session, open at 09:30 ET
// Andrea: ES, 5-minute chart, range = the first three 5-minute candles
OR_High = high of the 09:30-09:45 ET candles
OR_Low  = low  of the 09:30-09:45 ET candles

// Andrea: aggressive variant, range of the first 5 minutes
// Fabio: cage of the first 15 or 30 minutes

Entry: body close beyond the boundary (partly author)

// after 09:45 ET, at the close of each 5-minute candle
Body     = |Close - Open|
BarRange = High - Low
FullBody = Body >= 0.7 * BarRange             // Fabio: body above 70%, small wick
                                              // Finetiq: on bars this is a proxy for "large trades in the body"

LongSignal  = Close > OR_High AND Close > Open AND FullBody
ShortSignal = Close < OR_Low  AND Close < Open AND FullBody

// participation filter (Andrea, ES)
Participation = Volume1m >= 4000              // author: do not enter without 4000-5000 contracts per candle
// Finetiq: we apply it to the last closed 1-minute candle.
// Andrea watches volume on both the 5- and 1-minute charts; which candle the threshold refers to is not clear from the talk

IF LongSignal  AND Participation THEN BUY AT NEXT BAR OPEN
IF ShortSignal AND Participation THEN SELL SHORT AT NEXT BAR OPEN
// Finetiq: no more than one trade in each direction per day

Stop and exit (partly author)

Long:  StopLoss = Low of the signal candle - 1 tick    // Andrea: "below this low" or below the candle's POC
Short: StopLoss = High of the signal candle + 1 tick   // Finetiq: the candle POC is not available without footprint, we use the extreme

EXIT at 15:55 ET                                   // Andrea: target "end of session"; Finetiq: time
// Finetiq: no intermediate target. In other trades Andrea takes targets
// at volume profile levels, this is not part of the card

Variant B. Fabio's cage with a failed auction exit

// NQ, levels marked on 5 minutes, execution on 1 minute
// no trading in the first 15 minutes after 09:30 ET, the open has large slippage   (author)
Cage_High = high 09:30-09:45 ET                   // author: cage of 15 or 30 minutes
Cage_Low  = low  09:30-09:45 ET
// no trading inside the cage                                                     (author)

IF 1-minute candle closed above Cage_High AND FullBody     // author: full-bodied candle beyond the level
    BUY AT NEXT BAR OPEN
IF 1-minute candle closed below Cage_Low AND FullBody
    SELL SHORT AT NEXT BAR OPEN
// candle closed inside the cage: no entry                                        (author)

// failed auction: the candle after entry closed against the position
IF MarketPosition = Long AND BarsSinceEntry = 1 AND Close < Open   // author: removes risk manually without waiting for the stop
    EXIT AT NEXT BAR OPEN
// Finetiq: soft version, exit only if the close returned inside the cage

StopLoss = extreme of the breakout candle ∓ 1 tick          // Finetiq: Fabio places the stop beyond a large trade
IF there were 2 breakouts with a return inside the cage today
    no new entries                                 // Finetiq: Fabio calls such days losing days

What is lost without footprint

  • The location of large trades. For Andrea this is the core of the model. A candle can close with its body above the level while the large buyers sit at the very top and are being absorbed. On bars such a candle looks strong, and the bar version will enter where the author would not.
  • Absorption at the boundary before the breakout. Fabio sees in advance that sellers at the upper boundary are being eaten up and prepares for the breakout. The bar version learns about it only from the candle close, that is, at a worse price.
  • A stop beyond the last cluster of large trades. It is usually closer than the candle extreme. So the authors' risk per trade is smaller, and their reward-to-risk ratio is higher than bars will give.
  • Tape speed and delta. Fabio cancels an entry when the tape slows down. Andrea tells a fast move on low volume apart from aggression with large players involved. A volume threshold on a candle conveys this only roughly.
  • Manual context. Andrea says directly that a bit of discretionary context is added to the model and that the model is not traded automatically.

So the bar version is closer to a regular ORB with a close filter than to how the authors trade. Their results do not apply to it.

Parameters

Parameter Value Source
Instrument ES for Andrea, NQ for Fabio author
Range 15 minutes from 09:30 ET author
Aggressive range 5 minutes author (Andrea)
Cage 15 or 30 minutes author (Fabio)
Signal candle 5 minutes for Andrea, 1 minute for Fabio author
Body share of the candle at least 70% author (Fabio), as a bar proxy by Finetiq
Participation threshold 4000-5000 contracts per ES candle author (Andrea)
Candle for the participation threshold 1 minute Finetiq
Stop beyond the signal candle extreme author (Andrea), interpretation by Finetiq
Exit end of session, 15:55 ET author (target), time by Finetiq
Failed auction exit the candle after entry closed against the position author (Fabio)
Trades per day one in each direction, stop after two false breakouts Finetiq

What to test

  1. Touch versus body close. The main question of the card. Compare three entries: a stop order on a touch of the boundary (as in orb-60min), any close beyond the boundary, and a close by a full-bodied candle. The authors say the close filter saves small stops. Check whether it gives back more through a worse entry price and a wider stop.
  2. Body threshold. 50%, 60%, 70% and 80% of the candle range. If the result holds only around 70%, the threshold is overfitted.
  3. Volume. An absolute threshold in contracts does not carry over between years and markets. Compare it with relative volume: candle volume divided by the average candle volume at the same time of day over 20 days. Check whether the filter removes specifically the losing breakouts or just reduces the number of trades.
  4. Range length. 5, 15 and 30 minutes. Andrea calls 5 minutes the more aggressive variant, Fabio uses both 15 and 30.
  5. Early failed auction exit. Compare a plain stop beyond the candle with an exit when the next candle closes against the position, and with the soft version (close inside the cage). An early exit cuts losses but can throw you out of trades that later worked.
  6. Two false breakouts. Separately count days when price left the range twice and returned. If such days really are losing ones, the rule "no trading after the second return" is justified.
  7. Costs. A market entry after a strong candle on ES and NQ comes with slippage. Run 1-2 ticks on the entry and on the stop and compare the average trade.

Platform notes

TradingView (Pine Script)

  • A threshold in contracts makes sense only on the ES and NQ futures themselves, with exchange volume. CFDs and many index symbols have tick volume or no volume at all.
  • Define the range window with the exchange time zone: time(timeframe.period, "0930-0945", "America/New_York"). The CME futures session starts at 18:00 ET, so the symbol's standard session start will give a different "first bar".
  • By default an order fills at the open of the next bar (process_orders_on_close = false). This matches the rule "the candle closed, we enter on the next one".
  • In the 5-minute version, the stop beyond the signal candle and the entry often fall within the same next candle. The tester does not know the order inside a bar: use use_bar_magnifier = true (paid plans) or test on a 1-minute chart. Fabio's variant is easier to test on a 1-minute chart from the start.

MultiCharts and TradeStation (EasyLanguage)

  • Time is the bar's close time. The range candles have Time = 935, 940 and 945. The first candle that can give a signal has Time = 950.
  • Check the volume field. In TradeStation, the full volume of intraday bars has historically been stored in Ticks, while Volume may contain only up volume. In MultiCharts this is set by the symbol's Build Volume On setting. With the wrong field, the 4000-contract threshold becomes a completely different filter.
  • Entry after the close: Buy next bar at market. Stop as a price: Sell next bar at SignalLow - MinMove / PriceScale stop. The order lives for one bar, so send it on every bar.
  • Exit: If Time >= 1555 then Sell next bar at market. SetExitOnClose does not fire in live trading.

MetaTrader 5 (MQL5)

  • CFDs on the S&P 500 and Nasdaq-100 have only tick volume (iTickVolume), and a threshold in contracts does not apply to it. Real volume (iRealVolume) exists only for exchange futures, which few brokers offer. On CFDs, use relative volume or test the version without the filter.
  • Convert 09:30 ET to the broker's server time, accounting for daylight saving time. Bars are labeled with their open time: the range candles are 09:30, 09:35 and 09:40 ET.
  • Evaluate the condition "closed with its body beyond the level" on the closed bar (index 1) and detect the appearance of a new bar. Otherwise the EA will check an unfinished candle and enter on a tick that later reverses.
  • The CFD spread in the first 15 minutes is wider than usual. For a short stop beyond the signal candle, this is a noticeable share of the risk.

Where the idea can break

  • All three sources are streams of discretionary scalpers on a channel that sells education and advertises prop firms and software. Andrea trades on a platform co-founded by Andrea.
  • Andrea's figures (20% in three months, about two stops) refer to a version with order flow and manual context over a short period. They do not apply to the bar version, and the stop statistics were a rough estimate.
  • Andrea called the 4000-5000 contract threshold a rule "for today" after several losing days with low participation. It is not a parameter fitted on history.
  • Large trades in the candle body are not visible on bars. A strong close can hide absorption, and the bar version will walk into traps the authors avoid.
  • The initial breakout research Fabio refers to is not named. It cannot be verified.
  • An entry after a strong candle closes is already far from the range boundary. The stop beyond the candle ends up wide, and a worse price can eat up the gain from the filter.

Sources

Author's claims

These figures and statements are the author's. We have not verified them.

  • According to Andrea, for the last three to four months only this model has been traded (ORB with an order-flow filter and a little manual context), and it made 20% of the account in three months.
  • By Andrea's rough estimate, the model had about two stopped-out trades over the last three months. No exact statistics are given.
  • Andrea claims that ORB has worked for the last 20 years and that Andrea's team has studied the strategy quantitatively for at least a year.

Related ideas

Updated: 2026-09-10