← Library
Pine Script v6 · Strategy · TradingView · MNQ Futures V1 — 8AM Range Sweep Model

8AM-RSM-MNQ-V1

8AM Range Sweep Model — Micro Nasdaq Futures · ICT/SMC 5-Step Model · FVG · IFVG · Order Block Confluence

File: 8am_range_sweep_mnq.pine Type: strategy() — backtestable Capital: $10,000 initial Instrument: MNQ1! Signal Window: 9AM–12PM NY Created: May 21, 2026

Overview

8AM-RSM-MNQ-V1 is an ICT/SMC manipulation-based reversal strategy calibrated for Micro Nasdaq Futures (MNQ1!). It follows the institutional 8AM manipulation sequence — where price establishes a range in the 8AM hour, sweeps liquidity on one side, and then reverses to target the opposite end of the range during the 9AM–12PM New York session.

The model requires three-layer confluence before signaling: a confirmed sweep of the 8AM range, an Inverted Fair Value Gap (IFVG) acting as the entry zone, and a supporting Order Block providing structural confirmation. All three must align within the active signal window.

STEP 1
8AM RANGE
Define manipulation zone
STEP 2
SWEEP
Liquidity taken one side
STEP 3
FVG
Imbalance identified
STEP 4
IFVG
Entry zone confirmed
STEP 5
ENTRY
All 3 factors aligned
MNQ Calibration Tick Size: 0.25 NQ points  ·  Tick Value: $0.50/tick per contract  ·  Commission: $0.62/contract  ·  Slippage: 2 ticks  ·  Default quantity: 1 contract  ·  Recommended timeframe: 1m or 5m

The 5-Step Model

Step 1 — 8AM Range Definition

The script tracks the full high and low of the 8AM hour (8:00–8:59 AM New York). The range locks when the 9AM signal window opens. Two dashed lines are drawn — aqua for the range high, yellow for the range low — extending through the signal window.

Range Reset The range, sweep flags, FVG/IFVG zones, and Order Block state all reset at the start of each new 8AM session. Each trading day begins with a clean slate.

Step 2 — Sweep Detection

Once the range is locked, the script watches for price to exceed either side of the 8AM range. A HIGH SWEPT label fires when price takes out the range high (bearish bias — price expected to fall to the range low). A LOW SWEPT label fires when price takes out the range low (bullish bias — price expected to rally to the range high).

Each sweep is registered only once per day. The sweep direction sets the trade bias.

Step 3 — Fair Value Gap (FVG) Detection

A 3-bar imbalance is detected near the sweep zone. FVGs represent areas where price moved so quickly that it left a gap between candle bodies — institutional order flow areas.

FVG TypeConditionBox ColorMeaning
Bullish FVGlow[0] > high[2]Green (faded)Gap up — demand imbalance
Bearish FVGhigh[0] < low[2]Red (faded)Gap down — supply imbalance

A minimum FVG size filter (default 0.25 points) removes micro-gaps from noise.

Step 4 — Inverted Fair Value Gap (IFVG) Confirmation

An IFVG forms when price closes back through a prior FVG in the opposite direction — converting the imbalance into an entry zone. This is the primary entry trigger.

IFVG TypeTriggerBox ColorBias
Bullish IFVGClose above top of bearish FVGTealLong setup active
Bearish IFVGClose below bottom of bullish FVGPurpleShort setup active

Only the first IFVG of each type per day is registered. Once set, it remains active for the signal window.

Order Block (Supporting Confluence)

An Order Block is identified as the last candle of the opposing color before a significant displacement move. It provides structural support/resistance confirming the IFVG entry zone.

OB TypeDetected ByBox ColorRole
Bullish OBLast bearish candle before upside displacementBlue (faded)Support — SL placed below OB low
Bearish OBLast bullish candle before downside displacementOrange (faded)Resistance — SL placed above OB high

Step 5 — Entry Signal (All 3 Must Align)

Long Entry

Range
Locked
+
Low
Swept
+
Bull
IFVG
+
Bull OB
Present
+
Signal
Window
BUY
Long

