Opening Range Breakout cBot

Created 02 Apr 2025 · Updated 07 Feb 2026

The Opening Range Breakout is a Premium mechanical strategy (cBot) for the cTrader platform. The strategy can be used to pass trader funding programs.

Prerequisites

To properly use this strategy you should have the following prerequisites available.


  • cTrader trading software, with any cTrader broker.
  • An automated-trading.ch account with an active Premium Subscription

Important Disclaimer

We strongly recommend that you never run your algorithmic trading systems on your hard-earned real money. You should always minimize your risk and run your strategies on trader funding programs, so the maximum amount you risk losing is the monthly subscription fee you pay those programs.

The Opening Range Breakout strategy is based on entering on a signal generated by analyzing market behaviour in regard to a price range formed around the first minutes of the trading session. The strategy provides a very flexible entry setup based on that breakout concept.

The strategy will start by detecting the opening range — an interval that can be parametrized, but in general terms the opening range should be located around the opening market hour of the instrument. The opening range can, for example, be defined between 09:30 EST and 09:45 EST (spanning 15 minutes) or from what is known as the Cash Open, from 08:30 EST to 09:30 EST. You should experiment with different intervals and seek the most adapted interval for each instrument.

The second step of the strategy is to wait for a breakout of the price from the opening range. The strategy will wait for the price to retest the range as the first required condition before deciding to open a trade. After the retest, the strategy will wait for the price action to show a strong breakout in the direction of the initial retest. Precisely, the strategy will look for a Fair Value Gap that will be the trigger to enter a trade, or the strategy can be set to an immediate mode which will enter a trade at the close of a bar without waiting for a Fair Value Gap to occur. The strategy will also look for these entry conditions to occur before a certain time limit for the day — generally speaking, the longer you wait for the price to break out, the further the price can get from the initial price range, so the default time limit is 11:00 EST, meaning no trades will be triggered after that. This is, of course, a parameter you can modify.

Entering a trade is an important part of any strategy, but what is more important is managing the trade. The strategy allows managing the trade with many methods, including the initial setting of the Stop Loss price, a Take Profit price, and a dynamically set quantity to maintain a fixed risk per trade — a crucial part of any strategy's long-run profitability. The Stop Loss price can be set to Fibonacci levels calculated on the retracement of the opening range zone, or to the opposite level of the SuperTrend indicator, provided and used internally by the strategy.

Entry Setup Examples

Example #1: Entry Setup on US500

On this example, run on the US500 index on the 1-minute timeframe, the opening range is set to span from 09:30 to 09:34 EST, and a Fair Value Gap is required before entering a trade after price retraces to the opening range. The stop loss is set to the 61.8% Fibonacci retracement of the range, and the take profit is set to a 3:1 win/loss ratio. Price retraced back into the opening range, then a strong bullish move occurred which made the strategy open a long trade.

Entry setup example on US500
Click to enlarge
Example #2: Failed First Entry, Then a Winning 2nd Entry on US500

Same settings as example #1 (1-minute timeframe, US500). The strategy can open multiple trades as long as the trading window (until 11:00 EST) is still active. The first trade was a loss; the second, opened with a 3:1 win/loss ratio after price broke below the range low, retraced back into the range, and broke below it again with a strong FVG, won.

Failed and winning entry example on US500
Click to enlarge
Example #3: No Trade on Choppy Price Action

This example shows the effect of waiting for a Fair Value Gap before entering a trade: no trades were opened because the choppy price action never produced a valid FVG — a good thing, since a breakout trade here would have been a loss.

No entry on choppy price action example
Click to enlarge

Features

The Opening Range Breakout strategy has a set of unique features:

  • No pending orders are placed — only market orders
  • Full-auto strategy that can be scaled into multiple instances
  • Precise backtesting capabilities based on tick-level data
  • A robust in-house order management library
Dynamic Quantity and Risk Management

