summary: the ORB algo trades the first breakout outside the opening range — one trade per day per ticker. this article walks through how it works, choosing your symbol for live trading vs backtesting, picking a variant, dialing in settings, running on multiple sessions, and troubleshooting when trades don't fire.
want a no-prep starting point? grab the free ORB algo playbook (ES) — a 5-min ORB playbook on ES, no account required.
how the ORB algo works
the ORB (opening range breakout) algo trades the first candle that closes outside the opening range — long if it breaks the high, short if it breaks the low.
TradingView fires the alert based on the ORB conditions. edgeful picks up the alert and routes the trade to your broker. you can also trade it manually using the indicator if you don't want to automate.
one trade per day — and how double breaks work
the ORB executes only 1 trade per day per ticker. once the first breakout or breakdown fires, the algo is done for the session on that ticker.
that means double breaks — when price breaks one side, reverses, and then breaks the other side — are not a second trade. the algo commits to the first valid close outside the range and ignores the second break entirely.
if you're trading manually, hold yourself to the same rule. the data behind the ORB strategy is built on 1-trade-per-day execution. taking the second break breaks the discipline that makes the edge work.
choosing your symbol — front-month vs continuous
contract mismatch is the #1 reason ORB trades fail to trigger. spend 30 seconds here and you'll save yourself an hour of debugging later.
for live trading: use the front-month contract. that's the contract with the highest volume and what your broker will execute on. examples: ESZ25 for E-mini S&P, NQZ25 for E-mini Nasdaq.
for backtesting and optimization: use the continuous contract symbol — ES1!, NQ1!, etc. continuous symbols give you uninterrupted historical data that rolls between expirations automatically. that's what you need for accurate testing across months or years.
when contracts roll, you'll need to:
update your TradingView chart to the new front-month symbol
reapply the ORB algo to the new chart
recreate your TradingView alerts on the new symbol
confirm your broker is set to the same front-month
if you alert on ESZ25 in TradingView but your broker is set to ES1!, trades won't execute (the exception is ProjectX). always verify both ends match exactly before going live.
ORB algo variants
edgeful offers 3 ORB algo indicators in TradingView:
ORB (standard) — the core opening range breakout strategy. enters on the first close outside the range with a single take-profit target. start here.
ORB — 2 TP — scales out at two profit levels. exit half at TP1, let the rest run to TP2. the second half's risk is funded by the first half's win.
ORB — breakeven stop — after hitting TP1, the algo moves your stop to your entry price. if the rest of the trade reverses, you exit at break-even — zero loss on that portion.
choosing between them
start with the standard ORB. once you're comfortable with the entry logic and have a working backtest, run 2TP and breakeven on the same instrument and compare profit factor, win rate, and max drawdown in TradingView's strategy report. 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. one variant per chart/ticker. you can run different variants on different assets — for example, ORB 2TP on ES and standard ORB on NQ.
scalper ORB (5-minute)
a scalper ORB is a tighter version of the standard ORB setup — shorter timeframe, closer targets. 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.
running ORB on multiple sessions — NY, London, Asian
the ORB can run on the NY, London, or Asian session. the rule for running it across more than one session on the same ticker is one session per chart tab — not stacked on a single chart.
filters also need to be re-tuned per session. the size distributions are different — what counts as a "normal" ORB on the NY open is not the same as what counts as a normal ORB on the London or Asian open. running one set of filters across all 3 sessions will under-trade some and over-trade others.
if you're not sure which session matches your trading hours — especially if you trade outside Eastern time — start with choosing a session for your trading hours. full setup walkthrough for running across all 3: running ORB on 3 sessions — NY, London, and Asian walkthrough.
ORB settings
the key settings to dial in are timeframe, session, stop-loss multiplier, take profit, and entry cutoff time.
timeframe — the candle size that defines the opening range. fully customizable — 1m, 3m, 5m, 15m, or any other interval. 5-minute and 15-minute are the most common starting points. a 5m ORB is tighter and more active; a 15m ORB gives the setup more room to develop.
session — which market open anchors the range. for futures on the NY session, that's 9:30 AM ET.
stop-loss multiplier — expressed as a multiple of the ORB size. a 0.3x stop exits at 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 in profit. you can use a single TP or a split TP (partial close at TP1, remainder runs to TP2).
entry cutoff time — caps how late in the session the algo will enter a trade. no entries after this time, even if a breakout occurs. see section below.
after you tune these settings — or run them through the algo optimizer — there's a specific handoff to get the new values live: recreating your TradingView alert, SIM-testing the webhook, and scaling up to live size carefully. full walkthrough: applying algo settings changes — what to do after you optimize and make algo setting changes.
entry cutoff time
no entries after this time — even if a breakout occurs, no trade will fire. filled positions will keep running if they were filled before the cutoff time; the cutoff only blocks new entries, it doesn't force-exit open trades.
the cutoff uses the timezone selected in the session section of the algo settings.
end of day close out
at the end of the session defined in your algo settings, the algo automatically closes any open trade. if TP or SL levels are not hit and time hits the session end, the automation closes the position at market.
this enforces the day-trading structure of the ORB algo — no positions held past session close, regardless of where price is.
algo templates
the easiest way to start is with one of the edgeful algo templates. once you pick a template, optimize from there.
current template values live at edgeful.com/algos-automation/algo-settings.
algo analyzer
the algo analyzer breaks down your algo's historical performance — trade-by-trade results, drawdown, and win/loss patterns — so you can see exactly what's working before going live.
algo optimizer
the algo optimizer tests thousands — or millions — of setting combinations against historical data and surfaces the best-performing version, then validates the winners on unseen data before you go live.
max-loss across MES and MNQ templates
max-loss is a cumulative session 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 template ships with a max-loss value tuned for that contract and timeframe. values differ across MES 5M, MES 15M, and MNQ because:
contract size varies. MES is $5 per point. MNQ 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 MNQ max-loss lands at a different dollar level than MES.
timeframe affects setup size. a 5-minute opening range is tighter than a 15-minute range, so stop-loss and max-loss scale with the range.
canonical values live on the algo settings page — start there, then optimize from 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 ORB reports to validate your settings
before locking in any settings, check them against the data.
the ORB by levels report shows 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 go 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 with consistent fill rates over that window.
ORB timeframes and chart compatibility
both the ORB timeframe and the chart timeframe are fully customizable — 1m, 3m, 5m, 15m, or any other interval. you're not locked to presets.
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
troubleshooting
no trade trigger? walk through these in order:
verify visualization. can you see the entry, TP, and SL on your chart? if not, the algo didn't detect a valid setup.
check input settings. max ORB size filters trades. if max is set to 0.50 but the actual range is 0.64, no alert fires. if the ORB is exactly at the edge of your range, read filter thresholds below — max is exclusive, not inclusive.
review all conditions. even with a clear breakout, trades won't trigger if other conditions aren't met. verify your min/max size and other filters. min is inclusive, max is exclusive.
check the entry cutoff time. if the cutoff is enabled and the session has moved past that time with no valid setup, the algo stops looking. either disable the cutoff or push the time later.
validate alerts. confirm the alert is configured to trigger automation — not just a notification.
measure the opening range. use TradingView's Measure Tool to verify your ORB range matches what's actually on the chart.
did you recently change any settings? the TradingView alert is locked to the indicator settings at creation time. tweaks to ORB size, session, TPs, SLs, or anything else don't carry over to the existing alert. delete and recreate — full handoff: applying algo settings changes — what to do after you optimize and make algo setting changes.
if you're getting multiple confusing alerts for one ticker, delete all of them and set up fresh. that usually clears it up.
always test changes in simulation first before pushing them live.
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:
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:
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 — 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.
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.
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.
regaining algo access
if you've lost access to ORB in TradingView:
go to the algos section in edgeful
click the TradingView logo or "algo access" button
close TradingView completely before submitting
reopen TradingView — ORB should be visible and accessible
configuring ORB breakeven stop
the breakeven stop variant moves your stop to entry after hitting TP1. wins are protected; additional upside is free.
how it works
entry — price breaks above or below the opening range.
TP1 — first profit target hits (often 25–50% of ORB range). algo moves stop to entry price.
TP2 / exit — let the rest run. if price continues, you profit more. if it reverses, you exit at break-even.
configuration checklist
opening range size — verify your ORB matches the chart. use TradingView's Measure Tool on the first 15 minutes
TP1 level — usually 25–50% of the ORB range
TP2 level — 100–200% of ORB range, or leave open to let momentum run
maximum ORB size — make sure your max accommodates the actual range, or the trade won't trigger
why trades don't trigger — invalid ORB size
if the day's opening range exceeds your configured max ORB size, the trade rejects automatically. this is the filter that prevents trading extremely volatile opens.
example: 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 — but note higher thresholds mean more trades and more false breakouts.
verifying everything works
confirm contract symbol in TradingView matches your broker (front-month, highest volume).
measure the opening range manually. is it within your configured max ORB size?
check your TP1 and stop-loss levels are reasonable relative to the opening range.
run a backtest in Strategy Report. are trades triggering consistently?
if all checks pass, your ORB breakeven stop should execute smoothly.
configuring ORB 2TP (two take-profit strategy)
the 2TP variant scales out at two profit levels — locks in early gains, keeps risk small, rides 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 it up
define your opening range — first 15 minutes is standard. measure the high and low.
set TP1 — often 50–100% of the ORB range above breakout entry. exit half your position here.
set TP2 — usually 150–200% of ORB range. exit the remaining half if momentum continues.
set your stop-loss — below the ORB low (longs) or above the ORB high (shorts), or at a fixed dollar amount.
common 2TP configurations
style | TP1 | TP2 |
conservative | 25% of ORB | 100% of ORB |
balanced | 50% of ORB | 150% of ORB |
aggressive | 75% of ORB | 200% of ORB |
why scale out
TP1 locks in a guaranteed gain on half your position. the TP2 portion only risks the gain you've already banked from TP1, not new capital. it reduces stress and improves risk/reward over time.
backtesting 2TP
test the configuration in TradingView's strategy report over 12+ months. compare win rate, profit factor, and average trade value vs standard ORB and breakeven. the version that wins more often and profits more on your instrument becomes your production setup.
how ORB breakout and breakdown levels are measured
breakout and breakdown levels are measured as percentages of the opening range size — not points.
extensions like 0.5x, 1x, or 1.5x 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? it keeps things comparable across 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 the data is comparable.
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 the data.
understanding run-up percent
run-up % shows the maximum unrealized profit on a trade — your peak gain before exit.
example: enter long at 100, price peaks at 110 (10% gain) while open, exit at 105. run-up % = 10% (peak unrealized). net profit = 5% (actual result).
calculation: run-up % = (price peak − entry price) / entry price × 100%. it's the instrument's price movement from entry — not based on the ORB size or any strategy parameter.
important: run-up % is NOT a percentage of the ORB size. it's purely the instrument's price increase from your entry level, measured as unrealized gain — not your final return.
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 the troubleshooting section above, see:
quick answers to common settings questions
what max-loss should I use for MES 5M, MES 15M, or MNQ templates?
start with the current template value on the algo settings page. run TradingView's strategy report on your contract and timeframe, then adjust based on your own backtest.
what's the difference between stop-loss and max-loss?
stop-loss caps loss on a single trade — the exit price if that trade goes against you. max-loss is a cumulative session limit — if total losses for the day hit it, the algo closes positions and stops trading for the session.
how do 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 set so a full losing session doesn't blow through the expected per-trade drawdown. for the framework, see from stats to trading rules.
can I change template settings?
yes — templates are starting points, not locks. run the template in strategy report on your contract and timeframe, review drawdown and win rate, and adjust max-loss, stop-loss multiplier, and TP levels to match your risk tolerance. always validate in a demo account before going live. once you've landed on new values, follow the full handoff to get them live: applying algo settings changes — what to do after you optimize and make algo setting changes.
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.
related articles
→ applying algo settings changes — what to do after you optimize and make algo setting changes — what to do after you change algo settings










