NQ Master/ Exit research/ 27 Aug 2026/ 34,851 permits · 565 sessions

Closing one contract at +30 is a wash

It converts a third of the trades from scratches into small winners, and pays for it by halving the big ones. Over two years the two almost exactly cancel.

What was asked for

  1. Enter 2 contracts
  2. Close 1 at +30 points
  3. Move the remaining contract's stop to breakeven
  4. Keep the −250 hard stop and the +150 target on the runner
Edge vs. M3 today
−3,190
points per contract over 565 sessions. 90% CI [−6,743, +359] — the interval spans zero.
Win rate
26% → 60%
The headline change. Most trades stop being scratches and become small winners.
Return ÷ drawdown
19.2 → 20.6
Per contract, profit falls 7% and drawdown falls 13% — so risk-adjusted it improves slightly.
Partial fires on
56.3%
of trades. The other 44% never reach +30 and run as a full 2-lot to their exit.

Safe to build. Flat on raw expectancy, mildly positive once drawdown is accounted for — sell it as a risk change, not a profit one.

01

Head to head

The partial does not change when the runner exits, so the proposal takes the identical 10,687 trades as the current engine, in the same order, on the same bars. That makes this an exactly paired comparison — every difference below comes from the exit split alone, not from a different trade list.

Per contract TradesWin %PF ExpectancyTotalMax DDRet ÷ DD
M3 today — 1 lot, BE30 / TP150 / SL250 10,68726.2%1.30 +4.0443,200−2,24719.2
Proposal — 2 lots, 1 @ +30, runner BE 10,68760.4%1.28 +3.7440,010−1,94620.6
Reversal exit only (no stop, no target) 6,88337.8%1.24 +4.9333,934−3,40510.0
Points per contract, gross of commission, net of 4 ticks round-trip slippage. Expectancy is per trade.

Is it less profit for more drawdown?

No — that combination never happens, and it is the easiest thing to misread here because two different comparisons are in play.

Per contract, profit falls 7.4% and drawdown falls 13.4%. Less of both. As two lots, profit rises 85% and drawdown rises 73%. More of both. It is not a profit-for-risk trade at all: taking money off the table earlier shrinks the winners and shortens the losing runs.

Which makes the real question: size each model to the same drawdown, then who makes more?

Sized to M3-today's drawdown Own max DDSizeProfit at equal riskSharpe
M3 today — 1 lot −2,2471.00×43,2004.31
Proposal — partial @ +30, runner BE −1,9461.15×46,1994.96
Partial @ +75, runner BE −1,7931.25×53,2634.82
Partial @ +30, runner locks +30 −1,5821.42×68,5365.63
Sharpe on daily session P&L per contract, annualised. Read the ordering, not the levels — these are gross of commission with idealised fills at the level and no capital constraint, so 4.31 is not a number anything real produces. Max drawdown is a single realisation and a noisy thing to size off, so the multipliers are indicative; Sharpe is the independent check and it agrees on the ranking.

So the proposal is a small improvement once risk is held constant, not the wash the raw −3,190 suggests. The same adjustment points much harder at the +30-lock variant — see finding B.

02

Where the money moves

Because the trade list is identical, the difference decomposes exactly. Three buckets change, and they nearly cancel.

Change in total points per contract, by exit type

+60k +30k 0 −30k −60k +54,915 Breakeven scratches 34.3% · −0.50 → +14.50 −50,161 Target hits 7.8% · +149.50 → +89.57 −7,927 Reversal / session flat 57.1% · −9.40 → −10.70 −3,173 Net on 10,687 trades

The remaining 0.9% of trades hit the −250 disaster stop before reaching +30, so both contracts exit there and nothing changes for them.

Read plainly: the scale-out buys back the trades that used to finish flat, and pays for them by cutting the winners in half. At +30 those two are the same size. Everything else in the sweep is a variation on that trade-off.

03

Does a different level help?

Moving the partial further out costs less — but only because it fires less often. By +100 it barely happens, and by then you have most of the current engine back.

Partial taken at Fires onWin % Expectancyvs. M3 today90% CI
+20 points66.5%63.7% +3.47−6,092[−10,132, −1,917] worse
+30 points — as asked56.3%60.4% +3.74−3,190[−6,743, +359] no effect
+40 points41.9%48.8% +3.87−1,806[−5,105, +1,441] no effect
+50 points32.8%41.3% +3.85−2,041[−5,230, +1,033] no effect
+75 points20.8%32.4% +3.98−699[−3,213, +1,754] no effect
+100 points14.3%28.7% +3.98−618[−2,556, +1,367] no effect
Runner rules held constant at breakeven / +150 target / −250 stop. "vs. M3 today" is a paired session bootstrap, 8,000 resamples.
04

Three things the sweep settled

A

The breakeven move is doing the work, not the second contract

Keep the partial but leave the runner's stop at −250, and the model measures −13,921 against the current engine — significantly worse. This repeats the earlier finding that breakeven at +30 is the one exit rule with real support behind it. Whatever gets built, the ratchet stays.

B

Locking +30 on the runner beats moving it to breakeven

Same 2 lots, same partial at +30 — but the runner's stop goes to +30 instead of entry. It is the only variant in the sweep with a positive point estimate (+5,053, CI [−862, +10,827]), the best return-to-drawdown in the table at 30.5 against 19.2, and the highest total. It wins partly by ending trades sooner and freeing the one-position slot for the next signal. worth a decision

C

Keep the runner's +150 target exactly where it is

Every alternative is significantly worse: removing the target −5,970, widening to +200 −4,352, to +300 −5,076, or replacing it with a 100-point trail −5,899. The +150 exit is not the part to reopen.

05

What it costs to run

The extra fill is not an extra cost. Splitting one 2-lot exit into two 1-lot exits leaves the number of legs per contract unchanged, and futures commission, exchange fees and slippage are all charged per contract. The scale-out is cost-neutral — which is not true of most exit changes, and is a genuine point in its favour.

What does change is exposure to fill quality on the partial. It fires on 56% of trades, and the engine sends a market order the moment the brick's high touches +30, so the +30 leg is the one most sensitive to a bad fill. The model charges half a point; if live fills come in worse than that on the partial specifically, the already-marginal result moves against you.

06

How it was measured

Sample
34,851 M2 permits across 565 sessions, 18 Jun 2024 → 24 Aug 2026, on MNQ Flex Renko 30. One position at a time, exactly as the engine runs.
Entry
At BarCloseTime — the instant the Renko brick completes and the signal first exists — filled at the 1-second market price then, plus half a point of slippage. No look-ahead, and no signal screened out by what it did next.
Exits
At the level, less half a point, charged per leg. Breakeven arms off the favourable excursion strictly before the current second, so the bar that reaches +30 cannot also be stopped at breakeven — this mirrors M3's default Breakeven: Allow Same-Bar Exit = No.
Boundary
The opposite permit, the DST-aware 17:00 New York flat, or 24 hours, whichever comes first.
Significance
Paired session bootstrap against the current model, 8,000 resamples, 90% interval. Paired because the proposal takes the identical trade list.
Files
research/r35_scaleout.py · research/payload_scale.json · research/r35_out.txt.

Two limits worth stating. Where +30 and the final exit land inside the same one-second bar, the partial is dropped and the whole position is booked at the final level — rare, and it flatters the result slightly.

And this measures the exit rule on today's signal and permission layers. The M2 slope thresholds are still uncalibrated, so every number here moves if that changes.

Built by Gnourt · algorithmic trading systems