HomeBlogOpening Range Breakout Backtest Results: What Survived After Realism Fixes
Case StudyApril 16, 2026·7 min read

Opening Range Breakout Backtest Results: What Survived After Realism Fixes

Daniel Ratke

Daniel Ratke

Research & Engineering

Opening Range Breakout Backtest Results: What Survived After Realism Fixes

Term map

Backtesting vocabulary for this article

Treat signal timestamp, point-in-time universe, quote-aware fill, reject reason, replay artifact, walk-forward test, and cache key as first-class terms. They separate reproducible research from a backtest that only preserves the final performance table.

Follow the linked definitions for Point-in-time contracts, Quote-aware fills, Reject reasons, Replay artifact, Cache key, Signal timestamp, Look-ahead leakage, Walk-forward test, Slippage model, Same-bar fill, Promotion gate, and Options data API.

Repository reference: cutebacktests

Abstract

Opening range breakout remains one of the most popular ideas in intraday trading because it is intuitive, compact, and visually persuasive. The problem is that ORB is often discussed as if it were one strategy. In practice it is a family of strategies, and large parts of that family become much less impressive once option execution, parity, and timing assumptions are tightened.

The strongest evidence for that claim in this repository is ORB Framework Audit. The audit's short answer is blunt: broad ORB did not survive well, but a narrow ORB pocket did. The surviving lane was directional ORB with 5-7DTE, a 5 minute opening range, and range-stop geometry. Broad 0DTE, 1DTE, and 2-3DTE ORB lanes did not survive as general claims.

Question

The practical question is not whether one ORB configuration can be made to look good. The real question is what remained credible after the framework stopped flattering the family.

That is the right question because ORB research can become an endless tuning exercise. Opening-range duration, breakout trigger type, stop geometry, DTE bucket, relative-volume filter, context overlay, and option-selection logic can all be varied. If the framework is permissive, that search space will almost always produce a few exciting candidates. The audit asked the more useful question: which part of that search space still holds up after realism fixes?

Method: What an Opening Range Breakout Backtest Is Actually Testing

In this repository, ORB is not a vague "trade the first move after the open" heuristic. As Episode 4 explains, the engine builds an opening range from the underlying's first regular-session bars, measures range width and early context, waits for a breakout or reversal setup after that range completes, and only then selects an option contract if the strategy is monetized with options. Entries occur on the next bar after the signal, not on the same signal bar.

This definition means the ORB family here is testing several layers at once. It tests signal geometry on the underlying, context gating on the session, and then an option-expression layer on top. Once those layers are evaluated honestly, the family's broad appeal turns into a more selective question. Which combinations of range duration, DTE bucket, and stop style still survive?

Evidence / Results

The ORB audit reported one narrow survivor and a much larger set of failures.

The surviving pocket was:

  • directional ORB
  • 5-7DTE
  • 5 minute opening range
  • range-stop geometry
  • breakout-open-inside-range disabled

What failed broadly included:

  • classic close-breakout matrix
  • broad touch and open-any matrix
  • broad 0DTE, 1DTE, and 2-3DTE lanes
  • 10, 15, and 20 minute ORB as generic rescue attempts

The audit also reported parity improvements, which matter because realism fixes should improve live-to-backtest alignment even when they weaken the family overall:

  • bar_open: 13/18 exact matches
  • live_poll_c30_l10: 15/18 exact matches

That combination of results is scientifically healthy. The framework became more believable, and the strategy space got smaller. That is the right direction of travel.

What Worked

What worked was narrowness. The repo did not produce a broad ORB victory. It produced a constrained ORB claim with specific DTE, timing, and stop assumptions. That is much more useful than the generic statement that "ORB still works."

The audit also worked because it separated framework progress from strategy weakness. The repo did not use better parity as an excuse to keep broad ORB optimism alive. It improved the framework and then reported that the broad ORB search space was still mostly weak or too sparse. That is exactly how a public research process should behave.

What Failed

What failed was the idea that one more broad ORB matrix would save the family. The repo kept testing, and the conclusion became clearer rather than looser. Broad 0DTE and near-dated lanes did not become convincing general solutions. Longer ORB windows did not repair the problem as a generic move. The family narrowed instead of expanding.

This is an important negative result because ORB is so easy to over-market. It gives strong chart narratives, it produces clean screenshots, and it feels mechanically disciplined. The audit shows that those surface qualities are not enough. Once causal option fills, next-bar entry logic, and parity checks are enforced, much of the apparent frontier disappears.

Takeaway

The honest answer to the title is that one small part of ORB survived after realism fixes, while broad ORB enthusiasm did not. That is a much better research outcome than a vague claim of continued success because it tells the reader where the evidence still exists and where it no longer does.

If you want the blunt version of the broader question, Does Opening Range Breakout Still Work? Evidence From 0DTE and 5-Minute Tests pushes the comparison further. If you want the option-expression angle, Why Most Opening Range Breakout Strategies Fail Under Realistic Options Fills focuses on the monetization layer. Join the research log to get the next backtest and failure report.

