Charts See the terminal

Premium script

Liquidity

Equal highs and lows where stops pile up, the sweeps that run them and close back inside, and swing failure patterns at single swings.

SMC / ICT Sign up for Altrady $12 one-time

Live Liquidity preview · BTC/USDT on Binance · 1h, history up to a day ago

What is Liquidity?

Liquidity marks where resting stop orders are likely to sit and the bars that run them. Traders who bought a low put their stops under it, and a second low at the same price adds more. A cluster of equal lows is a pile of resting sell orders, and equal highs a pile of buy stops. The script draws those piles as liquidity pools, labelled with how many swings built them, such as EQH x3.

It carries three tools in one script, each with its own toggle. Liquidity Pools are on by default. Liquidity Sweeps mark a bar that runs a pool and closes back inside it, and SFPs mark the same rejection at a single prior swing. Both are off until you turn them on.

This is a closed-source premium script. It runs on Altrady's servers, so only its output reaches your chart and its code is not published.

Components

Liquidity combines 3 tools in one script. Each one has its own switch in the settings.

  • Liquidity Pools. Equal highs and equal lows, the levels where stops pile up, drawn with the number of swings that built each pile and removed when price takes them. On by default.
  • Liquidity Sweeps. A bar whose wick runs a pool of equal highs or lows and whose close returns inside it, marked with an arrow in the direction the sweep sets up.
  • SFPs. The Swing Failure Pattern, a sweep past a single prior swing that fails to close beyond it, read on the chart's own bars.

How to use Liquidity

  • Pools as targets. Equal highs above price and equal lows below are where stops are resting. Many traders expect price to be drawn to them before a larger move.
  • A sweep. The wick runs the pool and the close comes back inside. The stops were taken and the move did not hold. A sweep of equal highs is bearish and a sweep of equal lows bullish.
  • A swing failure. The same rejection at one prior swing rather than a pile of them. A wick above a swing high that closes back below it is a bearish SFP.
  • A pool that breaks. A close beyond the pool is not a sweep; the level simply broke. The pool is removed either way.

Settings

Components

SettingDefaultRangeWhat it changes
Show Liquidity PoolsOn Equal highs and equal lows: the levels where stops pile up, drawn with the number of swings that built each pile and removed when price takes them.
Show Liquidity SweepsOff A bar whose wick runs a pool of equal highs or lows and whose close returns inside it: the stops were taken and the move did not hold.
Show SFPsOff Swing Failure Pattern: a sweep past a single prior swing that fails to close beyond it. Read on the chart's own bars, whatever Timeframe says.

Swings

SettingDefaultRangeWhat it changes
TimeframeChart Chart, 15m, 30m, 1h, 4h, 1DRead pools and sweeps from a higher timeframe while trading a lower one. The chart's own period must divide it exactly. Swings and the ATR filter are then measured on that timeframe, and so is a sweep's wick-and-close test, because a sweep IS a candle. Price taking a pool is still judged on the chart's own bars. SFPs always read the chart.
Swing Length5 1 or moreBars either side of a pivot. Larger finds fewer, bigger swings, and confirms them later, since a swing needs this many bars after it (§4.1). Pools and sweeps; SFPs have their own (SFP Swing Length).
Significance (ATR x)1.5 0 to 10A swing is ignored unless the leg into it covered this much ATR. ATR rather than a percentage so it transfers between instruments. Pools and sweeps; SFPs have their own filter.

Pools

SettingDefaultRangeWhat it changes
Equal Within (ATR x)0.1 0 to 5How close two swings must be to count as the same level. Deliberately tight: 'equal' should mean equal. Widening it finds more pools and shallower ones: on 500 bars of BTC 1h, 0.05 gives 4 pools, 0.1 gives 8, 0.5 gives 12.
Min Touches2 2 to 10How many swings have to sit at the level before it is a pool, and so before it can be taken or swept. Two is the definition; three keeps only the piles deep enough to be worth taking.
Max Pools20 1 to 100The oldest live pool is dropped past this.
Taken OnWick Wick, CloseWhat counts as price taking the liquidity. Wick: any trade beyond the level empties the pile, which is what actually happens to the stops. Close: the level has to be closed through, which ignores the sweep that takes them and comes straight back.

Sweeps

SettingDefaultRangeWhat it changes
Sweep Max Sweeps20 1 to 200The oldest sweep is removed past this. Sweeps accumulate forever otherwise, and the budget is 500 drawings per bar.
Sweep Show MarkerOn The arrow on the sweeping bar, pointing the way the sweep sets up.
Sweep Show Swept LevelOn The level that was run, drawn from the pool's first touch to the bar that swept it.
Sweep Line StyleDashed Solid, Dashed, Dotted
Sweep High Sweep #f23645 Equal highs run and rejected: a bearish event.
Sweep Low Sweep #089981 Equal lows run and rejected: a bullish event.

