Download the PDFThe scriptEvery trade
Alpha Charts
48-Hour Strategy Build · Sample report
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)
last 8 months$0k$10k$20k20222023202420252026
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.
Alpha Charts · 48-Hour Strategy Build · Sample reportSummary
Summary

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. An evaluation: on a typical 50K evaluation it passed 38% of simulated attempts at 1 micro and failed 51%; random entries passed 36%.
  6. 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
last 8 months$0k$10k$20k20222023202420252026

1,258 trades. After costs: $0.61 a contract each side and 1 tick of slippage on every market and stop fill.

YearTradesNetWinnersProfit factorDeepest drop
2021 (from 15 Nov)34+$1,44756%1.49$775
2022255+$5,08047%1.18$2,553
2023255+$3,07744%1.16$1,185
2024255+$4,34045%1.20$1,218
2025252+$6,15446%1.23$3,633
2026 (to 22 Oct)207−$3,69845%0.88$9,657
All1258+$16,40146%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
−$2,000$0$2,000FebMarAprMayJunJulAugSepOct
24 Feb 2026 to 21 Oct 2026Value
Trades170
Net−$6,542
Winners42%
Profit factor0.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
Alpha Charts · 48-Hour Strategy Build · Sample report6 · Against luck
6 · Against luck

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
$0k$5k$10k$15k$20k$25kthe strategy +$16,401

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.

SeedRunsAs good as the strategyMiddle runTop tenth from
112,00023.6%+$13,428+$18,629
122,00023.9%+$13,419+$18,875
132,00023.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 runResultVerdict
1It runs and trades1,258 tradesPasses
2Walk-forward: out-of-sample net above zero+$14,954 from 1 Jan 2022Passes
3The last 8 months above zero−$6,542, 170 tradesFails
4Neighbours: 60% of 12 nearby settings above zero12 of 12 above zeroPasses
5Costs doubled, still above zero+$13,716 at $1.22 a side and 2 ticksPasses
6Random entries as good in under 10% of runs23.5%-23.9% of 6,000 runsFails
7The same rules on MES above zero (reported only)+$3,654, 23 Oct 2024 to 22 Oct 2026Passes
8Deflated Sharpe 0.90 or more, counting 4 tries0.87Fails
9A typical 50K evaluation: passes more often than it fails38% pass, 51% fail at 1 microFails

Neighbouring settings (check 4), shown and never used to choose

RangeTarget 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
Alpha Charts · 48-Hour Strategy Build · Sample report8 · An evaluation
8 · An evaluation

On a typical 50K evaluation it failed more often than it passed at every size tested, and random entries did no worse

MicrosPassesFailsNeither in 120 daysMiddle days to passRandom: passRandom: fail
138%51%11%5936%41%
235%65%0%2039%61%
330%70%0%1131%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
−$2,000$0$2,00020222023202420252026

After costs: $0.61 a contract each side and 1 tick of slippage on every market and stop fill.

A monthValue
Trades a month21.0
Winners46%
The middle month+$155
The best month+$3,517 Feb 2026
The worst month−$2,988 Jun 2026
Months that made money33 of 60
Longest run of losing trades8 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
24,00024,20024,40009:0010:0011:0012:0013:0014:0015:00

Short at 24363.25, 09:55; out at 24108.50 on the target: +$508

Exhibit 6A loser: 17 Mar 2026The same view
25,00025,20025,40009:0010:0011:0012:0013:0014:0015:00

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
30,50030,60030,70009:0010:0011:0012:0013:0014:0015:00

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

VersionTradesNetLast 8 monthsRandom as goodDeflated SharpeAnswer
The strategy1,258+$16,401−$6,54223.9%0.87Unproven
Skip ranges wider than 0.4 of the 14-day average daily range1,118+$10,984−$5,18771.8%0.77Unproven
Trade only with the 20-day trend814+$20,254−$1,8875.8%0.98Unproven
Target 1x the stop distance1,258+$16,543−$1,55715.2%0.93Unproven

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
Alpha Charts · 48-Hour Strategy Build · Sample reportAppendix A · Glossary
Appendix A · Glossary

Glossary

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
Alpha Charts · 48-Hour Strategy Build · Sample reportAppendix B · Disclosures
Appendix B · Disclosures

Disclosures

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