ORB Trading Strategy: Freeze the Range, Specify the Orders
An opening range breakout uses the high and low of a fixed opening window as later reference levels. A breakout is a hypothesis about subsequent price behavior, not confirmation of the day’s direction. A reproducible ORB test also needs order timing, sizing, exits and a session calendar.
Key Takeaways
- Freeze the range after the chosen window; later bars must not redraw it.
- A stop-entry breakout and a completed-bar breakout are different strategies.
- Calculate reward and risk from the actual fill and stop, not just the range width.
- No best market, opening window or measured performance advantage is established here.
Define what “open” means
Use an explicit timezone and session. A US equity cash-session experiment can reference 09:30 America/New_York. On futures, that reference is an equity-market event inside a longer trading session, not necessarily the futures exchange opening. For foreign exchange, a regional-session reference is a research choice rather than a universal opening auction. Use standard time-based candles. Missing bars, holidays and shortened sessions require a rule. TradingView session tests use the exchange timezone by default unless another timezone is specified; the chart’s displayed timezone is not a substitute for the script’s session setting.
One complete experiment to implement
This is an untested example for a five-minute chart on full-length US equity sessions. Build the range from the three bars opening at 09:30, 09:35 and 09:40 New York time. At 09:45 freeze their highest high H and lowest low L. Skip the day if any of the three bars is missing, H is not above L, or the exchange calendar marks a shortened session.
- Reset range and trade-used state once per session.
- After 09:45 and before 10:30, a completed bar triggers long only when its close is above H and the preceding close was at or below H. Mirror below L for short.
- Submit a market entry after the signal closes. Under default historical processing, the earliest fill is the next available tick, usually the next bar open.
- Allow one entry per day, only while flat; no pyramiding, re-entry or automatic reversal. Use one share with sufficient capital for this experiment.
- Use a fixed stop one minimum tick beyond the opposite range boundary. After entry, define a target 1.5 times the actual fill-to-stop distance away from the fill.
- Check when protection first becomes active. Do not assume a stop created on a later calculation protected the earlier part of the entry bar. If an adverse entry gap has already crossed the stop, request an exit and keep that trade in the results.
- At the close of the bar ending 15:50, request a market exit if still positioned. Keep protection in place until flat; record actual fill timing.
Check the target geometry
Suppose H is 100.00, L is 99.00 and the tick is 0.01. A hypothetical long fill at 100.01 with stop 98.99 has price risk of 1.02. A 1.5R target is 100.01 + 1.5 × 1.02 = 101.54 before costs. For a different actual fill, recalculate the risk and target. A target 50% of the range width above H is only 100.50. From the same 100.01 fill, that offers 0.49 of reward against 1.02 of risk, about 0.48R. A “50% extension” does not mean 1.5R. Quantity and instrument point value convert price distance to money; slippage and gaps can exceed the planned loss.
Do not mix breakout trigger types
A buy-stop one tick above H can fill during a bar that later closes inside the range. The example above instead requires a completed close outside the range and enters afterward. Neither is an automatic improvement. Compare them as separately specified hypotheses with consistent costs. A stop-entry variant must also say when entry orders are created, when they expire and how the opposite-side order is canceled after a fill. Historical OHLC bars may not identify the sequence when entry, stop and target levels all lie within one bar. Review TradingView’s emulator assumptions and available lower-timeframe coverage rather than awarding the favorable sequence.
Evaluate range length without choosing the answer afterward
Changing the opening window changes both the reference prices and the time when entries become eligible. Compare candidate windows on the same dates with the same calendar and cost model. There is no general guarantee that a longer range improves accuracy or that ES, NQ or SPY is the most reliable market. Freeze the selection procedure before examining evaluation dates. Record all tested settings, trade counts, average wins and losses, net results and drawdowns. A filter based on range width relative to prior daily ATR must specify both quantities and use only completed historical data; it is not equivalent to averaging ATR inside a short opening window.
- Inspect false breakouts that return into the range and failed breakouts that occur before the strategy can enter.
- If excluding news days, use the event calendar available at the time and record which sessions were removed.
- Keep transaction costs in results, including for rejected strategy variants.
- With equal cash amounts, one +1R outcome offsets one -1R outcome before costs. Percentage compounding requires a separate calculation.
Use Pineify for implementation and input research
Pineify can draft the specified Pine strategy. Compile it in TradingView and inspect individual session boundaries, first eligible entries and exits before searching parameters. Expose supported inputs such as numeric opening-window minutes and target multiple when using Strategy Optimizer; Advanced or above is required. A parameter search does not prove a live edge. Compatible CSV report analysis evaluates recorded trades; a bootstrap resamples observed returns rather than replaying ORB on new price paths. Live automation additionally requires alerts, a configured execution connection and order safeguards. Generating a strategy does not itself place broker orders.
Sources and verification
Last verified:
Educational information, not investment advice or a record of tested returns. Examples illustrate mechanics. Trading can lose money, and historical or simulated results do not guarantee future performance.