Does Opening Range Breakout Still Work? Evidence From 0DTE and 5-Minute Tests

Daniel Ratke
Research & Engineering

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
The question "does ORB still work?" sounds simple. In options research it is too broad to answer honestly.
A same-day ORB using fragile options fills is not the same object as a 5-7DTE ORB with a stricter option surface and a narrower entry design. In this repository, the evidence points to a conditional answer rather than a slogan.
After the realism work summarized in ORB Framework Audit, broad ORB did not survive as a family-level claim.
What remained defensible was a specific pocket: directional ORB, 5-7DTE, 5 minute opening range, range-stop geometry, and a narrower trigger design. That means the answer to the title is yes for a very specific slice and no for broad generic ORB enthusiasm.
Question
The useful question is not whether ORB has ever worked. It is whether ORB still works once the backtest stops handing it easy assumptions.
Permissive tests can make ORB look durable. Wide DTE ranges and same-bar assumptions almost always produce survivors somewhere.
Once those choices are tightened, the question becomes narrower and much more interesting.
Method: Does ORB Still Work Under Specific DTE and Timing Assumptions?
The ORB audit in this repo effectively answered the title by decomposing the family rather than by judging it in one lump. It separated broad 0DTE, 1DTE, 2-3DTE, and 5-7DTE lanes. It looked at range duration and stop geometry. It examined parity quality and whether the surviving branch remained interpretable after those decisions were isolated.
This is the right method because ORB's strongest failure mode in public discussion is over-generalization. A researcher finds one working configuration and then speaks as if the family itself has been validated. The repo moved the other way. It kept cutting the family apart until the surviving object was specific enough to defend.
Evidence / Results
The evidence now looks like this:
- broad ORB did not survive well
- a narrow ORB pocket did survive
- the surviving pocket was directional ORB with
5-7DTE,5minute opening range, and range-stop geometry - broad
0DTE,1DTE, and2-3DTElanes did not survive as general-purpose claims
That result appears in both ORB Framework Audit and Episode 4. The audit also reported improving parity quality:
bar_open:13/18exact matcheslive_poll_c30_l10:15/18exact matches
Those parity figures matter because they show the repo was not "saving" the narrow survivor by lowering standards. The standards were becoming more credible while the family itself was being narrowed.
What Worked
What worked was the decision to stop treating ORB as a monolith. Once the family was decomposed by DTE and trigger design, it became possible to say something useful. A slower-DTE, narrower ORB lane still had life. That is a stronger result than a vague family win because it is easier to falsify and easier to compare against future evidence.
The repo also benefited from better parity. A good ORB answer needs more than a backtest chart. It needs some evidence that the simulated object and the live object are moving closer together. The parity improvements reported by the audit support that.
What Failed
What failed was the broad claim. If someone asks whether ORB still works in the generic sense, this repo does not support a confident yes. Broad 0DTE and other short-DTE lanes did not hold up as general recipes. Longer opening-range durations did not act as a universal repair. The family survived only after getting smaller.
This is an important negative result because generic ORB enthusiasm is still common in public trading content. The repo's evidence suggests that the more honest answer is conditional and narrow. A lot of the edge people think they are seeing comes from bundling together configurations that should be judged separately.
Takeaway
Does ORB still work? In this repository, yes for a specific 5-7DTE, 5 minute directional lane, and no for broad family-level claims. That answer is much less exciting than a universal slogan, but it is much more useful.
If you want the fuller audit framing, Opening Range Breakout Backtest Results: What Survived After Realism Fixes is the companion piece. If you want the option-expression failure surface, Why Most Opening Range Breakout Strategies Fail Under Realistic Options Fills goes there next. Join the research log to get the next backtest and failure report.
Related workflow
For the Does Opening Range Breakout Still Work? Evidence From 0DTE and 5-Minute Tests workflow, continue through Options Data API, Options Chain API, Historical Options Data API, Options Volume and Open Interest, Options Flow False Positives, and Option Quote and Trade Conditions.
How the terminology applies
For Does Opening Range Breakout Still Work? Evidence From 0DTE and 5-Minute Tests, 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 Does Opening Range Breakout Still Work? Evidence From 0DTE and 5-Minute Tests 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 Does Opening Range Breakout Still Work? Evidence From 0DTE and 5-Minute Tests, 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.
ORB comparisons need matching data objects
The 0DTE and 5-minute tests should be compared only when their data objects match. Each run needs the opening range bars, signal timestamp, selected OCC option symbol, DTE bucket, NBBO quote, quote condition, trade condition, spread percent, and no-bid exit policy. If one variant uses top-of-book quotes and another relies on OHLCV option bars, the result is not a clean strategy comparison.
The replay should also show the operational rejects. A narrow ORB can survive because it avoids stale quote windows, wide bid/ask premium, and thin open interest. A broader ORB can fail because it creates more candidates than the market can execute. Keeping those fields visible explains why the answer is conditional rather than a slogan.
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.

Written by
Daniel Ratke
Research & Engineering
Daniel covers the deeper research notes: options backtesting, execution realism, robustness testing, data engineering, and strategy validation.
Product links
Build the workflow with CuteMarkets
This article is part of the broader CuteMarkets product and research stack. Use the landing pages below to move from the blog into the specific API workflow you want to evaluate.
Beginner options path
Send newcomers to the beginner path for calls, puts, chains, Greeks, IV, and risk.
Options Data API
See the main options overview for real-time and historical options data.
Historical Options Data API
Inspect the historical contracts, quotes, trades, and aggregates workflow.
Options Chain API
Go straight to chain snapshots, expirations, and strike discovery.
Pricing
Review plans before you move from free evaluation into production usage.