Structure & liquidity · Indicator guide

ZynIQ Liquidity Master

Equal highs and lows, previous day/week/month and RTH levels, with sweeps (SFP) and breaks marked and alerted.

ProZynIQ Liquidity Master$59Buy Liquidity Master

ZynIQ Liquidity MasterReal chart
ZynIQ Liquidity Master running on a TradingView chart

Liquidity Master shows where stops are likely to rest: equal highs and lows (liquidity pools), optional single swing highs and lows, and the previous day, week and month highs and lows, with regular-hours versions for futures and stocks. It marks when a level is swept (a wick through and a close back, a swing failure or SFP) or broken (a close through), and keeps new pools coming as old ones are used.

How it works

  1. Swing points. Pool swings use the internal pivot length of the profile (Intraday 3 candles each side; Scalping 2, Swing 5). A swing is confirmed that many candles after it formed.
  2. Equal highs. When a new swing high is confirmed, it is compared with the last 5 remembered swing highs, newest first. It matches one if the two are within the tolerance (default 0.1 x ATR(14)) and no candle has traded above the higher of the two since the earlier one. The first match creates a pool at the higher of the two prices, drawn from the earlier swing; a further match with a swing already in an active pool adds a touch to that pool (“EQH x3”), moves it to the higher price if needed and moves its label to the newest swing. Equal lows are the mirror image at the lower price.
  3. Ending a pool. On every closed candle after the pool formed: a close above a buy-side pool breaks it; a wick above with a close at or below it sweeps it (SFP). Either way the pool stops there and fades. Sell-side pools work the other way round.
  4. Volume. Relative volume is the candle’s volume divided by its 20-candle average. “Mark only” (default) adds “+V” to sweeps of at least 1.5x. “Required” lets sweeps without it end the pool quietly, with no label and no alert. Symbols with no volume data always pass.
  5. Session gaps. On intraday charts, a candle that opens after a time gap of more than 2 candles can break a level with its close but never counts as a sweep: the jump at a reopen is not a wick.
  6. Limits. At most 5 active pools per side; a new pool over the limit removes the oldest. Ended pools: 3 kept per side, faded. A pool (or single-swing level) that has been neither swept nor broken is removed when its latest swing is more than 300 bars old (“Drop untouched pools older than”, 0 = keep it until it is swept or broken). Pools removed by the limit or by age are deleted, not kept faded.
  7. Single-swing liquidity (optional). Each swing high or low of the shared swing engine (Intraday: 10 candles each side, minimum size 0.5 x ATR, the same swings Market Structure Master draws) becomes a faint dotted level unless a pool already sits within the tolerance; when a new pool forms at the price of a single-swing level, that level is removed. It ends the same way as a pool. 3 kept per side.
  8. Key levels. PDH/PDL and PWH/PWL (on by default) and PMH/PML (off by default) are the high and low of the last closed daily, weekly and monthly bar (they never repaint). On CME futures the daily bar is the Globex day (18:00 to 17:00 New York). Each is hidden on charts of its own timeframe or higher. The first sweep of each level in its period is marked; after a close through it, the level counts as broken and is not marked again that period.
  9. RTH levels (optional). Inside the RTH session (default 09:30 to 16:00 New York) the tool tracks the session high and low; when the session ends, they become the previous RTH high/low. The RTH week levels are the high and low of all RTH sessions of the previous week. Intraday charts only.