Short Entry

Range
Locked
+
High
Swept
+
Bear
IFVG
+
Bear OB
Present
+
Signal
Window
SELL
Short
One Position at a Time Entries are only placed when strategy.position_size == 0. The strategy will not add to an existing position. Only one trade per session per direction.

Risk Management — Structure-Based

Unlike ATR-based models, this strategy uses structural levels for stops and targets. The stop is placed beyond the confirming Order Block; the target is the opposite end of the 8AM range. The Risk:Reward ratio is calculated dynamically and displayed on the entry label.

ParameterLong TradeShort Trade
Stop LossBelow Bull OB lowAbove Bear OB high
Take Profit8AM Range High8AM Range Low
R:RCalculated dynamically — shown on entry label
Qty1 MNQ contract (default)
Commission$0.62 per contract (NinjaTrader rate)
Slippage2 ticks ($1.00 per contract)
Why Structure Over ATR The 8AM range model targets a defined price destination (the opposite range end). Using the range end as TP and the OB as the structural SL gives you a logical, price-action-driven R:R rather than a fixed multiple. High-probability setups on MNQ typically yield 2:1 to 4:1.

All Configurable Inputs

GroupParameterDefaultNotes
SessionTimezoneAmerica/New_YorkAll session logic is timezone-aware
SessionSignal Window Open (Hour)9Hour at which signals can fire (9 = 9AM NY)
SessionSignal Window Close (Hour)12No new entries after this hour (12 = noon)
Model ParametersMin FVG Size (points)0.25Minimum gap size to qualify as FVG — filters micro-gaps
Model ParametersOB Lookback (bars)10Number of bars to look back when identifying the Order Block candle
VisualsShow FVG BoxestrueToggle green/red FVG boxes on chart
VisualsShow IFVG ZonestrueToggle teal/purple IFVG boxes on chart
VisualsShow Order BlockstrueToggle blue/orange OB boxes on chart
VisualsShow DashboardtrueToggle the top-right status dashboard
AlertsWebhook Secrettac_com_alpha_9Shared NIGHTHAWK authentication key — embedded in all payloads
TestingForce Manual TriggerfalseFires a test webhook — use with "Once Per Bar" alert setting

Chart Visuals

Range High line (aqua dashed)
Range Low line (yellow dashed)
Bullish FVG box (green, faded)
Bearish FVG box (red, faded)
Bullish IFVG zone (teal)
Bearish IFVG zone (purple)
Bullish Order Block (blue)
Bearish Order Block (orange)
Signal window background tint
ElementStyleDescription
Range HighAqua dashed line (width 2)8AM hour high — extends through signal window
Range LowYellow dashed line (width 2)8AM hour low — extends through signal window
HIGH SWEPT labelRed label (above bar)Fires when price takes out 8AM high · shows TP target
LOW SWEPT labelGreen label (below bar)Fires when price takes out 8AM low · shows TP target
Bullish FVGGreen box (85% transparent)3-bar bullish imbalance — potential demand zone
Bearish FVGRed box (85% transparent)3-bar bearish imbalance — potential supply zone
Bullish IFVGTeal box (65% transparent)Bearish FVG reclaimed — active long entry zone
Bearish IFVGPurple box (65% transparent)Bullish FVG reclaimed — active short entry zone
Bullish OBBlue box (82% transparent)Last bearish candle before upside displacement
Bearish OBOrange box (82% transparent)Last bullish candle before downside displacement
BUY entry labelLime triangle (below bar)Shows SL, TP, and R:R on confirmed long signal
SELL entry labelRed triangle (above bar)Shows SL, TP, and R:R on confirmed short signal
Signal window backgroundBlue tint (95% transparent)Active during 9AM–12PM when range is locked

Live Status Dashboard

An 8-row table in the top-right corner shows the current state of all model conditions. Each row updates on every bar.

