Tool
SMC Zone Interpretor
interpretor.smc_zone
Inputs
The shared ZONE bundle from market.order_block or market.fair_value_gap — a top, bottom and mid price plus the fill/mitigation lifecycle.
Outputs
A boolean — true on the bars where the chosen zone condition holds, false otherwise.
Turns an SMC price zone — an Order Block or a Fair Value Gap — into a simple yes/no gate. Both emitters produce the same zone shape (top, bottom, mid price plus a fill/mitigation lifecycle), so this one reader works for either. Use it to act when price is inside a zone, when a zone is still unfilled, or when price first taps it.
How it works
It reads the shared ZONE bundle from market.order_block or market.fair_value_gap, and the mode picks the test: price_in_zone checks whether the chosen source price sits between bottom and top, unmitigated/mitigated read the fill state (an FVG treats unmitigated as 'unfilled'), tapped fires on the first-touch bar, and direction_is matches the zone's polarity. The source price for price_in_zone and the polarity for direction_is are set by source and required_direction.
Modes
Mode options
True on every bar the chosen source price sits between the zone's bottom and top.
When to use: Gate entries to only the bars where price has pulled back into the zone band.
True while the zone is still fresh — not yet filled or traded through (an FVG reads this as 'unfilled').
When to use: Trade only zones that price has not visited since they formed.
True once price has returned into the zone and filled it — the zone has been used.
When to use: Skip or fade zones that have already been tapped and are no longer fresh.
Fires only on the single bar where price first touches the zone.
When to use: Trigger an entry the moment price reaches the zone, not on every bar inside it.
True when the zone's polarity matches the side you set with required_direction (demand vs supply).
When to use: Keep only bullish demand zones for longs or bearish supply zones for shorts.
Source options
Test the bar's open price against the zone band.
When to use: Use open when the bar's starting price is the level you care about.
Test the bar's high price against the zone band.
When to use: Use high to catch any wick that reaches up into the zone.
Test the bar's low price against the zone band.
When to use: Use low to catch any wick that dips down into the zone.
Test the bar's close price against the zone band (the usual choice).
When to use: Use close to require price to settle inside the zone, ignoring brief wicks.
Test the bar's median price (high + low) / 2 against the zone band.
When to use: Use the median when you want a balanced read between wick extremes.
Test the bar's typical price (high + low + close) / 3 against the zone band.
When to use: Use the typical price for a close-weighted read that still respects the range.
Test the bar's average price (open + high + low + close) / 4 against the zone band.
When to use: Use the full-bar average for the smoothest, least wick-sensitive read.
Required direction options
Match only demand zones — the bullish polarity price tends to bounce up from.
When to use: Long-only setups that buy pullbacks into demand.
Match only supply zones — the bearish polarity price tends to reject down from.
When to use: Short-only setups that sell rallies into supply.
Configuration
Which zone condition to test: price_in_zone (source price inside [bottom, top]), unmitigated / mitigated (the fill lifecycle), tapped (the first-touch bar), or direction_is (the zone polarity).
Which price to test against the zone band in price_in_zone mode (open, high, low, close, hl2, hlc3 or ohlc4).
The zone polarity to match in direction_is mode: bullish (demand) or bearish (supply).
Connects to
Examples
- Filter: only take longs when mode is price_in_zone and the zone is a bullish demand block price has pulled back into.
- Gate an entry on mode unmitigated so you only trade zones that haven't been filled yet.
Common mistakes
- Trading every unmitigated zone — fresh does not mean valid, and a zone against the higher-timeframe trend often just gets run through.
- Confusing tapped (the single first-touch bar) with price_in_zone (true for every bar price stays inside the band).