Skip to main content

using the ORB algo

how the ORB (opening range breakout) algo works in edgeful — setup, algo templates for MES and MNQ, stop-loss and max-loss settings, chart compatibility, contract symbols, troubleshooting, ORB breakeven, and 2TP configuration.

Written by Brad
Updated this week

summary: the ORB algo trades the first breakout outside the opening range. edgeful offers 3 ORB variants — standard, 2TP (two take-profit), and breakeven stop. TradingView fires alerts based on ORB conditions, edgeful routes trades to your broker, and you can also trade it manually if you prefer. here's what you need to know about setup, execution, troubleshooting, configuring variants, understanding reports, and keeping things running smoothly.

want a no-prep starting point? grab the free ORB algo playbook (ES) — a 5-min ORB playbook on ES, no account required.

quick answers to common ORB algo settings questions

what max-loss should I use for MES 5M, MES 15M, or MNQ templates?

edgeful keeps the current max-loss value for each ORB template on the algo settings page — edgeful.com/algos-automation/algo-settings. start with the template value, run TradingView's strategy tester on your contract and timeframe, then adjust from there based on your own backtest.

what's the difference between stop-loss and max-loss on the ORB algo?

stop-loss caps the loss on a single ORB trade — it's the exit price if that trade goes against you. max-loss is a cumulative session limit — if your total losses for the day hit the max-loss value, the algo closes positions and stops trading for the session. stop-loss protects each individual trade; max-loss protects the session.

why are max-loss values different across MES 5M, MES 15M, and MNQ templates?

three reasons. contract size: MES is $5 per point, MNQ is $2 per point — the same point move produces different dollar risk. volatility: NQ typically moves more points per session than ES, so MNQ max-loss lands at a different dollar level than MES. timeframe: a 15-minute opening range is wider than a 5-minute opening range, so the per-trade stop-loss and cumulative max-loss scale with the range.

how do the template settings align with edgeful's trading rules?

each template is calibrated against the historical data in the ORB reports — the by-levels and by-size subreports show how often each extension gets reached, which defines the take-profit and stop-loss baselines. max-loss is then set so a full losing session doesn't blow through the expected per-trade drawdown. for the end-to-end framework, see from stats to trading rules.

can I change the max-loss or other template settings?

yes — templates are starting points, not locks. once you pick a template, run it in TradingView's strategy tester on your contract and timeframe, review the drawdown and win rate, and adjust max-loss, stop-loss multiplier, and take-profit levels to match your risk tolerance. always validate in a demo account before going live.

do the MES 5M and MES 15M templates use the same max-loss?

no. the 5-minute opening range is tighter than the 15-minute range, so per-trade loss — and therefore cumulative max-loss — is calibrated differently for each template. check the current values on the algo settings page.

how it works

TradingView fires alerts based on ORB conditions. edgeful picks up those alerts and routes the trade to your broker. you can also just use the indicator visually and manage entries yourself — automation isn't required.

ORB executes only 1 trade per day per ticker — it acts on the first breakout and close outside the opening range.

ORB algo variants

edgeful offers 3 ORB algo indicators in TradingView:

ORB (standard) — the core opening range breakout strategy. enters on the first breakout outside the opening range with a single take-profit target. this is the version to start with.

ORB — 2 TP — scales out of trades at two profit levels. you lock in early gains at TP1 (exiting half your position), then let the remaining half run to TP2 for additional upside. the risk on the second half is funded by the TP1 win.

ORB — breakeven stop — after hitting your first profit target, the algo moves your stop-loss to your entry price (break-even). this protects your gains while the trade continues running. if price reverses, you exit at break-even — zero loss.

choosing between them

start with the standard ORB. once you're comfortable with ORB entry logic and have a working backtest, run the 2TP and breakeven stop variants on the same instrument and compare profit factor, win rate, and max drawdown in the strategy tester. the version with better risk-adjusted returns on your instrument becomes your production setup.

don't run multiple ORB variants on the same chart — alerts will overlap and create conflicts. pick one per chart/ticker. you can run different variants on different assets (e.g., ORB 2TP on ES, standard ORB on NQ).

running ORB on multiple sessions