RowWhen Green (✓)When Gray (✗)
Range Set8AM range is locked and active8AM hour not yet complete
High Swept8AM range high has been taken outHigh intact
Low Swept8AM range low has been taken outLow intact
IFVG ReadyAt least one IFVG is confirmed for the dayNo IFVG yet
OB ActiveAt least one Order Block has been identifiedNo OB yet
Signal WindowCurrent time is within 9AM–12PM NYOutside signal window
BiasLONG · LONG SETUP · SHORT · SHORT SETUP · WAIT

Alert Messages — JSON Payload

The model sends payloads via alert_message on strategy.entry() and via 6 alertcondition() triggers for granular monitoring.

Long Entry (BUY)

{ "secret": "tac_com_alpha_9", "model_id": "8AM-RSM-MNQ-V1", "ticker": "MNQ1!", "action": "BUY", "price": 21050.25, "metadata": { "tier": "8AM_SWEEP_REVERSAL", "sl": 21025.00, "tp": 21125.50, "note": "Low swept + bull IFVG + bull OB", "timestamp": 1747875600000 } }

Short Entry (SELL)

{ "secret": "tac_com_alpha_9", "model_id": "8AM-RSM-MNQ-V1", "ticker": "MNQ1!", "action": "SELL", "price": 21125.50, "metadata": { "tier": "8AM_SWEEP_REVERSAL", "sl": 21150.75, "tp": 21050.25, "note": "High swept + bear IFVG + bear OB", "timestamp": 1747875600000 } }

Alert Conditions (6 total)

Alert NameEventPayload Field
8AM High SweptRange high taken out"event": "HIGH_SWEPT"
8AM Low SweptRange low taken out"event": "LOW_SWEPT"
Bullish IFVG FormedBearish FVG reclaimed long"event": "BULL_IFVG"
Bearish IFVG FormedBullish FVG reclaimed short"event": "BEAR_IFVG"
Long Entry SignalFull 3-factor long confluence"action": "BUY"
Short Entry SignalFull 3-factor short confluence"action": "SELL"

Manual Test Trigger

{ "secret": "tac_com_alpha_9", "model_id": "8AM-RSM-MNQ-V1", "action": "TEST", "metadata": { "note": "MANUAL_TRIGGER", "timestamp": 1747875600000 } }

Toggle FORCE MANUAL TRIGGER in the Testing input group and set the alert to "Once Per Bar" to fire the test payload to your NIGHTHAWK endpoint.

Sentinel DB Registration

FieldValue
model_id8AM-RSM-MNQ-V1
statusOBSERVATION
Migrationv1.5 — 2026-05-21
tier field8AM_SWEEP_REVERSAL
OBSERVATION Status The model is registered in Sentinel but not yet routing live orders. Run the backtest on MNQ1! at the 1m or 5m timeframe across at least 3 months of data before promoting to LIVE. Verify that the SL and TP fields in the payload match what the strategy executes internally.

TradingView Setup

  1. Open a 1m or 5m chart on MNQ1! (Micro Nasdaq Futures — continuous contract). Ensure the chart is set to New York session timezone so the 8AM hour displays correctly.
  2. Open Pine Editor (Alt+P), paste 8am_range_sweep_mnq.pine, click Add to chart.
  3. Verify the aqua/yellow dashed range lines appear at the correct 8AM price levels. Check that the background tint activates at 9AM.
  4. Run the Strategy Tester. Review individual trades to confirm sweep → IFVG → OB logic is firing correctly before relying on the aggregated stats.
  5. To set up granular alerts: hover over the indicator → ···Add alert on 8AM-RSM-MNQ. Configure separate alerts for each of the 6 alertconditions.
  6. Set Webhook URL to your NIGHTHAWK endpoint. The full SL and TP are embedded in the BUY/SELL payload.
  7. Toggle FORCE MANUAL TRIGGER to ON, set the alert to "Once Per Bar", and verify the TEST payload arrives at your endpoint before enabling live signal alerts.
Backtest Limitation — Intraday Range TradingView's Strategy Tester on 1m bars may not replay the exact bar sequence for 8AM range formation on historical data. Use 5m bars for the initial backtest to reduce bar-replay artifacts, then validate on 1m in forward-testing (paper trade) mode.