NQ · research

ORB break sweep — what actually happens after the 9:30-9:45 range breaks

Eight opening-range break variants, 1,370 MNQ sessions, two questions: (1) does a fixed 25-pt target make sense, (2) does waiting for a retest add edge. The answers are no and yes — with a +2.17 pts/trade setup.

updated 2026-04-24
shipped orbopening-rangebreakoutsretesttarget-sizingexpectancy

Why audit this at all

The 9:30-9:34 and 9:30-9:44 opening ranges are the most traded setups in index futures. They’re also where most traders default to a fixed risk assumption — “25 points max” is the version this desk had been running. The question: is that actually the expectancy-optimal target, and does the “wait for retest” variant help enough to matter?

Two scripts did the work:

Grid: two windows (5m = 9:30-9:34, 15m = 9:30-9:44) × two triggers (1m bar close vs 5m bar close) × two variants (direct first-break vs break-fail-break retest) = 8 setups, all on 1,370 RTH sessions of MNQ 1-minute data.

Part 1 — the no-stop MFE picture

If you enter on every break and ride to 15:59 ET with no stop, this is what you get:

SetupnMFE Q50MFE Q75MFE Q90Follow%Close-in-favor%≥25 pts≥50 pts≥100 pts
5m · 1m break · direct136994.517526351.4%53.1%86%69%48%
5m · 5m break · direct136990.217026452.7%53.4%86%69%46%
5m · 1m break · retest122587.215624350.9%52.5%85%67%44%
5m · 5m break · retest106378.814423253.3%54.1%86%66%41%
15m · 1m break · direct136889.016024851.5%53.5%86%68%45%
15m · 5m break · direct136688.815624353.3%54.2%86%69%45%
15m · 1m break · retest123081.515022852.5%53.7%85%66%43%
15m · 5m break · retest106674.513521254.2%55.0%83%63%39%

Three things jump out:

1. The 25-pt target lives at roughly the 15th percentile of MFE. Every single setup reaches 25 pts in 83–86% of sessions. Capping profit at 25 is harvesting the easy ones and giving up the fat tail.

2. 50 pts is hit 63–69% of the time. 100 pts hits in 39–48%. Max excursions are regularly north of 200 pts. The right tail is where the edge lives.

3. Close direction is a coin flip. 52–55% of sessions end in the break direction. Follow-through (break side = session extreme) is 50–54%. This is a swing/scalp signal, not a close-direction signal — if you’re waiting to exit on the closing bell, you’re giving up most of the edge.

Part 2 — stops and targets

Now the trade simulation. Entry at trigger bar close, stop at the opposite extreme of that trigger bar, sweep targets.

Best target per setup, no stop cap:

#SetupTargetWin%Exp/tradeTotal ptsTrades
15m OR · 5m break · RETEST3548.4%+2.17+2,4021,063
215m OR · 5m break · DIRECT5540.7%+1.91+2,8431,366
35m OR · 5m break · DIRECT5541.2%+1.32+2,0281,369
45m OR · 1m break · RETEST3535.0%+1.08+1,3631,225
55m OR · 1m break · DIRECT5527.3%+1.02+1,5221,369
615m OR · 1m break · RETEST1058.9%+0.57+7091,230
715m OR · 5m break · RETEST5533.8%+0.44+9731,066
815m OR · 1m break · DIRECT4032.2%+0.43+6131,368

The 25-pt cap degrades 5m-break setups by ~25%

The natural stop — opposite extreme of the 5m breakout bar — has Q50 risk of 28–35 pts for 5m-trigger setups. Capping at 25 pts forces the stop inside the breakout bar, and the trade dies on the first noise wick before the move materializes.

The 1m-break variants have Q50 risk of 14–18 pts, so 25 almost never binds for them. If you insist on a fixed 25-pt cap, only the 1m-trigger variants survive intact.

Why 35 wins the retest table and 55 wins the direct table

The trade-off is payoff ratio vs win rate. The expectancy curve p(win)·T − p(loss)·avg_loss has a single peak per setup:

What we shipped

NT8 strategyOrbRetest.cs implements both Mode A (retest, TP 35, 5m OR) and Mode B (direct, TP 55, 15m OR). 5-minute chart, single trade per session, stop at the trigger 5m bar’s opposite extreme, optional MaxRiskPts cap, optional 15:55 ET cutoff exit. File location: bin/Custom/Strategies/OrbRetest.cs.

Live signal — no change. The PredictionModel ORB line (Model 11) already uses a 5m-OR / 5m-close break-and-reclaim signal. Its probability table (58–62%) is a close-direction figure for a different question. The +2.17 expectancy setup is for position-sized trading, where the 35-pt target and the breakout-bar stop are the live mechanics.

Caveats

Reproducing

python scripts/backtest_orb_trades.py        # full trade sim, target sweep
python scripts/backtest_orb_breaks_nostop.py # pure MFE / MAE / follow-through

Outputs land in C:\SMC\backtest_results\orb_trades.txt and orb_breaks_nostop.txt.