For the Opening Range Breakout Backtest Results: What Survived After Realism Fixes workflow, continue through Options Backtesting API, Backtesting Framework, Backtesting Execution Realism, Backtesting Data Quality Checklist, Quote-Aware Options Backtests, and Backtest to Paper Trading Parity Checklist.

How the terminology applies

For Opening Range Breakout Backtest Results: What Survived After Realism Fixes, the backtesting workflow should treat Point-in-time contracts, Quote-aware fills, Reject reasons, Replay artifact, Cache key, and Signal timestamp as operational state rather than glossary decoration. That framing keeps the research claim causal: the strategy can only select instruments, prices, and labels that existed at the decision time.

A developer implementing this Case Study idea should persist Look-ahead leakage, Walk-forward test, Slippage model, Same-bar fill, Promotion gate, and Options data API beside the result, instead of leaving those words in a term card. It also turns attractive performance into an auditable record where fills, skips, thresholds, and replay inputs can be challenged independently.

The review artifact for Opening Range Breakout Backtest Results: What Survived After Realism Fixes becomes more useful when OPRA-originating data, OCC option symbol, Bid/ask spread, Midpoint, Quote/trade condition, and Quote vs trade semantics appear in the same body of evidence as the selected rows. When a result is promoted, these fields should appear in the run manifest, rather than a prose summary or final equity curve.

In production notes for this backtesting workflow, REST snapshot, WebSocket stream, Entitlement gate, Quote freshness, Timestamp semantics, and Pagination cursor define the checks that decide whether the workflow is reproducible. The result is a backtest that can be rerun, compared across threshold families, and rejected when the evidence is not strong enough.

For Opening Range Breakout Backtest Results: What Survived After Realism Fixes, the practical acceptance test is simple: another developer should be able to read the body, identify the exact inputs, reproduce the request sequence, and explain the accepted and rejected rows without relying on the bottom terminology grid. If a phrase appears in the page vocabulary, it should correspond to a stored field, a validation check, a replay step, or an implementation decision in the backtesting workflow.

This is also the reason the article should not measure success only by the final chart, table, or headline metric. The better standard is whether the data path, timing model, entitlement state, and evidence trail survive review. When those pieces are written directly into the body, the terminology becomes part of the workflow readers can implement.

Terminology

Market-data terms used in this article

These terms keep the article connected to the CuteMarkets knowledge base and to the exact API workflow behind the research.

Point-in-time contracts

Contract discovery anchored to the research date so a backtest does not use future listings.

Quote-aware fills

Entry and exit assumptions based on bid/ask quotes, quote age, spread width, and side-specific fill rules.

Reject reasons

Logged explanations for skipped contracts or fills, including stale quote, wide spread, no bid, or missing data.

Replay artifact

The saved request, selection, fill, reject, and metric record that lets another developer audit the backtest.

Cache key

The structured identifier that keeps provider, endpoint, ticker, timestamp, plan, and schema state from being mixed.

Signal timestamp

The exact time a strategy made a decision, used to reconstruct the visible universe and quote window causally.

Look-ahead leakage

A research error where a fill, contract, indicator, or label uses information unavailable at decision time.

Walk-forward test

A validation method that repeatedly trains and evaluates across separated time windows instead of trusting one optimized sample.

Slippage model

A fill-cost assumption based on bid/ask side, midpoint, spread percent, quote age, and liquidity policy.

Same-bar fill

An intraday backtest assumption that can become invalid when signal, entry, stop, and target ordering is ambiguous.

Promotion gate

The written threshold that decides whether a research candidate can move into paper trading or production monitoring.

Options data API

The product surface for chains, contracts, quotes, trades, aggregates, Greeks, IV, open interest, and expirations.

OPRA-originating data

The U.S. listed-options source context behind quotes, trades, exchange participation, and consolidated option-market records.

OCC option symbol

The exact option contract identifier that preserves root, expiration, call or put side, and strike.

Bid/ask spread

The execution interval between bid and ask that determines whether a contract is realistically tradable.

Midpoint

The computed center between bid and ask, useful as a reference price but not proof that an order would fill.

Quote/trade condition

The condition-code, exchange, correction, sequence, and timestamp context that explains how a quote or trade row can be used.

Quote vs trade semantics

The distinction between executable bid/ask markets, printed transactions, and bar-level summaries.

REST snapshot

A reproducible request for current or historical market state, used for initialization, backfills, and audit logs.

WebSocket stream

A persistent live connection that needs subscription topics, reconnect tracking, freshness labels, and REST repair paths.

Entitlement gate

The product, plan, quote, live, delayed, historical, or commercial-use boundary checked before data is shown.

Quote freshness

The age, timestamp, and live or delayed state of a bid/ask record before it is used in a scanner, backtest, or UI.

Timestamp semantics

The exchange, provider, ingestion, session, and application time context attached to a market-data record.

Pagination cursor

The continuation token or next URL that keeps large chains, trades, quotes, and historical windows complete.

Daniel Ratke

Written by

Daniel Ratke

Research & Engineering

Daniel covers the deeper research notes: options backtesting, execution realism, robustness testing, data engineering, and strategy validation.