ORB can run on NY, London, and Asian sessions. if you want to run it across more than one session on the same ticker, the rule is one session per chart tab — not stacked on a single chart. filters also need to be re-tuned per session because the size distributions are different.

ORB settings

the key settings to dial in are the timeframe, session, stop loss multiplier, take profit configuration, and entry cutoff time.

  • timeframe — the candle size used to define the opening range. the most common are 5-minute and 15-minute ORB. a 5m ORB is tighter and more active; a 15m ORB gives the setup more room to develop.

  • session — which market open to anchor the range to. for futures, this is typically the NY session open (9:30 AM ET).

  • stop loss multiplier — expressed as a multiple of the opening range size. a 0.3x stop means the algo will exit at a loss equal to 30% of the range width. tighter = more risk of getting stopped early; wider = larger potential loss per trade.

  • take profit (TP) — where the algo closes the trade in profit. you can use a single TP or a split TP (partial close at the first target, remainder runs to the second).

  • entry cutoff time — a toggle-and-dropdown setting that caps how late in the session the algo will enter a trade. if no valid ORB setup has triggered by the cutoff time, the algo stops looking for an entry for the rest of the session. use this to avoid late-session entries where there isn't enough time left for the trade to develop.

scalper ORB (5-minute)

a scalper ORB is a tighter version of the standard ORB setup — it uses a shorter timeframe and closer targets. it's designed for more frequent, smaller trades rather than larger range-extension moves.

it works best in instruments with consistent opening range behavior — ES and NQ are the most common use cases.

algo templates

a great starting point is to use one of the edgeful algo templates — once you select a template, we recommend continuing to optimize from there.

max-loss across MES and MNQ templates

max-loss is a cumulative loss limit. if total loss for the session reaches the max-loss value, the algo closes positions and stops trading for the day. it's separate from your stop-loss, which caps loss on a single trade.

each edgeful ORB template ships with a max-loss value tuned for that contract and timeframe. the values are different across MES 5M, MES 15M, and MNQ because:

  • contract size varies. MES (micro E-mini S&P 500) is $5 per point. MNQ (micro E-mini Nasdaq 100) is $2 per point. the same point range produces different dollar risk.

  • volatility varies. NQ typically moves more points per session than ES, so the template max-loss on an MNQ setup lands at a different dollar level than on an MES setup.

  • timeframe affects setup size. a 5-minute opening range is tighter than a 15-minute opening range, so stop-loss and max-loss scale with the range — and the template max-loss is calibrated accordingly.

canonical max-loss values live on the templates page. the current MES 5M, MES 15M, and MNQ template values are maintained at edgeful.com/algos-automation/algo-settings — use those as your starting point, then optimize from there based on your own backtest.

for the mechanics of how max-loss and stop-loss interact during a live session, see customizable algo parameters and risk controls.

using the ORB reports to validate your settings

before locking in any settings, check them against the data.

the ORB by levels report shows you historically how often each extension level has been reached for your instrument and session. if your TP is set to 2x but the 2x level has only been hit 30% of the time, that's worth knowing before you run the algo live.

pull up the report for your instrument, set the session to NY, and use a 6-month lookback as your baseline. then adjust your algo TP to a level that shows consistent fill rates over that window.

ORB timeframes and chart compatibility

your ORB timeframe doesn't need to match your chart timeframe. you can run a 15-minute ORB on a 1-minute chart without any issues.

a few things to keep in mind:

  • algo entries are based on the chart timeframe

  • choose your ORB timeframe based on your strategy, not your chart interval

  • avoid sub-1-minute candles for execution — they're too noisy

  • test everything in a demo account before going live

configuring contract symbols

for live trading: use the current front-month contract symbol. that's what your broker executes on, and it keeps your alerts in sync with what's actually tradable.

for backtesting and optimization: use continuous contract symbols (e.g. ES1!, NQ1!). they give you uninterrupted historical data — which is what you need for accurate testing.

when you switch contracts, you'll need to reapply the ORB algo and update your TradingView alerts to match.

important: contract mismatch is the #1 reason ORB trades fail to trigger. if you alert on ESZ25 in TradingView but your broker has ES1! (continuous contract) set up, trades won't execute (the exception will be for ProjectX). always use the current front-month contract with the highest volume — check both TradingView and your broker to confirm they match exactly.

