Skip to content

Supply / Demand Zones

Structure · Smart Money

Supply / Demand Zones node on the canvas

Demand/supply zones at the last opposing candle before each BOS, scored for whether price respected the zone after touching it. Filter by status, age, and respect to keep only the zones that matter for entry.

Supply/Demand Zones marks the price areas where institutional orders likely sit — the origin points of strong moves, where the next visit often produces a reaction. A demand zone (potential support for longs) and a supply zone (potential resistance for shorts) are drawn at the last opposing candle before a decisive break, on the logic that this is where smart money positioned before driving price away. Crucially, the block doesn't just draw boxes — it scores each zone for whether price actually respected it, so you can keep only the ones that have proven themselves.

How it works

Building on swing structure (the Lookback N, default 5), the block locates each Break of Structure and draws a zone at the last opposing candle before that break — the demand candle before an up-break, the supply candle before a down-break. Each zone is enriched with two facts: its age (age_bars) and whether it was respected — after price mitigated (touched) the zone, did it then move away by at least the Respect threshold (default 0.5 × the zone's own height) within 20 bars? Untested zones are marked accordingly.

Three filters let you keep only what matters. Status filter: all (every zone), open (untested only — fresh entry candidates), or respected (mitigated and price reversed — proven setups for confluence). Max age hides stale zones. Respect threshold sets how far price must travel post-touch to count as a genuine reaction. Zones draw as boxes on the price pane.

When to use it

Use Supply/Demand Zones as your entry-location tool in a smart-money workflow. The bias comes from Market Structure; the where comes from these zones. Set Status filter to open to hunt fresh, untested zones for new entries, or to respected when you want only battle-tested levels for high-confluence setups. Combine a zone touch with a directional trigger and a stop beyond the zone's far edge. It answers "where do I enter?", not "which way is the trend?" — pair it with structure for direction.

Example

A zone-entry long: wire bars into Supply/Demand Zones with Status filter = open, and fire when price taps a fresh demand zone and structure is bullish — combine the zone touch and a Market Structure BOS through an And gate into a Buy Signal. Place the Structural Stop-Loss just past the far side of the zone and target a Reward-to-Risk Target of 2×. Backtest in the Tester.

Tips & gotchas

  • It scores respect — use it. Filtering to respected zones keeps only levels price has actually honoured; open keeps fresh candidates. Pick per strategy.
  • Zones are location, not direction. Pair with Market Structure for bias.
  • Fresh zones are higher-probability on first touch; each subsequent tap weakens them.
  • Stop goes beyond the far edge of the zone — if price closes through it, the zone failed.
  • Max age trims clutter — old, deep zones are less reliable; hide them.

Inputs

Socket Type What to wire in
Bars bars Price bars

Outputs

Output Type Plots as Description
Zones zones Zone boxes Demand (long) and supply (short) zones, enriched with age_bars and respected (true/false/None for untested).

Parameters

Parameter Type Default What it does
Lookback N number · 2–30 5
Status filter choice (all, open, respected) all all = every zone. open = untested zones only (potential entry candidates). respected = zones that were mitigated AND price reversed (proven setups; useful for confluence).
Max age (bars, 0=off) number · 0–100000 0 Hide zones whose start is more than this many bars old.
Respect threshold (× zone height) number · 0.0–5.0 0.5 After mitigation, price must move away from the zone by ≥ this multiple of the zone's height (within 20 bars) to count as respected.

Reference auto-generated from the block catalog · category Structure.