Cashflow Engine – MEIC & METF Strategy Database
Free trial
BlueprintUpdated

Opening Range Breakout

How to enter an Opening Range Breakout (ORB) strategy in OptionsApp: the Max/Min Day Range condition, why it must be a Trigger, the exact parameters, and the mistakes that make it fire at the wrong time or not at all.

DefinitionOpening Range Breakout (ORB)

An entry rule that waits for the first minutes of the session to set a high and a low, then enters only when price breaks out of that range. In OptionsApp it is built with the Max/Min Day Range condition, used as a Trigger.

The range itself does nothing. What matters is the moment the breakout happens, and that is why the condition must be a Trigger, not a Filter.

External feature

OptionsApp is separate software that we do not build or control. This guide is based on its released feature documentation and its Entry & Exit Conditions page, which remain the source of truth for current product behaviour.

Not written by the Engine export

The Engine's OptionsApp export carries EMA and VIX gap conditions for the catalog strategies. It does not write a Day Range condition. If your own backtest uses an ORB entry, you add the condition inside OptionsApp by hand, then verify it on paper first.

What does the condition do?

OptionsApp records the highest and lowest reference price of the underlying over a window you define. The window starts a number of minutes after the 09:30 ET open (Start Delay) and lasts a number of one-minute candles (Duration). The result is a Max Day Range and a Min Day Range value that a condition can compare against the live minute close.

Backtesting platforms usually define ORB narrowly: the range is always the first few minutes after the open. OptionsApp is more general. Its documentation states that any day range can be measured, whether it starts right at the open or later in the session. The classic ORB is just the special case where Start Delay is zero.

DirectionCondition in OptionsAppReference value
Long breakoutSPX Close(Minute) > Max Day RangeHigh
Short breakoutSPX Close(Minute) < Min Day RangeLow
How the Max Day Range trigger fires

Start Delay 0, Duration 30, Reference High, condition SPX Close(Minute) > Max Day Range. Prices are illustrative.

1 — MEASURE THE RANGE, THEN WAIT FOR THE BREAKOUTmeasurement window 09:30–10:00 (Duration 30)trigger window open (Exec. Time → Exec. Timeout)6514MAX DAY RANGE (HIGH OF THE WINDOW)6493MIN DAY RANGE (LOW OF THE WINDOW)10:41 — TRIGGER FIRESfirst minute close above 6514 → entry placed09:3010:0010:50A Filter would only look once, at 10:00, and see no breakout. A Trigger waits and fires at 10:41.

Original Cashflow Engine diagram based on the mechanics in OptionsApp's feature documentation.

Why must it be a Trigger?

A Filter is evaluated once, at the strategy's execution time, and cancels the entry if it is false at that moment. A Trigger watches a time window and fires when the condition changes from false to true. A breakout is an event, not a state, so OptionsApp's own documentation says the Day Range condition is generally only useful as a Trigger.

If you set it as a Filter, the check runs exactly once at the execution time. Unless the market happens to be outside the range at that minute, nothing enters, and the day is over for that strategy. The Filter-vs-Trigger dropdown is on the right of the condition editor. The mechanics are described on the connection page.

How do I set it up?

  1. Step 1

    Build the Trade Template

    Create the trade you want to enter on the breakout: legs, strikes, 0 DTE, premium or delta target, width, and the P&L Actions (stop loss, profit target). The template is independent of the ORB logic. For a put spread, remember the offset is negative.

  2. Step 2

    Create the Strategy

    Create a strategy, link the template, set trading days, quantity and expiry. Set its execution time no earlier than the end of the measurement window, for example 10:00 ET for a 09:30–10:00 range.

  3. Step 3

    Add an Entry Condition of type Trigger

    Open the strategy's Entry Conditions, add a condition and choose Trigger in the type dropdown, not Filter.

  4. Step 4

    Build the condition left to right

    Underlying SPX, left side SPX Close(Minute), operator > for a long breakout or < for a short breakout, right side Max Day Range (long) or Min Day Range (short).

  5. Step 5

    Set the range parameters

    Start Delay = minutes after 09:30 ET before measuring starts (0 for the classic ORB). Duration = length of the measurement window in one-minute candles. Reference = High for a long breakout, Low for a short breakout.

  6. Step 6

    Set the trigger window

    Exec. Time is when the window opens, Exec. Timeout when OptionsApp stops waiting. Set Max Exec. to 1 so a second breakout does not open a second trade.

  7. Step 7

    Tick the entry-state option

    Enable 'Activate if condition is met at entry' if the trade should also enter when price is already outside the range at the moment the window opens. OptionsApp describes this as the way to mirror a backtester's ORB logic.

  8. Step 8

    Run it on paper

    Activate the strategy on an IBKR paper account and watch the dashboard. The scheduled trade should show the Day Range condition it is waiting on, and the fill should land in the minute of the first breakout.

What do the parameters mean?

ParameterWhat it doesClassic ORB (09:30–10:00)OptionsApp's own example (10:30–12:30)
Start DelayMinutes after the 09:30 ET open before measuring starts060
DurationLength of the measurement window, in one-minute candles30120
ReferenceWhich candle value builds the range: Open, Close, High or LowHigh (long) / Low (short)High
Operator> compares against Max Day Range, < against Min Day Range> for long>