As with all our strategies, this strategy implements two methods for setting the quantity of open positions:

  • Fixed Quantity: uses the same quantity for every position. If the stop loss is variable between positions, win/loss amounts will vary too.
  • Dynamic Risk-Adjusted Quantity: calculates each position's quantity from its stop loss, the maximum risk (in $) allowed per position, and the maximum allowed quantity — producing equal win/loss amounts across all positions regardless of stop loss width.
Position Management

As with all our strategies, this strategy implements a stop-trailing method that trails the stop loss based on a trigger and a trailing amount. The strategy also allows setting the stop loss based on multiple strategies and the take profit based on a ratio — see the Parameters section for details.

Account Management

The strategy implements daily stop-trading triggers based on the net winning position count, the net losing position count, or a target realized net profit or net loss.

Parameters

We try to keep the parameters to a minimum — only the most important are exposed.

License
LicenseThe license key you get when you create an account on automated-trading.ch. Set this parameter only once per month — once validated, it's remembered for the rest of the month.
General
Daily TakeProfit TargetThe strategy stops for the day once this daily take-profit amount is reached after a position closes. Ignored when set to 0.
Daily StopLoss LimitThe strategy stops for the day once the daily loss limit is reached after a position closes (positive value — e.g. 300 stops trading once realized PnL ≤ -$300). Ignored when set to 0.
Stop @ Winning CountStops trading for the day once the net winning-trade count reaches this value. Ignored when set to 0.
Stop @ Losing CountStops trading for the day once the net losing-trade count reaches this value. Ignored when set to 0.
Order LabelA label suffixed to every position sent to the broker, useful to differentiate your orders from positions created by other strategies.
Render Opacity (1-100)Opacity used to draw the opening range zone.
Entry Setup
Time Zone The time zone used for the Trade Time parameter below. Futures markets operate on US Eastern time (EST), so this lets you specify the trading interval relative to your own machine's time zone instead.
  • EST, CET, or Local Time
Open Range Time (hh:mm-hh:mm)Sets the opening range interval — e.g. 09:30-09:45. Once the interval ends, the range is drawn on the chart marking its high/low.
Trading Sessions (hh:mm-hh:mm,...)Time interval sequences, outside the opening range time, during which the cBot is allowed to enter trades — e.g. "09:45-11:00,13:00-14:00". Trades that remain open aren't closed outside those windows until the cutoff time below.
Cutoff Time (hh:mm)Closes all open trades before the trading session ends, to avoid swaps from carrying positions into a new session. Defaults to 15:30, adapted to EST.
Trade Previous Day ZoneMakes the cBot consider the previous day's opening range for entries.
Range Offset (Ticks)Adds an offset in ticks to both the high and low of the calculated opening range.
Wait For Range RetraceWaits for: (1) price breaks from the range, (2) price retraces back and touches the range, (3) price breaks from the range a second time — before entering.
Wait For FVGWaits for a valid Fair Value Gap while breaking from the range (which can occur after the breakout). Without this, the strategy only waits for a bar close in the trade direction.
Trade Mode Entry mode after a retest of the opening range zone.
  • On Bar Close: triggers on bar close once all conditions are satisfied
  • On First Tick: triggers on the first price tick once all conditions are satisfied
Min. Distance From Range (Ticks)Minimum required distance from the range to the current price to trigger a trade. 0 means any break from the range can trigger.
Max. Distance From Range (Ticks)Maximum allowed distance from the range to the current price to trigger a trade. 0 means no distance control.
Reset Bias On Each Side Only used when Wait For Range Retrace is enabled.
  • Disabled: the strategy sets its directional bias at the first bar closed outside the range, and doesn't change it afterward regardless of where price goes.
  • Enabled: the strategy changes its bias with price, producing more trades overall.
