Independent out-of-sample test of the QQQ opening range breakout
Open GitHub research project (author: mericck), data to September 2026
Opening range breakout on QQQ with a sealed out-of-sample period. A researcher takes the idea behind the Zarattini–Aziz paper, fixes the rules on 2017–2022 and tests them once on 2023 – September 2026. The README reports the numbers in R, with costs, a bootstrap and the author’s own verdict: positive on average before costs, not distinguishable from zero after them.
Sources
- QQQ-Opening-Range-Breakout: out-of-sample performance, robustness testing and prop-firm feasibility (GitHub README) — open repository, 2026The README was read; the code and raw data were not opened. Numbers are the author’s own.
Rules
- FilterData: QQQ 5-minute bars from Alpaca, regular session only, January 2017 – September 2026. Development period 2017–2022 (1,504 sessions); out-of-sample 2023 – September 2026, kept for the final evaluation.[1]
- FilterParameter search: 120 configurations (range 5–60 minutes, target 1R–4R, signal cutoff 10:30–13:00). The best on the development data was a 10-minute range, 3R, cutoff 10:30 (the “primary” variant), but it did not clearly beat the baseline.[1]
- EntryBaseline rule: opening range 09:30–09:45; from 09:45 to 12:00 buy if a candle closes above the range high, sell short if it closes below the low; entry at the next candle’s open; at most one trade per session.[1]
- StopStop on the opposite side of the opening range. If a stop and a target are hit in the same bar, the stop is assumed to come first.[1]
- ExitTarget 2R; any open position is closed at 15:00.[1]
- DisciplineDevelopment period, baseline, before costs: 1,472 trades, +0.056R average, profit factor 1.13, maximum drawdown 17.6R.[1]
- DisciplineOut of sample, before costs: primary variant 906 trades, win rate 42.6%, +0.074R average, +67.3R in total, profit factor 1.15; baseline 928 trades, +0.070R. By year (primary, total R): 2023 +20.8, 2024 +18.9, 2025 +35.3, 2026 to September −7.7; the other variants were also negative in 2026.[1]
- DisciplineWith hypothetical costs of 4 cents per share round trip the primary variant’s average falls to +0.054R (48.4R in total); at 10 cents to +0.022R (20.2R). Under the 4-cent case the bootstrap 95% interval for the average net R includes zero.[1]
- DisciplineThe author states the work is not a validated live-trading system and that positive historical expectancy is necessary but not sufficient. He also notes that this is not a replication: the rules differ from the paper (close-confirmed breakout, next-bar entry, different range, target and cutoff).[1]
Not confirmed
Often attributed to this trader, but not found in the sources above. Not listed as his or her rules.
- A prop-firm pass simulation in the README (pass chances of roughly 2% to 26% depending on risk) is flagged by the author himself as needing a check against saved output, so it is not used here.
Limits of these rules
A one-person project with its own data pipeline; the code was not re-run here. Five-minute OHLC data cannot show intrabar order, so stop-before-target is an assumption, and the test is QQQ, not Nasdaq futures. It tells us that a plain opening-range rule on QQQ kept a small positive average for 3.7 years, not that it would have been tradable after real fills.
On this site
Other traders
Rules are our paraphrase of the sources; only short quotes are verbatim. This is information, not advice or a promise of profit.