8AM Reversal Model — Calibrated for Micro E-mini S&P 500 Futures (MES1!)
IRON-SIGHT-V2.1 is a direct calibration of V2 for the Micro E-mini S&P 500 Futures (MES) contract on CME. The core logic is identical to V2 — 8AM manipulation range, liquidity sweep, IFVG confirmation — but the TP and SL tick values have been adjusted to match realistic intraday MES targets.
V2's 400-tick TP was calibrated for a different instrument. On MES, 400 ticks = 100 S&P points, which is an unrealistic single-session target. V2.1 reduces TP to 160 ticks (40 S&P points / $200 per contract), setting a more achievable 3.2:1 R:R while keeping the same 50-tick SL.
MES1! (continuous contract) ·
Tick Size: 0.25 S&P points ·
Tick Value: $1.25 per tick / per contract
| Parameter | V2 Default | V2.1 (MES) | Rationale |
|---|---|---|---|
| Take Profit | 400 ticks | 160 ticks | 400 ticks = 100 S&P pts on MES — unrealistic intraday. 40 pts is achievable in a single 9AM–12PM session. |
| Stop Loss | 50 ticks | 50 ticks | Unchanged. 12.5 S&P points provides adequate clearance below the IFVG entry without being too wide. |
| R:R Ratio | 8:1 | 3.2:1 | V2's 8:1 was aspirational. 3.2:1 is realistic for intraday reversal trades and requires a lower win rate to be profitable. |
| model_id in payload | IRON-SIGHT-V2 | IRON-SIGHT-V2.1 | Separate model registration in SENTINEL DB allows independent P&L tracking for each calibration. |
Logic is identical to V2. The only parameter differences are TP and the model_id in the alert payload.
strategy.position_size == 0. The strategy will not add to or
flip an existing position without first being flat.
The alert_message is sent as the webhook POST body when TradingView fires the alert. All fields are required by the NIGHTHAWK server.
| Field | Description |
|---|---|
secret | Auth token. NIGHTHAWK returns 401 Unauthorized if missing or wrong. |
model_id | Routes signal to the correct SENTINEL DB record. Must match exactly. |
ticker | TradingView's full symbol ID including exchange prefix. |
action | BUY, SELL, or TEST. |
price | Close price of the bar that triggered the entry. |
metadata.market | Always "MES" for V2.1 — used for downstream routing and logging. |
metadata.timestamp | Unix millisecond timestamp from TradingView's timenow. |
The dashboard appears in the top-right corner of the chart and updates in real time on the final bar (barstate.islast). It shows 6 status rows covering all conditions required for a valid entry.
| Row | Condition | Green When |
|---|---|---|
| 8AM Range Set | not na(range_8am_high) and not na(range_8am_low) | The 8AM hour has passed and range is captured |
| Liquidity Swept | swept_high or swept_low | Price has broken above or below a reference level |
| IFVG Confirmed | ifvg_long or ifvg_short | An IFVG pattern has formed on the current bar |
| Trading Window (9-12 NY) | can_trade (hour ≥ 9 and < 12) | Current time is within the active execution window |
| Sweep Direction | Text display | Shows "Low" (long bias) or "High" (short bias) |
| Signal Bias | long_condition / short_condition | All conditions aligned — LONG or SHORT bias active |
Found in the Execution Logic settings group. When toggled ON and an alert is active with condition set to "Any alert() function call", the strategy fires a TEST payload to NIGHTHAWK immediately on the next bar close.
strategy.entry(alert_message=...) — set TradingView alert condition
to Order fills. The manual test block uses alert() — set condition to
Any alert() function call. These require separate alerts in TradingView.
Use this block to verify the full NIGHTHAWK pipeline is operational before trading sessions without waiting for a live signal to form.
| Group | Parameter | V2.1 Default | Notes |
|---|---|---|---|
| Mission Timing | 8AM Range Start Hour | 8 | Hour in NY time when range tracking begins |
| Mission Timing | 8AM Range End (NY Open) | 9 | Hour when trading window opens and range locks |
| Mission Timing | Timezone | America/New_York | Must match your target session |
| Execution Logic | Require IFVG for Entry | true | If false, enters on sweep alone (less selective) |
| Execution Logic | Take Profit (Ticks) | 160 | MES: 40 S&P pts / $200 per contract |
| Execution Logic | Stop Loss Buffer (Ticks) | 50 | MES: 12.5 S&P pts / $62.50 per contract |
| Execution Logic | FORCE MANUAL TRIGGER | false | Toggle ON to fire a TEST webhook for pipeline verification |
MES1! (CME Micro E-mini S&P 500 continuous contract). Use 5-minute or 15-minute timeframe for intraday 8AM setups.Alt+P), clear existing code, paste iron_sight_v2.1.pine, click Add to chart.America/New_York. TP is pre-set to 160 ticks, SL to 50 ticks for MES.{"status":"Logged"} with model_status: "OBSERVATION" or "LIVE".| Change | V2 | V2.1 |
|---|---|---|
| Take Profit | 400 ticks | 160 ticks |
| Stop Loss | 50 ticks | 50 ticks (unchanged) |
| R:R Ratio | 8:1 | 3.2:1 |
| model_id | IRON-SIGHT-V2 | IRON-SIGHT-V2.1 |
| metadata.market field | Not present | "MES" |
| Dashboard header | "IRON-SIGHT-V2" | "IRON-SIGHT-V2.1 | MES" |
| Dashboard trading window label | "Trading Window" | "Trading Window (9-12 NY)" |
| color.cyan bug | Fixed → color.aqua | Carried forward (fixed) |
| ta.crossedout bug | Fixed → ta.crossover/crossunder | Carried forward (fixed) |