The trigger window has its own settings, which come from OptionsApp's general Entry & Exit Conditions page:

SettingWhat it doesNote
Exec. TimeWhen the trigger window opensNot earlier than the end of the measurement window
Exec. TimeoutWhen OptionsApp stops waiting for the breakoutLate enough for the setup, early enough for the trade to have time to work
Max Exec.How many times the trigger may fill if the condition re-triggers1 for a one-shot ORB
Activate if condition is met at entryEnter at once if the condition is already true when the window opensOn, if you want the backtester-style behaviour
Retry after trade canceledRetry the entry if the first order is cancelled while the trigger is still activeOptional
Window opens before the range is complete

OptionsApp's documentation does not spell out what Max Day Range holds while the measurement window is still running. Do not rely on it: keep the execution time at or after Start Delay + Duration, so the range is fully measured before the trigger starts watching.

Long and short: one strategy or two?

Two. A long breakout and a short breakout need different trades, for example a call-side structure on the way up and a put-side structure on the way down. A single condition can only carry one comparison, and one strategy is linked to one template. Build one strategy per direction, each with its own template and its own Day Range trigger.

Both strategies can fire on the same day if price breaks the high first and the low later. If your backtest allowed only one entry per day, that is a difference you have to accept or manage by hand, because Max Exec. counts per strategy, not across strategies.

Mirroring a backtested ORB

If you bring an ORB rule over from a backtest, map it like this:

In the backtestIn OptionsApp
Range = first N minutes after the openStart Delay 0, Duration N
Breakout on close above the range highSPX Close(Minute) > Max Day Range, Reference High, Trigger
Breakout on close below the range lowSPX Close(Minute) < Min Day Range, Reference Low, Trigger
Entry allowed until time TExec. Timeout T
Enter immediately if already broken out at window startActivate if condition is met at entry
One trade per direction per dayMax Exec. 1, one strategy per direction

Then compare the live entry minutes on paper against the backtest's entry minutes for a few days before scaling quantity.

Common mistakes

  • Filter instead of Trigger. The most common one. The entry checks once and never fires.
  • Wrong time zone. The range is measured from the 09:30 ET open. A VPS on Berlin time measures the wrong minutes. See the connection page pre-flight list.
  • Execution time inside the measurement window. The trigger starts watching before the range exists.
  • Max Exec. left above 1. Price can cross the range high several times in a choppy session, and each cross is a new false-to-true transition.
  • Reference Close instead of High/Low. A range built from closes is narrower than one built from highs and lows, and it breaks out earlier.
  • Confusing it with Intraday Movement. That condition measures the distance from the opening price to the current price. It does not track the session's high and low. Related, but not an ORB.

Frequently Asked Questions

Is there a menu item called Opening Range Breakout in OptionsApp?
No. The feature is the entry condition Max/Min Day Range. OptionsApp's documentation names Opening Range Breakout as the special case where Start Delay is zero.
Can I use the Day Range condition as an exit?
Yes. OptionsApp allows it as an exit condition too, for example to close when price breaks the other side of the range. Exit conditions are always Triggers and are executed with market orders.
Which candle does the breakout use?
The one-minute close of the underlying. The condition compares SPX Close(Minute) against the range value, so a wick above the range high without a close above it does not fire.
Does the Engine export write this condition for me?
No. The export carries EMA and VIX gap conditions for the catalog strategies. A Day Range condition is added by hand inside OptionsApp.
Can one strategy trade both the upside and the downside breakout?
No. One strategy holds one template and one comparison. Build one strategy for the long breakout and one for the short breakout.
What if the market is already outside the range when the window opens?
By default a Trigger waits for a false-to-true transition, so it would not fire. Enable 'Activate if condition is met at entry' to enter at once in that case.

Terms & Definitions

Opening Range
The high and low of the underlying over the first minutes of the session, here measured over Duration one-minute candles starting Start Delay minutes after 09:30 ET.
Max Day Range
The highest reference value recorded inside the measurement window; the long breakout level.
Min Day Range
The lowest reference value recorded inside the measurement window; the short breakout level.
Trigger
An OptionsApp condition type that watches a time window and fires when the condition changes from false to true.
Filter
An OptionsApp condition type that is checked once at the execution time and cancels the entry if false.
Exec. Timeout
The end of a Trigger's waiting window; after it, the entry is no longer attempted for that day.
Trading Disclaimer

Mandatory pit stop: Options trading involves significant risks and is not suitable for every investor. Past results are no guarantee of future performance.

Get the weekly 0DTE research email

Research notes and product updates, straight to your inbox. Unsubscribe anytime.

Disclaimer

Cashflow Engine is analytics and educational software — not financial advice, and not an investment adviser, broker, or signal service. It issues no buy or sell recommendations and never holds or manages your money. Trading options carries substantial risk, including the loss of your entire investment. All backtests, simulations, and performance figures are hypothetical, are shown for research purposes, and do not indicate future results. Do your own research, understand the risks, and consult a licensed professional where appropriate. Your account, your decisions, your responsibility.

Cashflow Engine · terminal@cashflowengine.io