SuperTrend Entry FilterRestricts long entries to when SuperTrend is bullish and short entries to when it's bearish — fewer trades overall, but filtered by trend.
Quantity & Risk
Quantity Strategy
  • Fixed Quantity: fixed quantity per trade; skipped if the evaluated risk exceeds Target Risk Per Trade ($)
  • Risk Adjusted: dynamic contract size, calculated from the stop loss price and Target Risk Per Trade ($)
Max QuantityMaximum allowed quantity when Risk Adjusted is selected — useful since some prop firms enforce order-quantity limits that can invalidate an account.
Order QtyUsed only when Quantity Strategy is Fixed — the fixed quantity per trade.
Stop Loss Management
StopLoss Strategy
  • Fibo 0% through 100%: Fibonacci retracement of the opening range, from the breakout level (0%) to the opposite range edge (100%)
  • Fixed Currency Value: only Target Risk Per Trade ($) is used
  • Points: a fixed number of points from entry
  • SuperTrend: set according to SuperTrend indicator levels
Stop Loss PointsAvailable when the stop loss strategy is set to Points.
Target Risk Per Trade ($)Maximum risk, in dollars, per position — used before opening a trade to verify the calculated stop loss respects this limit; if not, the trade is skipped.
Max Allowed Risk Per ($)Only used with Risk Adjusted quantity — controls how far the real calculated risk is allowed to deviate from the Target Risk (since an exact match is rarely possible).
Take Profit Management
TakeProfit Strategy
  • Fixed Currency Value, Points
  • Fixed win/loss ratios: 0.5:1 through 6:1
  • Custom Ratio, using the Custom Win/Loss Ratio parameter
Take Profit ValueTake profit amount in dollars (Fixed Currency Value strategy) or in points (Points strategy).
Custom Win/Loss RatioThe custom take-profit ratio value when the take-profit strategy is set to Custom Ratio.
Scale out % Qty at % TargetCloses a percentage of the position's quantity once price hits a percentage of the profit target (rounded down when fractional — e.g. 50% of a 5-lot position closes 2 contracts).
Scale out at % TargetThe percentage of the profit target that triggers the scale-out mechanism.
Scale out % QtyThe percentage of the quantity closed by the scale-out mechanism.
Price Breakeven
Enable Price BreakevenEnables/disables the price-based breakeven mechanism.
Price Breakeven Strategy
  • Points: breakeven triggers based on points
  • Percentage: breakeven triggers based on percentage of take profit reached
Price Breakeven TriggerAvailable if price-based breakeven is enabled — the trigger value (in points, or a percentage from 1-100) needed to move the stop loss to breakeven.
Order Management
Order Management Strategy
  • Trailing Stop: trails the stop loss based on a trigger and a trailing amount (see Trailing Stop Parameters below)
  • SuperTrend: closes trades using the SuperTrend indicator — the stop loss is set one tick above/below the wick of the bar that broke the SuperTrend level
  • None: the stop loss defined by Target Risk Per Trade ($) is used as a cutoff risk for the open position
Trailing Stop Parameters
Trailing Stop Strategy
  • Points: trigger and trailing amount calculated in points from entry
  • Ratio: calculated as a ratio of the stop loss value, mirrored on the winning side
Trailing Stop TriggerThe trigger (in points or ratio) for the Classic Trail Stop method.
Trail AmountThe amount (in points or ratio) trailed once the trigger is hit.
SuperTrend
SuperTrend ModeATR-based, or Adaptive (based on candle close/high/low).
Supertrend Period / Smooth / MultiplierStandard SuperTrend calculation parameters — period, smoothing period, and band multiplier (the bigger this parameter, the wider the SuperTrend bands).

Performance Reports

Past results are not a guarantee of future results. All backtesting results are for indicative purposes only.

  • Commissions are included, for realistic results.

No performance reports have been uploaded for this strategy yet.

Download & Installation Instructions

License Requirements

At automated-trading.ch you can choose to either purchase a monthly subscription to use our premium products, or use our free products without subscribing.

In both cases, you need to create an account so you can get a License you can use for both premium and free products.