understanding alert delays

edgeful can only process alerts once they appear in TradingView's alert log. if an alert enters the log at 9:50 AM, that's when edgeful starts processing — any earlier delay is on TradingView's side, not edgeful's.

if false alerts are firing, double-check your setup. after any contract change, verify your TradingView alert settings match the new contract and recreate the alert.

troubleshooting

no trade trigger? walk through these in order:

  1. verify visualization: can you see the entry, TP, and SL on your chart? if not, the algo didn't detect a valid setup.

  2. check input settings: max ORB size filters trades. if you set it to 0.50 but the actual range is 0.64, no alert fires. adjust the setting to match typical market conditions. if the ORB is exactly at the edge of your range, read filter thresholds — how min and max work below — the max is exclusive, not inclusive.

  3. review all conditions: even with a clear breakout, trades won't trigger if other configured conditions aren't met. verify your min/max size and other filters align with what you're looking for. min is inclusive, max is exclusive — see filter thresholds — how min and max work below.

  4. check the entry cutoff time: if the entry cutoff toggle is enabled and the session has moved past that time with no valid setup, the algo stops looking for entries. either disable the cutoff or push the time later.

  5. validate alerts: confirm the alert is actually configured to trigger automation — not just a notification.

  6. measure the opening range: use TradingView's Measure Tool to verify your ORB range matches what's actually on the chart. compare the high and low of the first 15 minutes to your configured settings.

always test changes in simulation first before pushing them to live.

if you're getting multiple confusing alerts for one ticker, delete all of them and set up fresh. that usually clears it up.

filter thresholds — how min and max work

this one trips people up — and it's the kind of thing you can stare at for an hour before you spot it. so here's the rule, clearly:

  • min ORB size is inclusive — an ORB equal to your min value WILL trigger.

  • max ORB size is exclusive — an ORB equal to your max value will NOT trigger.

in math terms: min ≤ ORB size < max.

a concrete example. say you set min ORB size = 0.30 and max ORB size = 0.60. here's what triggers and what doesn't:

ORB size

triggers?

why

0.29

no

below min

0.30

yes

min is inclusive

0.45

yes

inside the range

0.59

yes

inside the range

0.60

no

max is exclusive

0.61

no

above max

why it works this way. if you stack filters — say, one algo for 0.30–0.60 ORBs and another for 0.60–1.00 ORBs — an exclusive max prevents the same day from triggering both. no double-counting. clean buckets.

the fix if it's costing you trades. if the ORB you want to catch is sitting right at your max value, bump the max up slightly. a max of 0.61 will catch a 0.60 ORB. a max of 0.60 will not.

this same rule applies across all edgeful algos with min/max filters — gap fill, engulfing candle, ORB, and IB. min inclusive, max exclusive, every time.

regaining algo access

if you've lost access to ORB in TradingView, here's how to restore it:

  1. go to the algos section in edgeful

  2. click the TradingView logo or "algo access" button

  3. close TradingView completely before submitting

  4. reopen TradingView — ORB should be visible and accessible

how ORB breakout and breakdown levels are measured

in the ORB strategy, breakout and breakdown levels are measured as percentages of the opening range size — not points.

so when you see extensions like 0.5x, 1x, or 1.5x — those represent how far price moved as a percentage of the ORB. a 1x extension means price moved 100% of the opening range beyond the breakout level.

why percentages instead of points? because it keeps things comparable across different days. a 10-point ORB on a low-volatility day and a 40-point ORB on a high-volatility day will both show the same extension percentages — so you can actually compare the data.

the "ORB by size" report breaks down the data by the percentage size of the opening range — so you can see how different-sized ORBs tend to play out. do smaller ORBs lead to bigger extensions? do larger ORBs tend to fail more often? the by-size report answers those questions with actual data.

understanding run-up percent

run-up % shows the maximum unrealized profit you had while a trade was open — your peak gain before exit.

example: enter long at 100, price peaks at 110 (10% gain) while open, exit at 105 (5% realized gain). run-up % = 10% (peak unrealized gain). net profit = 5% (actual result).

calculation: run-up % = (price peak - entry price) / entry price × 100%. it's based on the instrument's price movement from entry — not on the ORB size or any other strategy parameter.

