Blog/Equal Highs & Lows
Equal Highs & Lows
Indicators—

Equal Highs & Lows

Equal highs and lows mark clustered stop-loss liquidity. How Crodl groups swing pivots into EQH and EQL pools with an ATR tolerance, and flags sweeps versus purges.

Ask an experienced crypto trader what happens to a level the entire market can see — a double top, a triple bottom, two swing lows within a few ticks of each other — and you will get the same answer: it gets run. Every trader who shorted that double top has a stop just above it; every breakout system has a buy order in the same place. Smart Money Concepts (SMC) traders call these clusters equal highs (EQH) and equal lows (EQL), and treat them as liquidity pools: dense pockets of resting orders that price is drawn toward.

The Equal Highs & Lows indicator on the Crodl terminal finds those pools automatically. It clusters confirmed swing pivots that sit within a volatility-scaled tolerance of each other, draws each pool as a level on your chart, and then tracks the two events that actually matter: the purge (a wick-grab that fails to close through) and the sweep (a close through the level that consumes the pool). This post explains the concept, the exact mechanics, and how traders put the pools to work.

What EQH and EQL show

Two swing highs at nearly the same price look like strong resistance. In liquidity terms they are something else entirely: above them sit the stop-losses of everyone short against the level, plus breakout buy-stops — a stack of guaranteed, price-insensitive buying. That is buy-side liquidity, and it is a magnet. Equal lows mirror the logic below price as sell-side liquidity.

This is why "equal highs rarely hold" is an SMC axiom. Either the market trades up into the pool, fills the resting orders, and reverses — the classic stop hunt — or it closes through with acceptance and keeps going. Which of the two happened is the single most useful thing the chart can tell you about a level, and it is exactly the distinction this indicator draws.

How it works on the Crodl terminal

  1. Confirm swing pivots. A swing high must be the strict maximum of every bar within Swing length bars (default 5) on both sides, confirmed once the right half of that window closes. Strictness rejects flat plateaus; there is no lookahead.
  2. Cluster equal swings. Two or more consecutive swing highs whose prices stay within tolerance of the first pivot's price form an EQH pool at that first price (mirror for lows → EQL). The tolerance is Tolerance (x ATR14) × ATR(14), measured at the first pivot's bar and frozen for the pool's lifetime — so a pool's level never drifts as later pivots join. A swing outside tolerance ends the cluster and seeds the next one.
  3. Track the lifecycle. Starting the bar after a pool forms, every bar is checked:
    • Purged — a wick trades beyond the level but the bar closes back inside. The pool stays alive and an × is drawn at the purge bar. This is the stop-run-without-acceptance event SMC traders watch for.
    • Swept — a bar closes beyond the level. The pool dies at that bar, but stays on the chart dimmed so you can review how price treated it.

Each pool renders as a dashed horizontal line from its first pivot — extending to the current bar while alive, or ending at the sweep bar once dead — labeled EQH (red, liquidity above price) or EQL (green, liquidity below).

EventPrice actionPool statusStandard reading
Purge (×)Wick beyond the level, close back insideStill activeStops were run without acceptance — reversal fuel
SweepCandle closes beyond the levelDead, drawn dimmedLiquidity consumed with acceptance — continuation more likely

Settings that matter

  • Swing length (default 5) — how significant a pivot must be to join a pool. Larger values build pools only from major swings.
  • Tolerance (x ATR14) (default 0.25) — how close two swings must be to count as "equal", in ATR(14) units. Zero demands identical prices; higher values group sloppier double tops.
  • Max pools drawn (default 30) — most-recent pools kept on the chart.
  • EQH / EQL colors — red above, green below by default.

How traders use it

Pools as targets

Liquidity is where price is headed, so the cleanest use is exit planning: if you are long below an EQH pool, that pool is a natural take-profit zone — the same magnet logic that makes liquidation clusters reliable targets. Take profit into the pool, not after it.

Keeping your stop out of the pool

If your stop sits just beyond an EQL with everyone else's, you are part of the liquidity. Placing stops beyond the pool — past the level the wick is designed to reach — keeps you out of the exact flush that exists to collect it.

Trading the purge

The × marker is the setup many SMC traders wait for: price rams through the equal lows, fills the stops, and closes back inside. That failed auction frequently precedes a sharp reversal — especially when a Change of Character prints shortly after in the same direction.

Confluence with other levels

An EQH pool sitting just under the previous day's high (see Session Levels) or inside a broader liquidity zone is a materially stronger magnet than any of those signals alone — multiple populations of orders stacked in one place.

Frequently Asked Questions

How equal is "equal"?

Within Tolerance (x ATR14) × ATR(14) of the first pivot in the cluster. Scaling by ATR keeps the definition sensible across assets and timeframes — a few dollars apart on BTC is "equal", while the same distance on a low-priced altcoin is not.

Why does the line sit at the first pivot instead of the highest high?

The pool is anchored at the first pivot's price, and the tolerance is frozen there too. That keeps the level stable: it never shifts as later swings join the cluster, so alerts, stops, and targets planned against it stay valid.

Does it repaint?

No. Pivots appear only after Swing length confirming bars, a pool only exists once its second pivot confirms, and lifecycle checks begin the bar after that — nothing is painted into history. On the forming bar, a sweep or purge is provisional until the candle closes.

Why did a pool die on a close barely beyond the level?

By design. Sweeps are close-based because a close beyond the level is acceptance — the resting orders are filled and the pool no longer exists, however marginal the close. Wick-only violations are recorded as purges instead, and the pool survives them.

Put the pools on your chart

Equal Highs & Lows is available on every Crodl terminal chart — add it from the indicator picker and the resting-liquidity map for your pair is drawn and tracked live, alongside trading on six exchanges.


This article is for educational purposes only and is not financial advice. Leveraged trading carries substantial risk of loss. Always do your own research and never risk more than you can afford to lose.

Share this article

Crodl

Ready to automate your trading?

Connect your exchange, set up automations, and start trading smarter — all from one platform.

Start Trading Free

More articles

Liquidation Bands: A Heatmap of Where Leverage Dies
Indicators
Liquidation Bands: A Heatmap of Where Leverage Dies
Liquidation Levels: How to Read Liquidation Magnets on a Crypto Chart
Indicators
Liquidation Levels: How to Read Liquidation Magnets on a Crypto Chart
All articles