ICT/SMC Institutional Intelligence -- Dual Detection [IID]ICT/SMC Institutional Intelligence — Dual Detection
An integrated ICT/SMC structural analysis system built around two independent verdict engines — Continuation and Reversal — that score the same market in parallel and surface what the price action is doing, where the market structure stands, and whether continuation or reversal pressure is building. The system describes conditions. It does not issue buy or sell instructions.
---
█ What Makes It Different
Dual independent verdict engines.
Continuation and Reversal score simultaneously, against the same chart, with configurable conflict resolution — Show Both , Dominant Wins , or CONFLICT Flag — so traders see when both pressures are real, when one is dominant, and when the two are fighting.
-
Multi-factor confluence engine across three categories.
A composite confluence score grouped into Zone , Reference , and Timing buckets, so traders can see what kind of confluence is present, not just how much.
-
Real-time Intelligence Briefing.
A three-column briefing — STATE / OBSERVED / TRACKING — that translates the engine readings into plain structural language and tracks live events like pending sweep confirmations as they unfold.
---
█ Key Capabilities
The system includes BUT NOT LIMITED TOO:
Dual verdict engines
(Continuation and Reversal) scoring INACTIVE → EARLY → FORMING → BUILDING → CONFIRMED, with timeframe-aware multipliers and modifier handling for consolidation, lunch dead-zone, NY overlap, and active sweeps.
-
Structure detection
including Break of Structure ( BOS ), Change of Character ( CHoCH ), and Market Structure Shift ( MSS ) across configurable timeframes, with validation-event freshness gating.
-
Zone management
for Order Blocks (OB) , Fair Value Gaps (FVG) , Breaker Blocks (BB) , Balanced Price Range (BPR) , and Inverted FVG (iFVG) — each treated as dynamic support and resistance with full lifecycle tracking (formation, mitigation, inversion, aging, pruning).
-
Liquidity tracking
including liquidity pool detection, liquidity sweep identification, and a sweep-reclaim confirmation-window finite-state machine that distinguishes a wick raid from a confirmed reclaim with follow-through.
-
Multi-factor confluence scoring
across Zone , Reference , and Timing categories, with configurable STRONG / STANDARD / WEAK tier thresholds.
-
Five structural phases —
Expansion, Pullback, Consolidation, Continuation, Reversal — classified at chart-timeframe speed, each with its own optional alert.
-
Multi-timeframe market-structure grid
showing structure, swing position, zone presence, and trend per row. Rows hidden from the dashboard still compute for scoring.
-
Premium / Discount labelling and Optimal Trade Entry (OTE) zone detection (21–38% discount, 62–79% premium) from the active swing range.
-
Kill-zone awareness
for Asian, London, NY AM, and NY PM sessions, with a lunch dead-zone modifier and asset-class-aware gating.
-
Three-EMA trend system and anchored VWAP (Daily / Weekly / Session / Monday anchors) with previous-anchor reference.
-
Session reference levels
including previous-day high, previous-day low, and midnight open.
-
Impulse classification
with displacement and absorption recognition, volume-climax exhaustion detection (opt-in), and an order-flow bias layer.
-
SMT divergence
against up to two correlated tickers, with configurable inverse-correlation logic.
-
Intelligence Briefing
delivering STATE / OBSERVED / TRACKING context on every confirmed bar.
-
Comprehensive alert system
with alert conditions across three categories, individually toggleable, gated by bar close.
-
Multi-asset support
with asset-class-aware behaviour for forex, crypto, equity-like instruments, and other classes.
! (dashboard-overview.png)
(Screenshot: Full IID Dual dashboard on BTCUSDT during a Pullback phase — Market State verdict band, three-column Intelligence Briefing, multi-timeframe market structure grid, VWAP anchoring, confluence scoring, chart-timeframe intelligence, and Market Context with MAG / IMP / LIQ / BIAS)
---
█ Who It's For
Whether you follow ICT methodology , trade Smart Money Concepts (SMC) setups, or work in pure price action analysis, IID Dual is built to give you structural context without prescribing entries. It is designed for traders who want to read the market, not be told what to do — practitioners who already have an entry framework and want a measured, transparent map of the conditions around their setup.
---
█ How It Works — The System
The system reads the chart in layers: structural events, zone behaviour, liquidity dynamics, confluence, and live tracking — all feeding two parallel verdict engines that score the picture in tandem. The architecture is integrative, not modular-in-isolation. Each layer feeds the next:
Structure detection runs first. Manual pivot logic with an ATR filter generates swing highs and lows, which produce BOS, CHoCH, and MSS validation events. These events have freshness windows — stale structure does not count toward the verdict.
Zone management tracks every reactive level the structure produces. Order Blocks, Fair Value Gaps, Breaker Blocks, BPRs, and inverted FVGs are created, aged, tested, mitigated, and pruned. The system knows which zones are active, which have been touched, and which have inverted.
Liquidity tracking maintains equal-high and equal-low pools and watches for sweeps. When a sweep occurs, a confirmation-window finite-state machine arms, then progresses through reclaim and follow-through — distinguishing a real institutional rotation from a stop-hunt that fails to confirm.
The Intelligence Briefing surfaces what matters from this stream in plain language: what state the system reads, what structural evidence supports it, and what live events are being tracked right now.
The confluence engine measures alignment by counting the active factors across Zone, Reference, and Timing categories, then classifying the percentage into STRONG, STANDARD, or WEAK tiers.
Both verdict engines score this picture in parallel. The Continuation engine combines higher-timeframe bias, confluence, kill-zone alignment, impulse, liquidity-path clearance, volume, and structural bonuses.
The Reversal engine requires hard gates — fresh CHoCH/MSS/BB-retest against bias, plus a prior validated sweep — before it allows a score, then composes its tier from validation age, sweep quality, confluence, impulse, volume, FVG, equal-highs/lows, kill-zone, and SMT divergence.
Conflict routing decides what the trader sees when both engines are active: both sides displayed, the configured dominant engine wins, or an explicit CONFLICT flag is raised.
The trader decides.
! (engine-continuation-breakdown.png)
(Screenshot: Continuation engine on EUR/USD 15M during a bullish trending move — FORMING ▲ BULL 54%, with full component breakdown visible: BIAS 1 + CON 16 + KZ 5 + IMP 6 + LIQ 0 + B8 = 54%, driven by CON; Reversal independently inactive)
! (engine-reversal-breakdown.png)
(Screenshot: Reversal engine on US30 15M after a confirmed CHoCH event — CONFIRMED ▼ BEAR 74%, with full component breakdown visible: VAL 25 + SWP 20 + CON 8 + IMP 7 + KZ 0 + E5 = 74% (CHoCH); Continuation independently EARLY ▲ BULL 22%)
---
█ The Dashboard
The dashboard is a structured top-to-bottom readout, with seven bands designed to be read in order:
Market State
(top) — both engine tiers and percentages plus the central market-state classification
Intelligence Briefing —
STATE / OBSERVED / TRACKING in three cards
Multi-timeframe structure grid —
one row per configured timeframe with TF, swing position, structure pattern, OB up/down, BB, FVG, and trend
VWAP row —
current anchor distance and previous anchor reference
Confluence —
tier summary plus factor breakdown by Zone, Reference, and Timing
Chart Timeframe Intelligence —
volume, swing percentile, volatility, session, and kill-zone status
Market Context —
MAG (nearest magnet), IMP (impulse history), LIQ (sweep status), and BIAS (multi-timeframe consensus)
Every row is individually toggleable. The dashboard position and background opacity are configurable. Critically, structure grid rows hidden from view still compute for scoring — traders can simplify what they look at without losing analytical depth.
! (dashboard-annotated-walkthrough.png)
(Screenshot: Annotated walkthrough of every dashboard band — Market State, Intelligence Briefing, multi-timeframe Structure Grid, VWAP, Confluence, Chart Timeframe Intelligence, and Market Context — each labelled in reading order)
! (structure-grid-closeup.png)
(Screenshot: Per-timeframe structure grid showing one row per configured timeframe with swing position, structure pattern, order block and FVG presence, breaker blocks, and trend — multi-timeframe discount and sweep alignment visible vertically down the columns)
---
█ The Intelligence Briefing
No other ICT/SMC indicator delivers this layer — a three-column briefing that translates the engine readings into plain structural language, telling the trader what the system reads, what evidence it sees, and what events it's tracking right now.
STATE classifies the current market condition —
Continuation phase, Reversal phase, Consolidation, Expansion, Pullback, or DUAL STAND-DOWN when neither engine is sufficiently active — and identifies which engine is dominant when both are scoring.
OBSERVED
describes the structural evidence the system has registered around the current state, expressed in ICT/SMC vocabulary rather than raw values.
TRACKING
is the live monitor. When a liquidity sweep arms the confirmation window, TRACKING shows the pending event, the countdown to the confirmation deadline, and the active kill-zone context. When no event is pending, it shows the directional narrative or stays quiet — silence is information too.
The briefing updates on the last confirmed bar so traders read a stable, non-flickering snapshot of what the system understands about this moment in the chart.
! (intelligence-briefing-closeup.png)
(Screenshot: Intelligence Briefing close-up — STATE classifies the current market reading, OBSERVED describes the structural evidence in ICT/SMC vocabulary, TRACKING reports live events including pending sweep confirmations and active kill-zone context)
---
█ Setup & Configuration
The defaults work out of the box, but a few inputs are worth knowing about — they determine which timeframes the indicator reads from, how its multi-TF grid is structured, and how patient the indicator is when classifying impulse and structure. The three subsections below cover each in turn. All three are independent — changing one does not change the others.
█ Context & Validation Timeframes
The indicator's primary anchor points are two timeframe inputs. Context timeframe (bias) sets the higher TF the indicator reads bias from. Validation timeframe (confirmation) sets the TF where structural events (BOS, CHoCH, MSS) need to confirm before the engines treat them as valid.
The defaults are 1 hour Context and 15 minutes Validation. These match a Day Trader's typical workflow — a higher-TF bias view paired with a lower-TF confirmation window. Scalpers will usually want lower values for both (15m Context / 1m Validation is common). Swing traders running H4 or daily charts will want higher values (4h Context / 1h Validation, or higher).
The two inputs work together but are independent. Changing Context doesn't change Validation; changing either doesn't affect the Trader Type setting or the Structure Grid configuration. Pick the pair that matches the structural read you actually trade — the indicator does the rest.
! (setup-context-validation.png)
(Screenshot: Properties → Inputs → Timeframes — Context timeframe (bias) and Validation timeframe (confirmation) at their defaults of 1 hour / 15 minutes)
█ Structure Grid Configuration
The 7-Timeframe Market Structure Grid is fully customisable. Each of the seven rows has two settings: a timeframe selector (any TF from 1-minute to monthly) and a Show toggle.
The default ladder is Weekly, Daily, 4-hour, 1-hour, 15-minute, 5-minute, 1-minute — covering the most common trading horizons from high-timeframe context down to execution. Any row can be reassigned to a different TF, and rows can be enabled or disabled individually using their Show checkboxes. A trader running a non-standard ladder (e.g., only the four TFs they actually trade) can hide the rest.
Hidden rows still compute for scoring. This is important — the indicator's engines, BIAS aggregation, and confluence logic read from all seven configured rows regardless of which are visible. Hiding a row removes it from the dashboard display, not from the analysis. Customise the visible ladder to match what you want to see ; the indicator continues to use the full 7-TF data for its decisions.
! (setup-structure-grid.png)
(Screenshot: Properties → Inputs → Timeframes — the seven Structure row dropdowns at their defaults (Weekly → 1-minute ladder), each with an individual Show checkbox; in this view, only the 15-minute row is set to Show)
█ Trader Type
Trader Type is a single dropdown with three values: Scalper, Day Trader (default), and Swing. It controls how patient the indicator is.
The setting doesn't change which timeframes the indicator reads. What it changes is the sensitivity applied to that data. Scalper reacts faster: smaller candle bodies count as meaningful, shorter consolidations register, recent structural events qualify as fresh. Swing waits longer: bodies need to be more decisive, consolidations more developed, events more recent. Day Trader sits between them.
The effect shows up in several places — IMP row candle classifications in Market Context, TREND column readings in the Structure Grid, the Structural Phase header in the Verdict Banner, and delivery-state consolidation detection. The same chart and timeframes will produce different engine reads under different Trader Types because the indicator is asking different questions about the same data.
Pick Trader Type to match your trading style — how long you typically hold trades and how patient you are waiting for setups — not the chart timeframe you happen to be viewing. A scalper running a 1-minute chart will likely want Scalper; a swing trader on H4 will likely want Swing. But the mapping isn't enforced — Trader Type just tells the indicator how strict to be.
Trader Type and the timeframe inputs are independent. Selecting a different Trader Type does not change your Context or Validation Timeframe values. For a complete style-switch, change all three together.
! (setup-trader-type.png)
(Screenshot: Properties → Inputs → Trader Profile — the Trader type dropdown open, showing Scalper, Day Trader (default, highlighted), and Swing)
---
█ Reading the Indicator on a Live Chart
The dashboard mockups above show what each section looks like. The four worked examples below show what each section does — captured from real TradingView replay sessions, with the indicator running on price as it would in normal use. Each scenario teaches one state the system can be in.
Conditions Ripening — system naming the pre-confirmation state
! (scenario-conditions-ripening.png)
(Screenshot: XAUUSD 5M during live replay — displacement and impulse are building; the system reports the setup before any signal fires)
(Dashboard view: Verdict Banner + Market Context. Other sections hidden.)
Most indicators are silent until conditions confirm, then they fire. IID Dual reports the state before the signal: when displacement and impulse start building a directional case, the Market State band names it explicitly as CONDITIONS RIPENING · FORMING · PRE-PHASE. The system isn't predicting; it's describing what it sees, with timestamps.
Underneath, the impulse layer doesn't just report a single reading — it shows the progression : HLLW → WEAK → SLID → NOW: STRG ↓ at 138% volume, momentum present. Four stages, each named, each timestamped.
The displacement isn't a wick; the case is building. If the next bars deliver continuation, the engine will progress from FORMING to BUILDING to CONFIRMED. If the move stalls, the ripening narrative dissolves and the system moves on.
█ TRACKING in Action — sweep confirmation window
! (scenario-tracking-in-action.png)
(Screenshot: XAUUSD 5M during live replay — a chart sweep arms the confirmation window; the system reads the event and counts down)
(Dashboard view: Verdict Banner + Intelligence Briefing + Pending Strip. Other sections hidden.)
A sweep alone isn't a reversal — it's a question. When price takes out a swing high or low and the confirmation window arms, the dashboard surfaces the pending event explicitly — here a bear sweep at 4762.905, 4 of 5 bars remaining — and the TRACKING column counts down bar by bar so the trader knows whether they're watching a confirmed reclaim or a failed raid. Above, the verdict banner shows Reversal already reading EARLY ▼ BEAR 81% — the engines have priced the structural case; the pending sweep is the live evidence that confirms or invalidates it.
The dashboard isn't predicting; it's reading the chart in real time and reporting what it sees. If the bar closes back inside the original range before the counter expires, the sweep is confirmed and the structural-reversal case strengthens. If the window expires without a clean close, the raid failed and the system moves on.
█ Divergent Signals — both engines speaking at once
! (scenario-divergent-signals.png)
(Screenshot: XAUUSD 5M during live replay — both engines scoring the same chart: Continuation FORMING bear, Reversal BUILDING bull — the system flags the divergence explicitly)
(Dashboard view: Verdict Banner + Intelligence Briefing. Other sections hidden.)
Most indicators force a single directional read. IID Dual lets both engines speak. When a fresh MSS on chart arms the reversal case but the prior continuation hasn't fully invalidated, the dashboard shows both engines scoring at once — here Continuation FORMING ▼ BEAR 22% alongside Reversal BUILDING ▲ BULL 55%, with the Market State band reporting "DIVERGENT SIGNALS · OPPOSED · ENGINES SPLIT" and the sub-line stating "engines disagree . wait for resolution before acting." The STATE column in the Intelligence Briefing reinforces with "DIVERGENT SIGNALS ⚠ Conflict."
The system isn't choosing for the trader; it's reporting what it sees, in detail. If the trader has configured Dominant Wins , the higher-tier engine (here Reversal at 55%) takes the displayed read. If Show Both or CONFLICT Flag is set, the dashboard surfaces the disagreement rather than resolving it — leaving the read to the trader's judgement.
█ Confluence Breakdown — what KIND of confluence is active
! (scenario-confluence-breakdown.png)
(Screenshot: XAUUSD 5M during live replay — multiple timing factors firing while zone and reference categories sit partial; the dashboard splits the confluence score into its three constituent buckets)
(Dashboard view: Verdict Banner + Confluence row. Other sections hidden.)
Confluence usually arrives as a single number. IID Dual splits it. The CONFLUENCE row reports the headline — here 6/15 STANDARD mixed — but the three category lines beneath name exactly what kind of confluence is active: ZONE 2/7 , REFERENCE 0/4 inactive , TIMING 4/4 .
Read those three lines and the same 6/15 score tells a much sharper story. TIMING is fully saturated — every timing factor the system tracks is firing. ZONE is partial — a sweep and a premium/discount read, but no order block or FVG contribution.
REFERENCE is silent — no EMA or VWAP alignment in play. A trader who relies on EMA structure now knows their preferred confluence layer isn't contributing; a trader who weighs timing knows the timing-side case is as strong as it gets. The headline number is honest; the breakdown is where the read lives.
---
█ Component Reference
The four worked examples above teach what the system does in different market states. The nine entries below cover what each component shows , in isolation — each captured with only that component visible, so its structure and tooltips can be read without competition. The Properties panels in each image are the recipe; replicate any view by setting the same toggles.
█ Chart Overlays
! (anatomy-chart-overlays.png)
(Screenshot: EURUSD 15M — chart populated with the indicator's full visible vocabulary; Structure Grid configured to a single TF on the right as a bridge to the dashboard)
Chart Overlays are the indicator's chart-side teaching layer — they show you what the dashboard is actually reading from. Every zone, structural marker, and event tag the indicator draws directly on price corresponds to a cell or column somewhere in the dashboard.
Zones (OB, FVG, iFVG, BB, BPR) appear as coloured regions with right-edge labels naming what they are. Structural markers (BOS, CHoCH, MSS, DISP) sit at the bars where the indicator detected those events. Sweep tags (SWEEP, SMT BEAR, SMT BULL) mark the levels where liquidity was taken.
Chart overlays don't carry hover-tooltips themselves — the dashboard's other components do the descriptive work. Here, the 1-TF Structure Grid sits next to the chart as a bridge: each chart object the indicator draws on price (BEAR OB, BULL FVG, BOS, SWEEP) corresponds to a cell in the grid's columns.
The tooltip surfaced on the TF cell confirms the system-wide principle: "Timeframe row. Hidden rows can be toggled, but engine computation continues."
The chart-side vocabulary is foundational. Every other section in this reference reads from these objects — the Structure Grid summarises them across timeframes, the Confluence row counts them as factors, the engines score them through tier logic.
This view uses three toggles: Show dashboard, Show chart overlays, and Show 7-timeframe market structure grid (configured to one TF). The Properties panel on the left shows the configuration.
The full multi-timeframe treatment of chart objects is covered next, in the Structure Grid.
█ Verdict Banner
! (anatomy-verdict-banner.png)
(Screenshot: EURUSD 10M — engines scoring in opposition, Market State band naming the divergence; centre cell hovered)
The Verdict Banner is the dashboard's headline read — your one-glance answer to "what state is the market in right now?" . Three cells across the top: Continuation on the left, Reversal on the right, Market State between them. Above all three, a Structural Phase header names the broader regime.
The Market State cell carries a tooltip explaining each state's trigger. Here the band reads DIVERGENT SIGNALS, and the tooltip explains the rule: "One engine is BUILDING+ now while the other was BUILDING+ within 15 bars but faded below BUILDING." That last clause matters — the system holds memory of recently-strong engines for 15 bars, so a state can persist after the engine that earned it has cooled.
The Intelligence Briefing uses the same memory principle on a 30-bar window.
Read the banner as a system. The Continuation and Reversal cells each carry a tier (EARLY, FORMING, BUILDING, CONFIRMED) and a direction (BULL ▲, BEAR ▼) from that engine's own scoring.
The Market State band synthesises: CONDITIONS RIPENING when displacement is building, CONTINUATION PHASE or REVERSAL PHASE when one engine dominates, DIVERGENT SIGNALS when the engines disagree. The sub-line names what's driving the read — "driven by CON" or "driven by BIAS + IMP" . The Structural Phase header at the top (PULLBACK, EXPANSION, REVERSAL, CONSOLIDATION) frames the macro regime.
This view uses just two toggles: Show dashboard and Show verdict banner. The Properties panel on the left shows the configuration.
The Verdict Banner is the only section that always speaks — other sections can read quiet, but the banner always reports something , even if INACTIVE 0%.
█ Modifier & Trade-level Strip
! [Modifier strip — firing with engine impact](anatomy-modifier-strip.png)
(Screenshot: EURUSD 10M — Modifier strip showing tag with Verdict Banner context above; modifier cell hovered)
The Modifier & Trade-level Strip surfaces context the engine scores alone can't show — sessions, sweeps, conflicts, structural exceptions. It's a single row that sits beneath the Verdict Banner, normally quiet, lighting up only when a modifier is firing. When it does, it appears as a labelled tag — ` ` for a recent sweep contribution, ` ` for a session penalty, ` ` for a validation warning, and others.
The hovered tooltip explains the active modifier's effect: "Validation conflict cuts Continuation by 1 tier; Reversal treats it as N/A." That's not a passive label — the modifier is actively changing the engine output.
The Verdict Banner shown above reads Continuation FORMING ▼ BEAR 46%; without the conflict cut, the Continuation engine would presumably sit one tier higher. The double-exclamation ` ` notation marks high-priority modifiers — ones that materially change scoring rather than just nudging it.
Each modifier in the strip's vocabulary has its own scoring rule. The strip is the indicator's way of surfacing context that the engine logic alone wouldn't expose — sessions, sweeps, conflicts, structural exceptions.
This view uses three toggles: Show dashboard, Show verdict banner, and Show modifier and trade-level strip. The strip currently requires the Verdict Banner to be enabled to render — captured here as configured.
█ Intelligence Briefing
! (anatomy-intelligence-briefing.png)
(Screenshot: EURUSD 5M — REVERSAL EMERGING state with active sweep being tracked; STATE column hovered)
The Intelligence Briefing answers "what is the indicator actually seeing right now?" in plain structural language. It translates engine percentages into the kind of observation a trader would make at the chart. Three columns: STATE (the indicator's current classification), OBSERVED (what structural evidence has been detected), TRACKING (what live events the system is watching).
The STATE column tooltip surfaces an engine-logic principle: "Reversal is active now or was BUILDING+ within 30 bars, with Continuation outside handoff control." The system has memory — STATE doesn't just reflect the current bar's read, it reflects whether either engine was strong within a 30-bar window.
The handoff system manages how engines pass control between phases. The Verdict Banner uses a similar 15-bar memory on its DIVERGENT trigger; together, the two windows mean the indicator reports on recent history, not just instantaneous classification.
The OBSERVED column reports validated structural events — what the indicator has actually confirmed on chart. The TRACKING column reports pending events with countdowns — sweeps awaiting close confirmation, structural breaks under validation. When TRACKING is active, the system is mid-evaluation; when it's quiet, no live events are pending.
This view uses just two toggles: Show dashboard and Show Intelligence Briefing. The Properties panel on the left shows the configuration.
The Briefing is the dashboard's translation layer between the engines' percentages and the trader's structural vocabulary.
█ 7-Timeframe Market Structure Grid
! (anatomy-structure-grid.png)
(Screenshot: EURUSD 5M — the grid showing per-timeframe readings across Weekly through 1M, with the 5M row's SWING H/L cell hovered to surface its tooltip)
The 7-Timeframe Market Structure Grid is a per-timeframe snapshot of where price sits in its swing range, what structural events have validated, what unfilled order blocks and FVGs sit at proximity, and what trend mode each timeframe is reading. One row per configured timeframe; one column per structural dimension.
Each cell carries a hover-tooltip with its plain-language meaning. Hovering the 5M row's SWING H/L cell surfaces the tooltip shown: "5 52%. Equilibrium (EQ)." followed by a compact legend — the dot glyph marks the current position in the swing range, arrow glyphs name sweep and reclaim events, and the bracketed tags identify zone-state ( for premium, for discount, for equilibrium, for OTE — the optimal-trade-entry discount zone, for proximity to a swing extreme).
The reading "5 52%" means the 5-minute timeframe sits at the 52nd percentile of its current swing range — squarely in equilibrium. Every other cell in the grid carries the same kind of legend on hover.
The grid earns its keep when read vertically . A single timeframe showing tells you that one chart is in discount; five timeframes showing in the SWING H/L column tells you the whole structure is in discount and that any bullish entry sits with the broader ladder, not against it. The OB↑ and OB↓ columns work the same way — a column showing unfilled bullish order blocks at low proximity across multiple timeframes is a more durable read than the same reading on one timeframe alone.
The TREND column on the far right collapses each timeframe's macro mode into one tag (CON for continuation, PUL for pullback, TRN for transition, REV for reversal); scan that column for the macro picture.
This view uses just two toggles: Show dashboard and Show 7-timeframe market structure grid. The Properties panel on the left shows the configuration.
Hidden rows still compute for scoring. Turning a timeframe off the display removes it from the visible grid, not from the engine — the dashboard simplifies the view, not the analysis.
█ VWAP Row
! (anatomy-vwap-row.png)
(Screenshot: EURUSD 10M — VWAP row showing current and prior-day anchor values; VWAP label cell hovered)
The VWAP Row gives you the chart's daily fair-value reference without having to plot VWAP on chart. Three cells: a label, the current anchored VWAP with distance to price, and the prior-day completed VWAP value.
The label cell carries the row's hover-tooltip: "Selected VWAP anchor is the fair-value reference. Middle shows current anchored VWAP and distance; right shows the prior completed anchor value." The middle cell — here reading `D: 1.16335 dn | 0.02% above` — packs two facts: the VWAP value is dropping (`dn`), and current price sits 0.02% above the VWAP line. Direction and distance reported in the same cell. The right cell — here `PD: 1.16412` — shows where yesterday's VWAP closed, available as a reference even after the new day's anchor has reset.
VWAP serves the indicator's confluence and structural logic as a reactive level — a place price often respects on revisit. The row makes the reference and distance available at a glance without requiring VWAP to be drawn on chart.
This view uses just two toggles: Show dashboard and Show VWAP row. The Properties panel on the left shows the configuration.
The data cells don't carry their own tooltips; the label-level tooltip covers the whole row.
█ Confluence Row
! (anatomy-confluence-row.png)
(Screenshot: EURUSD 10M — confluence reading 7/15 STANDARD mixed; TIMING title hovered)
The Confluence Row answers "how much evidence is the indicator seeing for the current read?" — and where that evidence is coming from. A headline score (here 7/15 STANDARD with a progress bar and a composition label) sits above three category lines: ZONE, REFERENCE, and TIMING.
The TIMING title tooltip teaches one category's firing rule: "Timing factors activate during major killzones and while recent BOS, CHoCH, or MSS events are still fresh." The same activation logic applies by analogy to the others. ZONE factors fire when price interacts with structural zones (OB, FVG, BB, BPR, sweep proximity, premium/discount position).
REFERENCE factors fire when price relates to anchored references (EMA, VWAP). Each category has its own count of how many factors are firing out of how many possible.
The breakdown matters more than the headline number. Here ZONE reads 4/7 (partial), REFERENCE reads 0/4 inactive, TIMING reads 3/4 (near full). Same 7/15 score, but the composition tells a sharper story — timing-led and structurally-supported, with no reference-level alignment. The composition label at the top (here mixed ) names the dominant mode: structural-led when ZONE dominates, reference-led when REFERENCE dominates, timing-led when TIMING dominates, mixed when factors spread across categories.
This view uses just two toggles: Show dashboard and Show confluence row. The Properties panel on the left shows the configuration.
The headline number is honest; the breakdown is where the read lives.
█ Detail Strip
! (anatomy-detail-strip.png)
(Screenshot: EURUSD 10M — the strip showing all five chart-timeframe sub-components active; CHART TIMEFRAME INTELLIGENCE header hovered)
The Detail Strip is the indicator's compact answer to "what's happening right now on this chart?" . Five chart-timeframe context readings packed into one row: volume, swing position, volatility, session state, and killzone countdown.
The section header tooltip names the five sub-components in order: "Chart-timeframe inputs: volume, swing position, volatility, lunch state, and active killzone countdown." Each sub-component reports a small but distinct fact. VOL shows current volume relative to average. SWING reports where price sits within the current swing range and which zone-state applies ( , , , , ).
VLT reports volatility deviation from baseline (`+36%` here). The session indicator names the active session (EARLY LDN visible) including the lunch state mentioned in the tooltip. The killzone countdown reports time remaining in the active killzone window (`11% KZ LONDON 160m`).
These are all chart-timeframe inputs — they read from the timeframe of the chart, not from the multi-TF ladder. The Detail Strip is the indicator's compact context summary for "what's happening right now, on this chart."
This view uses just two toggles: Show dashboard and Show detail strip. The Properties panel on the left shows the configuration.
█ Market Context
! (anatomy-market-context.png) (Screenshot: EURUSD 10M — the four-row block showing structural context; IMP row hovered)
Market Context tells you what the broader trading environment is doing — where the magnets are, whether impulse is building, what liquidity is doing, and whether the multi-timeframe picture leans one way. Four rows sitting near the bottom of the dashboard: MAG (magnet proximity), IMP (impulse progression), LIQ (liquidity state), and BIAS (cross-timeframe directional conviction).
The IMP row tooltip reveals the indicator's candle-classification scoring rule: "STRONG/SOLID candles can score impulse; HOLLOW/ABSORBED/WEAK do not, though ABSORBED can add a Reversal pattern bonus." The IMP row shows the recent progression of candle classifications (`WEAK → SLID → SLID → NOW: STRG ↑ | 120% volume`) — a four-stage history of how impulse has built over recent bars. The Scenario 1 worked example above teaches this progression pattern in context.
Each row in Market Context reports a different aspect. MAG names the nearest magnetic level (prior-day high, VWAP, prior-day low) and which is closest. LIQ reports active liquidity state — sweep awaiting, sweep active, structural-side dominance (BSL = buy-side, SSL = sell-side). BIAS aggregates conviction from all seven Structure Grid timeframes into a single signed read; its calibration tiers are 7 full, 5+ leaning, 3+ scattered, and no consensus.
This view uses just two toggles: Show dashboard and Show market context rows. The Properties panel on the left shows the configuration.
The BIAS row's aggregation from seven structure rows is the dashboard's clearest cross-section data flow — confluence among components, not just within one.
---
█ Alerts
Alert conditions span three categories, each individually toggleable, all gated by bar close (no intra-bar firing) and with built-in per-family cooldowns:
ENGINE alerts
fire when the Continuation or Reversal engine enters CONFIRMED. Master toggles per engine gate alerts only — both engines continue computing and displaying regardless.
-
STRUCTURE alerts
fire on chart-timeframe phase transitions — Expansion, Pullback, Consolidation, Continuation, Reversal — and on confirmed sweep reclaims (after the confirmation-window FSM completes).
-
ZONE alerts
fire when price enters swing-high or swing-low proximity, or when price enters the OTE discount (21–38%) or OTE premium (62–79%) zones.
Use them à la carte. Subscribe to phase transitions for context, to engine confirmations for high-tier readings, or to zone entries for proximity-based attention.
! (alert-categories.png)
(Screenshot: Alert conditions grouped by category — ENGINE for verdict confirmations, STRUCTURE for chart-timeframe phase transitions and sweep-reclaim events, ZONE for swing proximity and OTE discount/premium entries — each individually toggleable and bar-close gated)
---
█ Getting Started
Add IID Dual to any chart. The indicator works on any instrument and any timeframe TradingView supports.
-
Collapse the chart legend (click the arrow next to the indicator name) for a cleaner view — all status-line clutter is already suppressed by design.
-
Read the dashboard. Market State and the Intelligence Briefing give the headline; the structure grid, confluence breakdown, and market context fill in the detail.
-
Configure timeframes under the Timeframes input group to match your workflow, then choose your alert categories.
---
█ Feeling Overwhelmed? Start Simple
Dashboards in this category are often described as overwhelming. IID Dual is built to be turned down. Every section — Verdict Banner, Intelligence Briefing, Structure Grid, VWAP, Confluence, CTI strip, Market Context, Footer, Chart Overlays — is individually toggleable from the Properties panel. Each of the four worked examples above shows a different dashboard configuration — the toggles in their Properties panels are the recipe.
! (feeling-overwhelmed-divergent-demo.png)
(Screenshot: EURUSD 10M · all sections lit · Cont 42% vs Rev 50% · the system speaking in full)
A clean starting point: leave only Market State and the Intelligence Briefing on, and add bands back as their meaning clicks. Anything you hide still computes for scoring — you simplify the view, not the analysis. Every dashboard cell and every input carries a plain-language tooltip on hover, and status-line clutter is already suppressed by design.
! (properties-display-toggles.png)
(Screenshot: Properties → Inputs → Display panel — every dashboard section individually toggleable, with (i) tooltip indicators that reveal plain-language explanations on hover for inputs and dashboard cells throughout)
---
█ ICT/SMC Concepts Used
Break of Structure (BOS) —
price closes beyond a prior swing in the existing trend direction, confirming continuation.
-
Change of Character (CHoCH) —
price closes beyond a prior swing against the current trend, signalling a possible regime change.
-
Market Structure Shift (MSS) —
a higher-conviction structural break, often paired with displacement, marking a transition between bullish and bearish delivery.
-
Order Block (OB) —
the last opposing candle before a displacement move, treated as an institutional reactive level.
-
Fair Value Gap (FVG) —
a three-candle imbalance where price moved with insufficient overlap, leaving an inefficiency that may be revisited.
-
Inverted FVG (iFVG) —
an FVG that has been traded through and now acts as resistance/support in the opposite direction.
-
Breaker Block (BB) —
a failed order block that has been broken and retested, often signalling a structural pivot.
-
Balanced Price Range (BPR) —
overlap of bullish and bearish FVGs, treated as a high-probability reactive area.
-
Liquidity Sweep —
price taking out a prior swing high/low (equal highs/lows or pivot extremes) before reversing.
-
Sweep Reclaim —
a confirmed sweep where price closes back inside the original range with follow-through, distinguishing a successful raid from a continuation.
-
Premium / Discount Zones —
the upper and lower halves of the active swing range; OTE values sit within these.
-
Optimal Trade Entry (OTE) —
the 62–79% premium retracement (short-bias) and the 21–38% discount retracement (long-bias) of the active swing.
-
Kill Zones —
the Asian, London, NY AM, and NY PM session windows where institutional volume is concentrated.
-
VWAP —
Volume Weighted Average Price, anchored to Daily, Weekly, Session, or Monday, with previous-anchor reference.
-
Impulse Classification —
categorisation of directional moves by displacement strength, absorption, and volume context.
---
█ Limitations, Transparency & Development
Built-in tooltip system.
Every cell, column header, and dashboard section in IID Dual carries a contextual tooltip. Hover over any data point, a verdict state, a confluence factor, a structure label, a modifier, a row title, and the indicator explains what you're looking at, how it was calculated, and what it means in the current market context.
The dashboard is designed to teach as you use it, so newcomers to ICT and SMC concepts can build fluency without leaving the chart, and experienced traders can verify the exact methodology behind any reading. The Intelligence Briefing is the primary interpretive layer; the tooltip system is the reference layer beneath it.
Non-prescriptive by design.
This indicator describes market conditions. It does not issue buy or sell instructions, place orders, or claim a strategy edge. Alerts report state changes — not trade calls.
Methodology honesty.
The confluence engine treats its factors with equal weighting; the Intelligence Briefing's OBSERVED column is intentionally conservative and may show fallback narration when structural evidence is sparse. The Reversal engine requires hard gates before it will score, which by design produces fewer signals than the Continuation engine.
Not financial advice.
Trading involves risk. This indicator is an analytical tool. All decisions are the trader's.
Active development.
IID Dual is actively maintained. Feature updates, additional alert conditions, methodology refinements, and bug fixes are delivered through code updates — see release notes below the description for the latest changes.
Pine Script®指標






















