MN HOLD-SIDE
When RTH opens 60–200 pts away from the NY midnight open AND the 4H trend agrees, price holds that side all day. 409 sessions, +28 pts/trade at target 250; PRIME tier (10:00 ext≥60) gets +55/tr.
updated 2026-04-24The setup
New York midnight (00:00 ET) is a liquidity pivot. On most sessions price eventually crosses it during RTH — but on ~33% of days it never does. Those are hold days: price opens on one side of the midnight open and runs away from it all session long.
The problem has always been identifying in advance which days will hold. Our T3 filter does it cleanly:
| Condition | Requirement |
|---|---|
| Distance | |RTH_open − MN| ∈ [60, 200] pts |
| Trend | 4H SMC trend aligns with the open side (above MN + 4H bullish → BULL; below MN + 4H bearish → BEAR) |
When both conditions fire at 09:30, the model publishes MN HOLD BULL / MN HOLD BEAR to the chart HUD. Stop = the midnight-open price. Target = entry ± 250 pts. Flat by 15:55.
If by 10:00 the market has extended ≥60 pts away from MN (confirming the hold thesis), the line upgrades to MN HOLD PRIME — base probability lifts from 57 → 64%, and the setup becomes the single highest-expectancy trade in the stack.
Entry rules
- Trigger time: 09:30 (standard tier), or 10:00 (PRIME tier, confirmation gate).
- Side: set at 09:30 from sign of
RTH_open − MN. - Stop:
mn_hold_stop(= the midnight open price). - Target: entry ± 250 pts (configurable in the strategy).
- Scratch: flat at 15:55 regardless.
- Risk: bounded by the distance cap — worst-case stop is 200 pts.
- Shown on HUD as
MN HOLD BULL/MN HOLD BEAR, upgraded toMN HOLD PRIME <side>once PRIME locks.
Two deployable modes
The backtest surfaced two clean configurations, both shipped:
| Mode | Entry | Gate | n | Win% @ 250 | Exp/tr | Total pts |
|---|---|---|---|---|---|---|
| A — ImmediateOpen930 | 09:30 open | none | 341 | 16.7% | +28.25 | +12,694 |
| B — ConfirmAt1000 | 10:00 open | ext ≥ 60 in first 30 min | 148 | 16.2% | +55.13 | +8,160 |
Mode A trades more frequently with a simpler rule. Mode B filters to trend days that have already proven themselves by 10:00 and doubles per-trade expectancy in exchange for a deeper stop (Q50 risk 182 vs 101).
Probability calibration
Base probability = 57% (realized hit rate at 150-pt target on the qualifying pool).
| Condition | Adjustment |
|---|---|
| PRIME tier (ext ≥ 60 by 10:00) | +7 → 64% |
| Thursday | −5 |
| Tuesday / Friday | +3 |
| Monday + PRIME | −5 |
Why Tier 1
This is a rare setup that earned Tier 1 on two independent grounds:
1. Standalone expectancy. +28.25 pts/trade across 341 trades, all five weekdays positive, zero negative targets in the target-sweep curve. The PRIME variant approaches +55/trade. By itself it is the best-expectancy trend-day filter in the stack.
2. Confluence amplifier. When MN HOLD is active, 16 other models in our suite show measurably different hit rates based on direction agreement. PDH TOUCH / PDL TOUCH swing 60 percentage points between aligned and opposed. 1H CRT lifts from 81.7 → 94.5% when aligned. Full bonus/penalty table below. In the 34k-prediction meta-validation, applying the confluence layer:
- Expanded the 95%+ confidence bucket 5.7× (119 → 681 lines), still hitting 97.5%.
- Killed 795 lines that were opposed by the signal (60–70% were real losers).
- Lifted overall hit rate +0.82 pp with a cleaner population.
Confluence rules (applied to other lines when MN HOLD is active)
Aligned = same direction as mn_hold_side. Kill floor 40.
| Line | Aligned bonus | Opposed penalty | PRIME extra |
|---|---|---|---|
| PDH TOUCH / PDL TOUCH | +25 | −20 | +3 |
| PO XTND BEAR | +15 | 0 | +3 |
| 1H CRT | +12 | −15 | +3 |
| ASIA [Med] LOW | +12 | −8 | +3 |
| PO XTND BULL | +10 | −10 | +3 |
| 0809 MID | +10 | −12 | +2 |
| AMD BEAR | +8 | −15 | +2 |
| 0809 SEQ LOW | +8 | −5 | +5 |
| ASIA [Med] HIGH | +8 | −8 | +3 |
| PO RNG MID | +8 | 0 | +8 |
| PO RNG BEAR | +8 | −8 | +2 |
| PWH/L RETEST | +8 | 0 | +5 |
| LON SWEEP L | +8 | 0 | +8 |
| AMD BULL | +5 | 0 | +2 |
| 0809 SEQ HIGH | +5 | −5 | +5 |
| LON SWEEP H | +4 | 0 | +8 |
| OR30 BREAK (direct 09:30 breakout) | +20 | −18 | +12 |
| OB STRETCH B | +3 | 0 | +5 |
| PO RNG BULL / OB BULL | +1 to +2 | −3 to −4 | +2 to +3 |
| OB MID | −5 | −20 | 0 |
| OB MID MAGNET | −5 | −18 | 0 |
| MN OPEN FILL / INSIDE GAP FILL | 0 | −25 | 0 |
| FILL 07-08 L | 0 | −14 | 0 |
| FILL 06-07 H / GAP FILL → PDH | 0 | −13 | 0 |
| FILL series (other) | 0 | −10 to −12 | 0 |
| HRR 08:00-09:00 SHORT | 0 | −15 | 0 |
The mean-reversion lines (MN OPEN FILL, INSIDE GAP FILL, FILL series, OB MID, OB MID MAGNET) get killed on opposed hold days — the backtest showed their edge evaporates when the market is in trend mode. OB MID signals get a small aligned penalty as well, because the replay backtest (1,370 sessions) found MN-active sessions are −6.6 pts/trade regardless of direction when trading 10:30 OB midpoint reversion — the trend-day regime dominates over direction agreement.
DOW breakdown (Mode A, target 250)
| DOW | n | Win% | Exp/tr | Total |
|---|---|---|---|---|
| Mon | 61 | 11.5% | +40.06 | +2,444 |
| Tue | 71 | 16.9% | +50.77 | +3,605 |
| Wed | 65 | 23.1% | +46.84 | +3,044 |
| Thu | 81 | 9.9% | +8.92 | +723 |
| Fri | 63 | 23.8% | +45.69 | +2,878 |
| All | 341 | 16.7% | +37.23 | +12,694 |
Thursday is the outlier drag but still net positive. Skipping it lifts remaining exp to +46/tr × 260 trades.
Implementation
- Signal producer:
smc_analysis.py(get_session_levels()). Emitsmn_hold_active,mn_hold_side,mn_hold_tier,mn_hold_dist,mn_hold_ext_30m,mn_hold_target_bull,mn_hold_target_bear,mn_hold_stoptohud_data.txt. - Chart lines:
PredictionModel.cs/PredictionModelWeb.cs. Draws the MN HOLD line at 09:30, upgrades to PRIME at 10:00. - Confluence layer:
PredictionModel.csapplies the bonus/penalty table above to every other active line after the AMD block, before REBOUND REGIME. - NT8 strategy:
MnHoldSide.cs— Mode parameter switches between A and B. - Consumer strategies:
OrbRetest.cs(MnHoldGateparameter) andMidpointReversion.cs(MnHoldSkipActiveparameter) both read the HUD keys and filter entries by MN HOLD state.
Research links
- Full research writeup: MN HOLD-SIDE — the midnight-open hold day
- Related concept: The HUD
History
- 2026-04-24 — Shipped. Mode A + Mode B both live via
MnHoldSide.csstrategy parameter; confluence layer live in both chart indicators; all HUD keys emitted bysmc_analysis.py. Meta-validation over 34k historical predictions confirmed +0.82pp overall lift and 5.7× expansion of the 95%+ bucket at 97.5% realized hit rate. - 2026-04-24 — ORB × MN HOLD follow-up (
backtest_orb_mn_hold.py, 1,370 sessions): direct 09:30 breakouts gated by PRIME-aligned MN HOLD produced +24.66 pts/trade at target 55 (n=134, 65.7% win) vs baseline +1.48; opposed breakouts were structurally negative (−2.59/tr). Confluence table updated:OR30 BREAKaligned bonus bumped 3 → 20, opposed penalty 0 → −18, PRIME extra 5 → 12.OrbRetest.csgained aMnHoldGateparameter (None/SkipOpposed/RequireAligned/RequirePrimeAligned) — Mode B (direct) withRequirePrimeAlignedis the high-conviction configuration; Mode A (retest) showed no lift and stays ungated. - 2026-04-24 — OB MID × MN HOLD follow-up (
backtest_midpoint_reversion_v2.py+v3_def.py, 1,370 sessions, faithful replay ofMidpointReversion.csFSM): MN-active sessions kill mean-reversion regardless of direction (MN_ALIGNED −6.63/tr, MN_OPPOSED +2.40/tr, MN_INACTIVE +2.50/tr). Confluence table updated:OB MIDandOB MID MAGNETget a light aligned penalty (−5) plus heavy opposed penalty (−20 / −18). V3 parameter sweep produced two high-conviction cohorts — MidLong + MN_INACTIVE + TOWARD_VWAP + straddle + OB-stop + cutoff 11:30 → +19.98/tr (n=86, 51.2% win) and FlipShort + MN_INACTIVE + straddle + OB-stop + cutoff 11:30 → +18.53/tr (n=68, 54.4% win).MidpointReversion.csupgraded with V3 defaults:MnHoldSkipActive,EntryCutoffHHMM=1130,UseStraddleEntry,InvertMidLongVwap(long now requires Close<VWAP — opposite of legacy), and per-signal enable toggles (MidShort + FlipLong default OFF as both are structurally negative OOS).