SFPs

SettingDefaultRangeWhat it changes
SFP Swing Length5 2 to 50Bars each side to confirm a swing pivot. Larger = fewer, more significant swings.
SFP Swing Filter (ATR)0 0 to 5Minimum swing size in ATR units. 0 accepts all pivots.
SFP Sweep Tolerance (ATR)0 0 to 2How far past the swing the wick must reach. 0 means any pierce.
SFP Show Sweep LinesOn A dashed line from the swept swing to the SFP bar.
SFP Max Markers20 1 to 100The oldest SFP is removed past this.
SFP Bullish SFP #089981 A sweep below a swing low that failed: bullish.
SFP Bearish SFP #f23645 A sweep above a swing high that failed: bearish.

Display

SettingDefaultRangeWhat it changes
Show Equal HighsOn
Show Equal LowsOn
Show Touch CountsOn Label each pool with how many swings built it, as in 'EQH x3'.
Line StyleDotted Solid, Dashed, DottedPool lines. Sweeps have their own (Sweep Line Style).
Label SizeSmall Tiny, Small, Normal, Large, Huge
Show TakenOff Keep a pool on the chart after price runs it, muted and ending at the bar that took it. A pool being taken is the liquidity grab, so what is left is a record of where stops were and when they went.
Show State PaneOff A sub-pane per component that is on: live pools and an event pulse, sweeps drawn and a pulse, the running SFP count. The tool's internal state, and what the automated checks read.

Colours

SettingDefaultRangeWhat it changes
Equal Highs #f23645 Liquidity resting above: stops of those who sold the highs.
Equal Lows #089981 Liquidity resting below: stops of those who bought the lows.
Taken #787b86 A pool that has been run, when Show Taken is on.
Label #b0b3b8

Alerts: pool_formed, pool_taken, sweep_high, sweep_low, sfp_bullish, sfp_bearish.

How it works

The script finds confirmed swings and groups those that sit within a small fraction of the average true range of each other. Once a group has Min Touches swings, two by default, it is drawn as a pool. The level is the most extreme swing of the group, not its average, because that is the last price that has to trade before every stop in the pile is hit.

A pool is taken when price trades beyond it, by wick by default or by close if you choose, and it then disappears unless Show Taken keeps it muted. If the same bar closed back inside, that is a sweep, and an arrow marks it. Sweeps are judged on the candle of the timeframe the pools are read from.

SFPs use their own swings on the chart's bars, with no size filter by default. On each bar only the nearest un-swept swing high and low can fire, and a swept swing is used up, so one bar cannot fire a cluster of them.

Limitations

  • Swing lag. A pool can only be seen once its swings are confirmed, Swing Length bars after each one. A sweep or SFP itself is known on the bar it happens.
  • Equal is a tolerance. Equal Within decides how close two swings must be. Tight values find fewer, cleaner pools; wide values find more, shallower ones.
  • A sweep is not a reversal. Price can sweep a pool, close back inside and then break through on the next bar anyway.
  • Higher timeframes need a matching chart. When reading pools from a higher timeframe, the chart's own period must divide it exactly. SFPs always read the chart.
  • Stops are inferred. The script cannot see actual orders. Pools mark where stops are likely to sit, based on where swings formed.

Get Liquidity

Premium scripts are a one-time purchase in the Altrady marketplace and need a paid Altrady plan to run.

  • Liquidity $12 This script on its own.
  • SMC / ICT bundle $35 7 premium scripts, Liquidity included.
  • Altrady Complete Suite $109 All 36 premium scripts.
Sign up for Altrady

Frequently asked questions

Two or more swing highs or lows at nearly the same price. Stop orders tend to rest just beyond them, which makes the level a target for price.

A sweep runs a pool of equal highs or lows and closes back inside. An SFP is the same rejection at a single prior swing.

The arrow points the way the sweep sets up, not where the wick went. Raiding the highs and closing back under them is a bearish event.

Six. pool_formed and pool_taken for pools, sweep_high and sweep_low for sweeps, and sfp_bullish and sfp_bearish for swing failures. A component that is switched off fires no alerts.

Yes. Liquidity is a closed-source premium script. It runs on Altrady's servers, so only its output reaches your chart and the code is never shared. You buy it once in the Altrady marketplace, on its own, in the SMC / ICT bundle or in the Altrady Complete Suite, and it needs a paid Altrady plan to run. It is also included with your first annual Premium subscription.

Use the Get it in Altrady button on this page to open its listing in the Altrady marketplace. Once it is in your account, open the indicator picker on any chart in Altrady Charts and add Liquidity like any other indicator. Turn on sweeps and SFPs in its settings panel.

Sign up for Altrady