What you see on the chart

  • EQH pools: fuchsia lines above equal highs (buy-side liquidity), labelled “EQH” (or “EQH x3” with three or more touches) at the latest swing.
  • EQL pools: teal lines below equal lows (sell-side liquidity), labelled “EQL”.
  • Swept pools: faded and dashed, ending at the sweep candle. Broken pools: fainter and dotted, ending at the candle that closed through.
  • Single-swing levels (optional): faint dotted lines from a swing high (fuchsia) or low (teal).
  • SFP labels: a small “SFP” above the candle that swept buy-side liquidity (fuchsia) or below the one that swept sell-side liquidity (teal), naming what was swept, for example “SFP EQH, PDH+V”. One label per side per candle; the latest 20 are kept.
  • Key levels: stepped lines, broken at each new period. PDH/PDL thin, PWH/PWL medium, PMH/PML thick; fuchsia for highs, teal for lows. RTH levels in cyan. Each has a tag with its price just right of the last candle; levels at the same price share one tag (“PDH / PWH”).
  • HUD (top right by default):
    • ZQ Liquidity: the profile and its pool/swing pivot lengths, e.g. “Intraday 3/10”.
    • Buy-side above: the nearest pool, swing high or key high above the close, with its name.
    • Sell-side below: the nearest pool, swing low or key low below the close.
    • Active pools: EQH and EQL counts.
    • Last sweep: side, what was swept, “+V” if volume confirmed, candles ago.
    • Equal tolerance: the setting and its size in price now.
    • Notes: “ok”, or “no volume data”, “RTH levels need an intraday chart”, “day levels off on this timeframe” and similar, in amber.
  • Watermark: a faint “ZynIQ Liquidity” tag.

Settings

Group Setting Default What it does
Swings Profile Intraday Pivot lengths. Scalping: pools 2, swings 5. Intraday: 3 and 10. Swing: 5 and 20. Custom unlocks the length settings.
Swings Pool pivot length (Custom) 3 Candles each side for the swings used to find equal highs/lows (1 to 20). Custom only.
Swings Swing length (Custom) 10 Candles each side for single-swing liquidity (2 to 50). Custom only.
Swings Minimum swing size (x ATR) 0.5 For single-swing liquidity: a swing must stand this far from the previous opposite swing. 0 = off.
Swings ATR length 14 ATR for the tolerance and the swing size.
Equal highs and lows (pools) Tolerance measured in ATR fraction ATR fraction (scales with each market) or Ticks.
Equal highs and lows (pools) Tolerance (x ATR) 0.1 How close two swings must be to be equal, in ATR. 0.05 strict, 0.2 loose.
Equal highs and lows (pools) Tolerance (ticks) 4 The same in ticks, used with Ticks.
Equal highs and lows (pools) Compare with the last N swings 5 How many earlier swings each new swing is compared with (1 to 10).
Equal highs and lows (pools) Active pools per side 5 Active pools kept per side; the oldest goes first.
Equal highs and lows (pools) Drop untouched pools older than (bars) 300 A pool (or single swing) not swept or broken whose latest swing is older than this is removed, so far-away levels don’t squash the price scale. 0 = keep until swept or broken. 200 to 500 is typical.
Equal highs and lows (pools) Single-swing liquidity Off Also draw unmatched swing highs and lows, faint and dotted.
Equal highs and lows (pools) Single swings per side 3 Active single-swing levels kept per side.
Sweeps Volume confirmation Mark only Off, Mark only (“+V”) or Required (no label or alert without volume).
Sweeps Relative volume at least (x 20-bar average) 1.5 The volume multiple for “+V” and Required.
Sweeps Swept or broken pools to keep per side 3 Ended pools kept faded per side. 0 = remove at once.
Sweeps Sweep labels to keep 20 SFP labels kept; the oldest goes first.
Sweeps Ignore the first bar after a session gap On A candle opening after a time gap can break a level but never sweep it (intraday charts).
Key levels Previous day high/low (PDH / PDL) On Last closed daily bar’s high and low. Hidden on daily and higher charts.
Key levels Previous week high/low (PWH / PWL) On Last closed weekly bar’s high and low. Hidden on weekly and higher.
Key levels Previous month high/low (PMH / PML) Off Last closed monthly bar’s high and low. Hidden on monthly charts.
Key levels Mark sweeps of key levels On Mark the first sweep of each key level in its period.
RTH levels (futures and stocks) Previous RTH session high/low Off High and low of the previous regular-hours session. Intraday charts only.
RTH levels (futures and stocks) Previous RTH week high/low Off High and low of last week’s regular-hours sessions. Intraday charts only.
RTH levels (futures and stocks) RTH session 0930-1600 Regular hours in the time zone below.
RTH levels (futures and stocks) Time zone America/New_York Time zone of the session (handles daylight saving); Exchange = the symbol’s own.
Style Colour theme ZynIQ ZynIQ (fuchsia above / teal below) or Classic (red / green).
Style Extend active levels right (bars) 5 How far active pools reach past the last candle.
HUD and watermark Show HUD On The live panel.
HUD and watermark HUD position Top right Top right, Top left, Bottom right, Bottom left or Middle right.
HUD and watermark HUD text size Small Tiny, Small or Normal.
HUD and watermark Show watermark On Faint product tag.
HUD and watermark Watermark position Bottom right Corner for the tag.