key clarification: run-up % is NOT a percentage of the ORB size. it's purely the instrument's price increase from your entry level. it shows unrealized gains — not your final returns.

configuring ORB breakeven stop

the ORB breakeven stop variant moves your stop-loss to break-even after hitting your first profit target — protecting wins while letting additional upside run.

how ORB breakeven stop works

entry: price breaks above/below the 15-minute opening range.

TP1: you hit your first profit target (e.g., 25 pips above entry). at this point, the algo moves your stop-loss to break-even (your entry price).

TP2/exit: you let the remaining position run. if price continues, you profit more. if it reverses, you exit at break-even — zero loss.

configuration checklist

opening range size: verify your ORB range matches what's actually on the chart. use TradingView's Measure Tool to double-check the high and low of the first 15 minutes.

TP1 level: set to a realistic profit (usually 25–50% of the ORB range).

TP2 level: set further out (100–200% of ORB range) or leave open to let momentum run.

maximum ORB size: ensure your configured max ORB threshold accommodates the actual opening range size. if the real ORB is larger than your max threshold, the trade won't trigger.

why trades don't trigger — invalid ORB size

if the opening range for the day exceeds your configured maximum ORB threshold, the trade rejects automatically. this is a filter — it prevents trading extremely volatile opens.

example: you set max ORB at 0.55. on a volatile day, the actual ORB is 0.75. trade won't execute.

fix: measure the actual ORB for that day. if it's consistently above your threshold, increase the max setting. note: higher thresholds = more trades, but also more false breakouts.

verifying everything works

step 1: confirm contract symbol in TradingView matches your broker (use the front-month, highest volume contract).

step 2: measure the opening range manually. is it within your configured max ORB size?

step 3: check your TP1 and stop-loss levels are reasonable relative to the opening range.

step 4: run a backtest in Strategy Tester. are trades triggering consistently?

if all checks pass, your ORB breakeven stop should execute smoothly.

configuring ORB 2TP (two take-profit strategy)

the ORB 2TP variant scales out of ORB trades at two profit levels, letting you lock in early wins while keeping risk small and riding additional upside.

TP split explained

the TP split lets you take partial profits at a closer target while letting the rest of the position run.

for example: a 50/50 split at TP1 = 1x range and TP2 = 2x range means the algo closes half the position at 1x the range size, and holds the other half until price hits 2x — or the stop is hit.

this reduces total profit potential on strong moves, but it locks in some gain on trades that don't fully extend.

setting up ORB 2TP

step 1: define your opening range. use the first 15 minutes of the session (standard ORB timeframe). measure the high and low of this range.

step 2: set TP1 (first target). this is often 50–100% of the opening range size above the breakout entry. example: ORB range is 50 pips, entry at ORB high, TP1 = 25–50 pips above entry. exit half your position here.

step 3: set TP2 (second target). place this further out — often 150–200% of the ORB range size. exit the remaining half at TP2 for additional profit if momentum continues.

step 4: set your stop-loss. place it below the ORB low or at a fixed dollar amount (e.g., 100% of ORB range size). this caps your loss on failed breakouts.

why scale out

scaling protects profit — you lock in gains at TP1 so you never lose on that portion. the TP2 portion risks only your winnings from TP1, not new capital. this reduces stress and improves risk/reward over time.

common 2TP settings

conservative: TP1 at 25% of ORB range, TP2 at 100% of ORB range.

balanced: TP1 at 50% of ORB range, TP2 at 150% of ORB range.

aggressive: TP1 at 75% of ORB range, TP2 at 200% of ORB range.

backtesting 2TP

test your 2TP configuration in TradingView's Strategy Tester over 12+ months. compare win rate, profit factor, and average trade value vs. standard ORB and ORB breakeven stop. the version that wins more often and profits more on your instrument becomes your production setup.

understanding ORB report variants

the ORB report has 8 variants — standard, by close, by levels, by performance, by retracement, by size, by time, and by weekday. each one slices the data by a different dimension to answer different trading questions.

for a full breakdown of every variant — what it measures, when to use it, how to read it, and how to combine them — see the dedicated guide:

for common ORB issues and debugging steps beyond what's covered in the troubleshooting section above, see:

related articles

Did this answer your question?