To obtain your license, simply sign up and then get your license on the billing page.

Important: This is a Premium product. It can be run in Backtest, Playback, and Optimization modes for free; an active Premium subscription is required to run it live.
Download
Sign in to download this file.
Latest Version v2.2.0.0 · Published 8 months ago
This file was downloaded 144 times.

You can also download this strategy — and every other automated-trading.ch strategy or indicator — anytime from your centralized Downloads page.

Installation Steps
1
This cBot uses two indicators internally — ATCHATR and ATCHSuperTrend. You can install them separately first, or simply skip this step, since installing the cBot file installs them internally too.
2
Double-click the downloaded cBot .algo file and let cTrader install it — your installed cTrader instance will start and prompt a dialog box asking you to approve installation. Click Yes.
3
The cBot requires Full Access access rights, to perform license checking on the network and persist data on your disk.
4
Open a new chart window in cTrader's Trade section and add the ATCHOpeningRangeBreakout cBot to the chart from the cBot menu.
5
In the cBot's settings, enter your automated-trading.ch license, found on the billing page — you can also load a parameter template from the settings panel. Then click Start to verify the license.
6
If your license isn't recognized, an error message appears on the chart. Otherwise, the cBot is added successfully — click the Play button on the chart to start the strategy.

Frequently Asked Questions

General

Using a VPS is good but not imperative — a low-cost Windows VPS instance is sufficient for most users.

Yes, as long as each instance runs on a unique instrument — NinjaTrader aggregates orders into one position per instrument per account, so running two instances on the same instrument won't work.

It's designed to be fully automatic, but its command buttons also let you manage trades manually if you'd rather run it semi-auto.

Automated strategies trade around the clock, execute faster and more precisely, remove psychology and sentiment from the equation, and can scale to dozens or hundreds of instances — producing genuinely passive income rather than another stressful manual job.

Yes — if you have an idea that could improve the strategy, use the contact page to get in touch.

No, the source code is protected for copyright reasons.
Billing

Yes, you can cancel your subscription from the account page at any time to prevent future payments. We can't refund the unused portion of your subscription, but you'll be able to use it for the remainder of the billing cycle.

No, we don't offer a trial subscription plan, but you can download and test the product in backtest and playback modes before subscribing.

We do not offer full or partial refunds, but you may cancel your subscription at any time to stop future payments.
Skeptics

I've been a professional software developer since 2010 and have developed automated trading strategies since 2012, both for myself and for clients worldwide — I've also worked in finance and investment banking. I'm not a marketer, and I don't outsource strategy development.

I'm not selling it — I'm renting it, as an additional income source alongside diversifying my own trading. The strategy is purely mechanical, with no hidden quantitative edge that erodes as more people use it.

Pending (limit) orders offer better price execution and some protection against connectivity issues, but they can be rejected under high volatility, need active management, and are visible to the broker. Market orders guarantee execution regardless of volatility, are invisible to the broker before submission, and execute faster — the only real drawback is that a lost connection prevents sending them at all. NinjaTrader's MIT (market-if-touched) orders are a solid alternative if you specifically want pending-order behavior.

Release Notes

  • Updated max/min distance from range from Points to Ticks; Added new take profit method: Custom win/loss ratio; Added new parameter to enable trading previous day ORB; Shows historical zones on start

  • Fix bug with licensing

  • Draw supertrend indicator on the chart from the cBot; Updated trade time logic with new parameter Trading Sessions that can handle many time intervals; Added showing opening range drawing on historical data on the chart; Added ability to run on previous day Range

  • Added SuperTrend as stoploss, order managenement and entry filter

  • First Release of the strategy
discord
Join our Discord community
Questions, feedback, or just want to chat with other traders? Come say hi.
Join Discord
Quick Facts
Platform cTrader
Category Strategy
Plan Required Premium
Latest Version v2.2.0.0
Last Updated 8 months ago
Downloads 144