Alerts

All alerts are decided when a candle closes. Create them with Once per bar close.

Alert Fires when
ZQ Liquidity - Equal highs formed / Equal lows formed a new equal-high (equal-low) pool appears.
ZQ Liquidity - Buy-side pool swept a candle wicks above a pool or single swing high and closes back at or below it (with volume, if Required).
ZQ Liquidity - Sell-side pool swept a candle wicks below a pool or single swing low and closes back at or above it.
ZQ Liquidity - Buy-side pool broken / Sell-side pool broken a candle closes through a pool or single swing level.
ZQ Liquidity - PDH swept / PDL swept / PWH swept / PWL swept the first sweep of that level in its period.
ZQ Liquidity - Month or RTH level swept the first sweep of PMH, PML or an RTH level.

For one alert with the details, choose Any alert() function call. The message lists every event of the candle with the levels, the candle’s high or low and whether volume confirmed it, rounded to the tick, for example ZQ Liquidity | MNQ1! 5 | Buy-side pool 21512.25 swept (SFP), high 21515.00, volume confirmed | Key level swept above: high 21515.00, PDH 21510.50 | close 21503.75.

Set it up for your market

Market Timeframes Profile Key settings Notes
Index futures (MNQ, NQ, MES, ES) 1m to 15m, 1H for bigger pools Intraday (Scalping on 1m to 2m) Turn on “Previous RTH session high/low” (09:30 to 16:00 New York); keep PDH/PDL for the Globex day. Standard daily levels follow the Globex day, which starts at 18:00 New York; most index traders also watch the RTH levels. Without a CME real-time subscription TradingView data is 10 minutes delayed. On an extended-hours chart pools form overnight too. Use 1H or lower for RTH levels.
Stocks 1m to 15m intraday, daily for swing Intraday Turn on the RTH levels on extended-hours charts; on regular-hours charts PDH/PDL already are RTH. Each regular-hours day opens with a gap, handled by the gap setting.
Forex 5m to 1H Intraday Defaults. PWH/PWL are useful; RTH levels do not apply. Forex volume on TradingView is tick volume from your broker’s feed; “+V” means unusual activity, not traded size. Feeds without volume pass and the HUD says so.
Crypto 5m to 4H Intraday Defaults; PMH/PML on for higher timeframes. 24/7, daily levels roll at 00:00 UTC on most exchanges; no session gaps.

How to use it

  • Treat pools as magnets, not walls: price often runs to equal highs or lows before turning. Avoid entering straight into an obvious pool; wait to see how price reacts there.
  • A sweep (SFP) of a pool or a key level, especially with “+V” and back inside a range, is a classic reversal clue. A break (close through) suggests continuation towards the next pool.
  • Use the HUD’s buy-side above and sell-side below as the next likely targets on each side.
  • Common mistakes: shorting every sweep in a strong uptrend; using 1-minute pools against higher-timeframe structure; setting the tolerance so loose that every pair of highs looks equal.
  • Pairs with ZynIQ Market Structure Master (a sweep followed by a CHoCH is a common reversal sequence; the swings match), ZynIQ Order Block Master (it marks sweeps beside each block) and ZynIQ FVG Master.

