Our own strategy run through the same build as a paid one Tested 14 Nov 2026
NQ opening range breakout, the textbook rules
The first close outside the 09:30-09:45 New York range, a stop at the other side, a target twice the stop. 1 micro (MNQ), 5-minute bars, 15 Nov 2021 to 22 Oct 2026.
Answer: Unproven
It made money over five years, but not in the last 8 months, and random entries on the same days did as well about one time in four.
Net profit by day, 1 micro, after costs15 Nov 2021 to 22 Oct 2026; the shaded band is the last 8 months (page 4)
Trades
1,258
15 Nov 2021 to 22 Oct 2026, one a day at most
Net, 1 micro
+$16,401
after costs; deepest drop $9,657
Last 8 months
−$6,542
170 trades, 24 Feb 2026 to 21 Oct 2026
Luck did as well
23.5%-23.9%
of 6,000 runs with random entry times
Why this report is public
This is a 48-Hour Strategy Build run on a strategy of our own, so you can read every page before you send us yours. The strategy, the test plan and the three versions were written down before any result, and every test that failed is printed. 5 of the 9 checks pass.
Past results on historical data, with costs taken off. They don't forecast anything and they aren't advice to trade, or about what size to trade. Futures can lose more than an account holds.
The textbook opening range breakout made +$16,401 on 1 micro over five years, but it lost $6,542 in the last 8 months, and random entries matched it about one time in four
Answer: Unproven
The test can't tell this strategy from luck. That isn't a verdict that it never works; it means five years of its trades don't show more than a coin-flip entry with the same stop and target would.
It trades exactly as tested. Our tester ran the script on the same bars: 1,258 trades at 1 micro here, and every one of the script's own 1,255 risk-sized trades matched the research engine trade for trade.
Five years, after costs: +$16,401 on 1,258 trades, 46% winners, profit factor 1.13. From 2022 on, alone, it still made +$14,954.
The last 8 months lost $6,542 (170 trades), and the deepest drop, $9,657 from 15 Apr 2026 to 15 Oct 2026, had not been made back by 22 Oct 2026.
Luck did as well 23.5%-23.9% of the time. Entering at a random time on the same mornings, same side, same stop and target rule, matched or beat it in about a quarter of 6,000 runs. The stop at the other side of the range and NQ's five-year rise carry most of the result.
An evaluation: on a typical 50K evaluation it passed 38% of simulated attempts at 1 micro and failed 51%; random entries passed 36%.
None of the three versions changes the answer. Each was written down before any result and counted as a try; each lost money in the last 8 months.
What was tested. Our library's textbook rules, unchanged: 09:30-09:45 New York range, the first close outside it from 09:45 to 12:00, stop at the other side, target 2× the stop distance, one trade a day, flat at the session's close.
How. 5-minute bars, 15 Nov 2021 to 22 Oct 2026 (1,277 trading days). After costs: $0.61 a contract each side and 1 tick of slippage on every market and stop fill.
What it is not. A forecast, a recommendation, or a size to trade.
Contents
1. The answer1
2. Summary2
3. It trades as tested3
4. Five years4
5. The last 8 months5
6. Against luck6
7. The nine checks7
8. An evaluation8
9. A normal month9
10. Three real days10
11. The three versions11
12. What would change the answer12
A. Glossary13
B. Disclosures14
C. The script15
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 20262
Alpha Charts · 48-Hour Strategy Build · Sample report3 · It trades as tested
3 · It trades as tested
The script and the research engine agree on all 1,255 trades, so every number in this report is the script's own
The rules, exactly as the script has them
The range: the high and low of the 09:30, 09:35 and 09:40 New York bars.
The trade: the first 5-minute close that crosses out of the range from inside it, on a bar from 09:45 to 11:55. Long above, short below.
Filled at the next bar's open. Stop at the other side of the range; target 2× the distance from the close to the stop.
One trade a day. Anything still open is closed at the session's last bar.
The trade-for-trade check
Before any result was used, our tester ran the script on the same 349,780 bars and its trades were compared with the research engine's: entry and exit time, side, both prices and the contracts. 1,255 of 1,255 match, with the script sizing itself (1% of a 50,000 account, at most 10 micros, the script's own $0.75 a side). Every result in this report is then run at 1 micro.
The script's own sizing, shown once and not recommended: 1,255 trades, +$42,168, deepest drop $27,023. The size you trade is your decision.
Why this page comes first. A test of a script that trades differently on the chart proves nothing about the chart. The check runs before any result is read.
Costs in every result: $0.61 a contract each side, 1 tick of slippage on market and stop fills, none on the target.
The full script is Appendix C.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 20263
Alpha Charts · 48-Hour Strategy Build · Sample report4 · Five years
4 · Five years
+$16,401 over five years, made mostly before 2026; the last 8 months gave back $6,542
Exhibit 1Net profit by day, 1 micro, after costs15 Nov 2021 to 22 Oct 2026; the shaded band is the last 8 months
1,258 trades. After costs: $0.61 a contract each side and 1 tick of slippage on every market and stop fill.
Year
Trades
Net
Winners
Profit factor
Deepest drop
2021 (from 15 Nov)
34
+$1,447
56%
1.49
$775
2022
255
+$5,080
47%
1.18
$2,553
2023
255
+$3,077
44%
1.16
$1,185
2024
255
+$4,340
45%
1.20
$1,218
2025
252
+$6,154
46%
1.23
$3,633
2026 (to 22 Oct)
207
−$3,698
45%
0.88
$9,657
All
1258
+$16,401
46%
1.13
$9,657
Walk-forward. Nothing in the strategy was chosen on these bars, so every year after the first is out-of-sample: from 1 Jan 2022 on it made +$14,954 on 1,224 trades. Check 2 passes.
Read with page 6. A five-year profit on NQ, which rose over the period, is not enough on its own: random entries with the same stop and target made money too.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 20264
Alpha Charts · 48-Hour Strategy Build · Sample report5 · The last 8 months
5 · The last 8 months
The last 8 months lost $6,542 on 170 trades, the deepest drop of the five years
Exhibit 2Net profit by month, 1 micro, after costsFeb to Oct 2026; February counts from the 24th for the check
24 Feb 2026 to 21 Oct 2026
Value
Trades
170
Net
−$6,542
Winners
42%
Profit factor
0.76
Deepest drop
$9,657
Why these months matter. They are the most recent stretch the build reports on its own, the one a trader starting now would have lived through. Check 3 needs them above zero; they are −$6,542, so check 3 fails.
The deepest drop of the whole test, $9,657, ran from 15 Apr 2026 to 15 Oct 2026 and had not been made back by 22 Oct 2026.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 20265
Entering at a random time on the same mornings did as well 23.5%-23.9% of the time, so the result can't be told from luck
Exhibit 3What random entry times made, against the strategy2,000 runs (seed 11): the same days, the same side, the same stop at the other side of the range and the same 2× target, entered at a random 5-minute close from 09:45 to 12:00; dark bars did at least as well
After costs: $0.61 a contract each side and 1 tick of slippage on every market and stop fill. Three seeds, 2,000 runs each.
Seed
Runs
As good as the strategy
Middle run
Top tenth from
11
2,000
23.6%
+$13,428
+$18,629
12
2,000
23.9%
+$13,419
+$18,875
13
2,000
23.5%
+$13,567
+$18,916
What this tests. If the breakout itself carried information, entering when it fires should beat entering at a random time with everything else the same. Check 6 needs random entries as good in under 10% of runs; they are as good in 23.5%-23.9%. Check 6 fails.
What does carry the result: the wide stop at the other side of the range and a market that rose over the five years. Random entries made a middle run of +$13,428.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 20266
Alpha Charts · 48-Hour Strategy Build · Sample report7 · The nine checks
7 · The nine checks
5 of the 9 checks pass; the last 8 months, random entries, the deflated Sharpe and the evaluation fail
#
Check, as the plan wrote it before any run
Result
Verdict
1
It runs and trades
1,258 trades
Passes
2
Walk-forward: out-of-sample net above zero
+$14,954 from 1 Jan 2022
Passes
3
The last 8 months above zero
−$6,542, 170 trades
Fails
4
Neighbours: 60% of 12 nearby settings above zero
12 of 12 above zero
Passes
5
Costs doubled, still above zero
+$13,716 at $1.22 a side and 2 ticks
Passes
6
Random entries as good in under 10% of runs
23.5%-23.9% of 6,000 runs
Fails
7
The same rules on MES above zero (reported only)
+$3,654, 23 Oct 2024 to 22 Oct 2026
Passes
8
Deflated Sharpe 0.90 or more, counting 4 tries
0.87
Fails
9
A typical 50K evaluation: passes more often than it fails
38% pass, 51% fail at 1 micro
Fails
Neighbouring settings (check 4), shown and never used to choose
Range
Target 1.5×
Target 2×
Target 2.5×
10 minutes
+$7,196
+$9,544
+$13,214
15 minutes
+$16,942
+$16,401
+$16,165
20 minutes
+$11,920
+$13,112
+$13,021
30 minutes
+$6,447
+$7,836
+$10,038
How the answer is set
Evidence of an edge: checks 2, 3, 5, 6 and 8 all pass. Weak evidence: 2, 3 and 5 pass and random entries are as good in under 20% of runs. Otherwise Unproven. Here 3, 6 and 8 fail: Unproven.
Deflated Sharpe asks how likely the best of the tries is to beat zero once the number of tries is counted. The strategy scores 0.87, under the 0.90 the plan set.
MES has 23 Oct 2024 to 22 Oct 2026 on file, so check 7 covers two years, not five.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 20267
On a typical 50K evaluation it failed more often than it passed at every size tested, and random entries did no worse
Micros
Passes
Fails
Neither in 120 days
Middle days to pass
Random: pass
Random: fail
1
38%
51%
11%
59
36%
41%
2
35%
65%
0%
20
39%
61%
3
30%
70%
0%
11
31%
69%
The evaluation simulated
A $3,000 profit target; a $2,000 end-of-day trailing drawdown that stops rising at the starting balance; a $1,000 daily loss limit, read on each day's closed result.
10,000 attempts at each size, each built from the strategy's own days in 5-day blocks, drawn at random, until the target, a breach, or 120 trading days.
Beside it, the same attempts built from one run of random entry times (seed 11).
Check 9 fails: it needs passes to outnumber fails, and at 1 micro they are 38% to 51%.
No size is picked here. The table shows what 1, 2 and 3 micros did, each beside random entries. The size you trade is your decision.
Your firm's rules differ; a paid build runs this on yours.
Intraday drawdown is not simulated here: a day is judged on its close.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 20268
Alpha Charts · 48-Hour Strategy Build · Sample report9 · A normal month
9 · A normal month
A normal month is about 21 trades and a result near zero; 33 of 60 months made money
Exhibit 4Net profit by month, 1 micro, after costsNov 2021 to Oct 2026
After costs: $0.61 a contract each side and 1 tick of slippage on every market and stop fill.
A month
Value
Trades a month
21.0
Winners
46%
The middle month
+$155
The best month
+$3,517 Feb 2026
The worst month
−$2,988 Jun 2026
Months that made money
33 of 60
Longest run of losing trades
8 23 Mar 2022 to 1 Apr 2022
Deepest drop
−$9,657 15 Apr 2026 to 15 Oct 2026
What living with it is like. Fewer than half the trades win, the winners are about twice the losers, and a month's result is usually small either way. Long flat or falling stretches are normal for it.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 20269
Alpha Charts · 48-Hour Strategy Build · Sample report10 · Three real days
10 · Three real days
Three days from the last 8 months: the middle winner, the middle loser, and a day it sat out
Exhibit 5A winner: 20 Mar 20265-minute candles, 09:00 to 16:00 New York; shaded: the range; red: the stop; green: the target
Short at 24363.25, 09:55; out at 24108.50 on the target: +$508
Exhibit 6A loser: 17 Mar 2026The same view
Long at 25114.00, 09:50; out at 24964.00 on the stop: −$301
Exhibit 7A day it sat out: 29 Sep 2026The same view
Price went beyond the range (30532.00 against a low of 30545.25) but no 5-minute bar closed outside it before 12:00, so there was no trade.
Why the middle ones. The best and worst days are rare by definition; the middle winner and loser are what most days look like.
The loser is the common case: price closes outside, turns, and reaches the stop at the other side of the range.
Entries and exits: the filled dot is the entry, the open dot the exit.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 202610
Alpha Charts · 48-Hour Strategy Build · Sample report11 · The three versions
11 · The three versions
Three versions were written down before any result; each is counted as a try, and none changes the answer
Version
Trades
Net
Last 8 months
Random as good
Deflated Sharpe
Answer
The strategy
1,258
+$16,401
−$6,542
23.9%
0.87
Unproven
Skip ranges wider than 0.4 of the 14-day average daily range
1,118
+$10,984
−$5,187
71.8%
0.77
Unproven
Trade only with the 20-day trend
814
+$20,254
−$1,887
5.8%
0.98
Unproven
Target 1x the stop distance
1,258
+$16,543
−$1,557
15.2%
0.93
Unproven
Each version is judged by the same levels as the strategy, with 4 tries counted in the deflated Sharpe. The 20-day trend version scores best on the five years (+$20,254, random entries as good 5.8% of the time) but still lost $1,887 in the last 8 months, so it is Unproven too.
Trying more versions until one passes is how a test is fooled; that is why a build fixes the versions first and counts them.
The versions:
1. Skip ranges wider than 0.4 of the 14-day average daily range.
2. Trade only with the 20-day trend.
3. Target 1x the stop distance.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 202611
Alpha Charts · 48-Hour Strategy Build · Sample report12 · What would change the answer
12 · What would change the answer
Only new trades can change the answer; nothing in these five years can be tuned into a better one
Stronger: if new months, run with the rules unchanged, add up above zero while random entries on the same days do worse, the answer can move. The test is re-run on the new trades alone.
Weaker: a further drop below the $9,657 of 15 Apr 2026 to 15 Oct 2026 would be outside anything in five years.
Not a way forward: changing settings until these five years look better. Every setting nearby already made money (check 4), and so did random entries; a better-looking past would not be evidence.
Running it exactly as tested
MNQ on 5-minute bars, the session's full hours, New York time.
The script's inputs as they are: 09:30-09:45 range, entries 09:45-12:00, target 2×, one trade a day.
Results in this report are at 1 micro with the costs above; the script sizes itself unless you change it, and the size you trade is your decision.
What a paid build adds. Your script instead of ours, matched trade for trade on your own chart, and your firm's evaluation rules instead of the typical ones on page 8.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 202612
The range. The highest high and lowest low of the 09:30, 09:35 and 09:40 New York 5-minute bars.
Net. Profit after costs, in dollars, at 1 micro (MNQ, $2 a point) unless a line says otherwise.
Costs. $0.61 a contract each side, plus 1 tick ($0.50 on MNQ) of slippage on every market and stop fill; none on a target.
Winners. The share of trades that made money after costs.
Profit factor. Money made on winners divided by money lost on losers.
Deepest drop. The largest fall from a high point of the running total, day by day.
Out-of-sample. Trades on bars nothing in the strategy was chosen on.
The last 8 months. 24 Feb 2026 to 21 Oct 2026, reported on their own.
Random entries. The same days, side, stop and target rule, entered at a random 5-minute close in the entry window instead of the breakout.
Deflated Sharpe. The probability that the result's Sharpe ratio is above zero once the number of versions tried is counted (Bailey and López de Prado).
Neighbours. The same rules with a nearby range length (10, 15, 20, 30 minutes) and target (1.5, 2, 2.5×).
Block bootstrap. New sequences of days built by drawing 5-day blocks of the strategy's own days at random, to simulate many evaluations.
Unproven. The test cannot tell the strategy's results from luck. It is not a claim that the strategy never works.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 202613
This report is a sample: a 48-Hour Strategy Build run on a strategy of our own, published so readers can see what a build contains. It is not a recommendation to trade this or any strategy.
All results are hypothetical, from historical data, with the costs stated. Hypothetical results have limits: they are made with hindsight, don't involve financial risk, and can't account for every factor of real trading, such as fills in fast markets or the ability to keep to a strategy through losses. No representation is made that any account will or is likely to achieve results like these.
Futures are leveraged; losses can exceed an account's deposits. The evaluation figures simulate typical rules, not any one firm's, and no firm has reviewed them.
Nothing here is advice about what to trade or what size to trade. Sizes in this report (1, 2 and 3 micros) are shown to describe results; the size anyone trades is their own decision.
The test plan, the strategy and its three versions were written down and sealed with a checksum before any result was run; the plan is kept with the build.
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 202614
Alpha Charts · 48-Hour Strategy Build · Sample reportAppendix C · The script
Appendix C · The script
textbook.pine, exactly as tested (80 lines). The web version has the file beside it.
//@version=6
// Suggested timeframe: 5-minute
strategy("MNQ Opening Range Breakout", overlay=true, initial_capital=50000, default_qty_type=strategy.fixed, default_qty_value=1,
commission_type=strategy.commission.cash_per_contract, commission_value=0.75, slippage=1, margin_long=0, margin_short=0)
// Inputs
orSess = input.session("0930-0945", "Opening range (New York)")
tradeSess = input.session("0945-1200", "Entry window (New York)")
riskPct = input.float(1.0, "Risk % per trade", minval=0.1, step=0.1)
rMult = input.float(2.0, "Target (R)", minval=0.5, step=0.5)
maxContracts = input.int(10, "Max contracts", minval=1)
maxTrades = input.int(1, "Max trades per day", minval=1)
// The clock is New York's; a future's day starts at the 18:00 New York reopen
inOR = not na(time(timeframe.period, orSess, "America/New_York"))
inTrade = not na(time(timeframe.period, tradeSess, "America/New_York"))
// The day's state: every level, flag and count the setup keeps, declared here and set back on the day's first bar
var float orHigh = na
var float orLow = na
var int tradesToday = 0
var bool doneToday = false
var float stopLevel = na
var float targetLevel = na
if session.isfirstbar
orHigh := na
orLow := na
tradesToday := 0
doneToday := false
// The setup: the first close outside the 15-minute opening range
if inOR
orHigh := na(orHigh) ? high : math.max(orHigh, high)
orLow := na(orLow) ? low : math.min(orLow, low)
rangeSet = not inOR and not na(orHigh)
longSetup = rangeSet and close > orHigh and close[1] <= orHigh
shortSetup = rangeSet and close < orLow and close[1] >= orLow
longStop = orLow
shortStop = orHigh
// A win ends the day: counted before the entries, so the bar it closes on opens nothing; a winner held to the
// session's end is booked on the next session's first bar and ends nothing there
if strategy.closedtrades > strategy.closedtrades[1] and strategy.closedtrades.profit(strategy.closedtrades - 1) > 0 and not session.isfirstbar
doneToday := true
// Entries: inside the window, flat, under the day's caps; the qty from the risk (a stop too wide skips the
// trade), the stop and target placed with the entry
canTrade = inTrade and strategy.position_size == 0 and tradesToday < maxTrades and not doneToday and barstate.isconfirmed
riskCash = math.max(strategy.equity, 0) * riskPct / 100
if canTrade and longSetup and not na(longStop) and longStop < close
stopPts = close - longStop
qty = math.min(maxContracts, math.floor(riskCash / ((stopPts + 2 * syminfo.mintick) * syminfo.pointvalue)))
if qty >= 1
stopLevel := longStop
targetLevel := close + stopPts * rMult
strategy.entry("Long", strategy.long, qty=qty)
strategy.exit("Long exit", from_entry="Long", stop=stopLevel, limit=targetLevel)
tradesToday := tradesToday + 1
if canTrade and shortSetup and not na(shortStop) and shortStop > close
stopPts = shortStop - close
qty = math.min(maxContracts, math.floor(riskCash / ((stopPts + 2 * syminfo.mintick) * syminfo.pointvalue)))
if qty >= 1
stopLevel := shortStop
targetLevel := close - stopPts * rMult
strategy.entry("Short", strategy.short, qty=qty)
strategy.exit("Short exit", from_entry="Short", stop=stopLevel, limit=targetLevel)
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 202615
Alpha Charts · 48-Hour Strategy Build · Sample reportAppendix C · The script (continued)
Appendix C · The script, continued
tradesToday := tradesToday + 1
// The same stop and target on every bar of the trade; flat on the session's last bar
if strategy.position_size > 0
strategy.exit("Long exit", from_entry="Long", stop=stopLevel, limit=targetLevel)
if strategy.position_size < 0
strategy.exit("Short exit", from_entry="Short", stop=stopLevel, limit=targetLevel)
if session.islastbar
strategy.close_all("Session end", immediately=true)
plot(rangeSet ? orHigh : na, "Range high", color=color.new(#16A56A, 0), style=plot.style_linebr)
plot(rangeSet ? orLow : na, "Range low", color=color.new(#E5484D, 0), style=plot.style_linebr)
plotshape(canTrade and longSetup, "Long", style=shape.triangleup, location=location.belowbar, color=color.new(#16A56A, 0), size=size.tiny)
plotshape(canTrade and shortSetup, "Short", style=shape.triangledown, location=location.abovebar, color=color.new(#E5484D, 0), size=size.tiny)
NQ opening range breakout, the textbook rules · 1 micro · 15 Nov 2021 to 22 Oct 202616