8AM Range Sweep Model — Micro Nasdaq Futures · ICT/SMC 5-Step Model · FVG · IFVG · Order Block Confluence
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.
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.
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.
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 Type | Condition | Box Color | Meaning |
|---|---|---|---|
| Bullish FVG | low[0] > high[2] | Green (faded) | Gap up — demand imbalance |
| Bearish FVG | high[0] < low[2] | Red (faded) | Gap down — supply imbalance |
A minimum FVG size filter (default 0.25 points) removes micro-gaps from noise.
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 Type | Trigger | Box Color | Bias |
|---|---|---|---|
| Bullish IFVG | Close above top of bearish FVG | Teal | Long setup active |
| Bearish IFVG | Close below bottom of bullish FVG | Purple | Short setup active |
Only the first IFVG of each type per day is registered. Once set, it remains active for the signal window.
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 Type | Detected By | Box Color | Role |
|---|---|---|---|
| Bullish OB | Last bearish candle before upside displacement | Blue (faded) | Support — SL placed below OB low |
| Bearish OB | Last bullish candle before downside displacement | Orange (faded) | Resistance — SL placed above OB high |
strategy.position_size == 0. The strategy will not
add to an existing position. Only one trade per session per direction.
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.
| Parameter | Long Trade | Short Trade |
|---|---|---|
| Stop Loss | Below Bull OB low | Above Bear OB high |
| Take Profit | 8AM Range High | 8AM Range Low |
| R:R | Calculated dynamically — shown on entry label | |
| Qty | 1 MNQ contract (default) | |
| Commission | $0.62 per contract (NinjaTrader rate) | |
| Slippage | 2 ticks ($1.00 per contract) | |
| Group | Parameter | Default | Notes |
|---|---|---|---|
| Session | Timezone | America/New_York | All session logic is timezone-aware |
| Session | Signal Window Open (Hour) | 9 | Hour at which signals can fire (9 = 9AM NY) |
| Session | Signal Window Close (Hour) | 12 | No new entries after this hour (12 = noon) |
| Model Parameters | Min FVG Size (points) | 0.25 | Minimum gap size to qualify as FVG — filters micro-gaps |
| Model Parameters | OB Lookback (bars) | 10 | Number of bars to look back when identifying the Order Block candle |
| Visuals | Show FVG Boxes | true | Toggle green/red FVG boxes on chart |
| Visuals | Show IFVG Zones | true | Toggle teal/purple IFVG boxes on chart |
| Visuals | Show Order Blocks | true | Toggle blue/orange OB boxes on chart |
| Visuals | Show Dashboard | true | Toggle the top-right status dashboard |
| Alerts | Webhook Secret | tac_com_alpha_9 | Shared NIGHTHAWK authentication key — embedded in all payloads |
| Testing | Force Manual Trigger | false | Fires a test webhook — use with "Once Per Bar" alert setting |
| Element | Style | Description |
|---|---|---|
| Range High | Aqua dashed line (width 2) | 8AM hour high — extends through signal window |
| Range Low | Yellow dashed line (width 2) | 8AM hour low — extends through signal window |
| HIGH SWEPT label | Red label (above bar) | Fires when price takes out 8AM high · shows TP target |
| LOW SWEPT label | Green label (below bar) | Fires when price takes out 8AM low · shows TP target |
| Bullish FVG | Green box (85% transparent) | 3-bar bullish imbalance — potential demand zone |
| Bearish FVG | Red box (85% transparent) | 3-bar bearish imbalance — potential supply zone |
| Bullish IFVG | Teal box (65% transparent) | Bearish FVG reclaimed — active long entry zone |
| Bearish IFVG | Purple box (65% transparent) | Bullish FVG reclaimed — active short entry zone |
| Bullish OB | Blue box (82% transparent) | Last bearish candle before upside displacement |
| Bearish OB | Orange box (82% transparent) | Last bullish candle before downside displacement |
| BUY entry label | Lime triangle (below bar) | Shows SL, TP, and R:R on confirmed long signal |
| SELL entry label | Red triangle (above bar) | Shows SL, TP, and R:R on confirmed short signal |
| Signal window background | Blue tint (95% transparent) | Active during 9AM–12PM when range is locked |
An 8-row table in the top-right corner shows the current state of all model conditions. Each row updates on every bar.
| Row | When Green (✓) | When Gray (✗) |
|---|---|---|
| Range Set | 8AM range is locked and active | 8AM hour not yet complete |
| High Swept | 8AM range high has been taken out | High intact |
| Low Swept | 8AM range low has been taken out | Low intact |
| IFVG Ready | At least one IFVG is confirmed for the day | No IFVG yet |
| OB Active | At least one Order Block has been identified | No OB yet |
| Signal Window | Current time is within 9AM–12PM NY | Outside signal window |
| Bias | LONG · LONG SETUP · SHORT · SHORT SETUP · WAIT | |
The model sends payloads via alert_message on strategy.entry() and via 6 alertcondition() triggers for granular monitoring.
| Alert Name | Event | Payload Field |
|---|---|---|
| 8AM High Swept | Range high taken out | "event": "HIGH_SWEPT" |
| 8AM Low Swept | Range low taken out | "event": "LOW_SWEPT" |
| Bullish IFVG Formed | Bearish FVG reclaimed long | "event": "BULL_IFVG" |
| Bearish IFVG Formed | Bullish FVG reclaimed short | "event": "BEAR_IFVG" |
| Long Entry Signal | Full 3-factor long confluence | "action": "BUY" |
| Short Entry Signal | Full 3-factor short confluence | "action": "SELL" |
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.
| Field | Value |
|---|---|
| model_id | 8AM-RSM-MNQ-V1 |
| status | OBSERVATION |
| Migration | v1.5 — 2026-05-21 |
| tier field | 8AM_SWEEP_REVERSAL |
Alt+P), paste 8am_range_sweep_mnq.pine, click Add to chart.