Good to know

  • Confirmation delay. A pool forms when its second swing is confirmed, pool pivot length candles after that swing (Intraday: 3). Single-swing levels appear swing length candles after the swing (Intraday: 10). Sweeps and breaks are decided at the close of the candle, with no further delay.
  • Key levels never repaint: they come from the last closed daily, weekly or monthly bar.
  • One sweep per key level per period. Later pokes through the same level that day (week, month) are not marked again.
  • Drawing limits. Up to 500 lines and 500 labels; with the defaults the tool uses fewer than 60. Old swept and broken pools are removed as new ones end (setting).
  • Old pools are dropped. With the default 300 bars, an untouched pool disappears about 25 hours after its latest swing on a 5-minute chart (5 hours on a 1-minute chart). Raise “Drop untouched pools older than” (or set 0) to keep older pools; they can sit far from price and compress the chart.
  • No-volume symbols (SPX, NDX, DXY, some forex and CFD feeds): sweeps pass the volume check; the HUD says “no volume data”.
  • Indicator count. Each ZynIQ tool counts as one indicator towards your TradingView plan’s limit.
  • A liquidity level is a likely stop area, not a promise that price will go there or turn there.

Version 3 changes

  • Equal highs and lows actually detected. In v2 the last swing was overwritten before the comparison, so every swing was compared with itself: no real equal-level detection, and the threshold did nothing. v3 compares each new swing with up to the last 5 earlier swings of its kind (setting), before remembering it, and only with swings price has not traded beyond since.
  • Tolerance that suits every market. v2 used 0.05% of price (about 10 points on MNQ, far too loose). v3 uses 0.1 x ATR by default, or a number of ticks.
  • Pools end, new pools keep appearing. v2 never removed a pool, so after the first 10 per side (deep in history) no new pool was ever drawn, and old lines produced false SFPs whenever a later candle opened above and closed below them. In v3 a pool ends when it is swept or broken, ended pools fade (3 kept per side), and at most 5 active pools per side are kept, the oldest dropped first. An untouched pool whose latest swing is more than 300 bars old is removed (setting), so old levels far from price no longer squash the price scale.
  • Sweep versus break. A wick through and close back is a sweep (SFP); a close through is a break. Each ends the pool, with its own style and alert.
  • Volume confirmation for sweeps, as v2’s header promised but never did: sweeps with relative volume of at least 1.5x get “+V”, or can be required. Symbols without volume always pass.
  • Single-swing liquidity (optional): unmatched swing highs and lows from the same swing engine as Market Structure Master, in a fainter style.
  • Previous month high/low (off by default) and regular-hours (RTH) levels for futures and stocks: the previous RTH session’s high/low and last week’s RTH high/low, with a session and time-zone setting, alongside the standard levels.
  • Sweep alerts for PDH, PDL, PWH and PWL (and one for the month and RTH levels), not only for pools.
  • Correct names. Liquidity above highs is buy-side, below lows is sell-side (v2 had them the wrong way round).
  • HUD: the nearest buy-side liquidity above price and sell-side below (pools, swings and key levels), active pools, the last sweep and the tolerance in price terms.
  • Non-repainting (closed candles only), tick-rounded prices, session-gap handling, ZynIQ and Classic colour themes.

ZynIQ Liquidity Master is $59, one payment: the Pine v6 source, on any TradingView plan. Or get all 22 indicators in the Complete Suite for $399.

Buy Liquidity Master

Related guides

  • ZynIQ Market Structure Master: Swing and internal structure with one BOS or CHoCH per swing, strong and weak highs/lows and the range equilibrium.
  • ZynIQ FVG Master: Fair value gaps tracked from fresh to filled, with inverse FVGs, 50% lines and optional higher-timeframe gaps.
  • ZynIQ Order Block Master: Order blocks at the origin of each break of structure, validated by displacement and tracked as fresh, tested, mitigated or invalid.

← Back to all docs