OPEN-SOURCE SCRIPT

Liquidity Areas (MTF)

1 626
Liquidity Areas (MTF)

Maps the price levels on up to three higher timeframes where stop orders are most likely clustered, plotted as filled zones. Levels above swing highs are buy-side liquidity (BSL) — short sellers' stops sit there. Levels below swing lows are sell-side liquidity (SSL) — long holders' stops sit there. When two adjacent swings line up within a tight tolerance, they're labeled EQH (equal highs) or EQL (equal lows): a denser stop cluster and historically a stronger magnet.
When price closes beyond a level, it's marked as swept and rendered in a dimmed, dashed style — visible for context but visually de-emphasized.

How it works

For each of the three configured timeframes, the script runs a pivot detector inside request.security (with lookahead_off) and tracks the most recent N swing highs (BSL candidates) and N swing lows (SSL candidates). Each level becomes a filled zone centered on the pivot price, with half-width = ATR × multiplier on the chart's own timeframe.
A level is checked for EQH/EQL status against its immediate neighbor in the array: if two consecutive swing highs (or lows) sit within the configured percentage tolerance, both are flagged as equal and recolored.
A level is marked swept on the first bar where close goes beyond it — above for BSL, below for SSL. Swept status is permanent: once flagged, a level stays swept for the remainder of the chart.
A proximity filter hides levels further than X% from current close. All drawing objects rebuild on the last bar so widths and statuses stay current.

How to read it

Four color states carry information independently:
  • Live BSL (default teal) — buy-side liquidity, unswept
  • Live SSL (default red) — sell-side liquidity, unswept
  • EQH / EQL (default amber) — equal highs or lows, denser clusters
  • Swept (default grey, dashed) — price has already closed through

Labels at the right edge mark the timeframe, the type (BSL, SSL, EQH, EQL, or "swept"), and the exact level.
The intuition behind the indicator: large orders are filled where liquidity exists, and liquidity exists where stops are clustered. A cleanly swept level often coincides with a reversal because the stop run has supplied the fills the large order needed. The indicator doesn't predict that reversal — it just makes the magnets visible.

Inputs
  • Timeframes 1/2/3 — defaults: 1H, Daily, Weekly. Choose timeframes higher than your chart timeframe.
  • Pivot Lookback — bars required on each side to confirm a swing. Default 2. Lower values flag more levels; higher values restrict to more major swings.
  • Levels per side per TF — number of recent BSL and SSL levels kept per timeframe. Default 3.
  • Equal High/Low Tolerance — two adjacent swings within this percentage of each other get flagged EQH/EQL. Default 0.1%.
  • Display toggles — BSL, SSL, swept, plus per-timeframe.
  • Proximity filter — hide levels more than X% from current close. Default on, 5%.
  • ATR Length / Multiplier — controls zone half-width. Defaults 14 / 0.25.
  • Colors — BSL, SSL, EQH/EQL, and swept, customizable independently.


Built-in alerts
  • New TF1 / TF2 / TF3 BSL — new pivot high confirmed on the corresponding timeframe
  • New TF1 / TF2 / TF3 SSL — new pivot low confirmed on the corresponding timeframe
  • TF1 BSL Swept — first bar where close crosses above the nearest unswept TF1 BSL level
  • TF1 SSL Swept — first bar where close crosses below the nearest unswept TF1 SSL level

Sweep alerts are TF1-only by design. Higher timeframes have enough delay between pivot confirmation and a meaningful sweep that a real-time alert isn't useful — watch the chart for TF2/TF3 sweeps, alert on TF1.

Notes
The framework here borrows from Smart Money Concepts / ICT trading, where the underlying claim is that price tends to move toward visible liquidity pools before reversing. Whether you accept that as causal or just descriptive, the indicator is purely mechanical: it marks where stops are most likely sitting and lets you see when they're taken.
EQH/EQL detection only compares each level against its adjacent neighbor in the array, not all combinations. This is deliberate — equal highs separated by several swings historically are usually not the same liquidity pool in practice. Tighten the tolerance if you're getting false EQH flags; widen it if levels you visually consider equal aren't being marked.
The proximity filter defaults tighter than the other MTF indicators in this collection (5% vs 10–20%) because liquidity matters most when price is near it. A weekly BSL 25% away is irrelevant tactically; a weekly BSL 3% away might be where the next session is heading.
Higher-timeframe pivots don't confirm until pivot lookback bars after the actual high or low. Same lag caveat as the other MTF tools.
This is a structural tool, not a signal generator. It marks where stops cluster and which clusters have already been swept.

Five years of work on a trading system left me with dozens of indicators that ultimately didn't earn a place in the final build. They're not failures — they're tools that solved problems I no longer needed solved. So instead of shelving them, I'm publishing the majority of them open-source.
If you're a discretionary trader, take what's useful. If you're a systems builder, the source is yours to dissect, modify, and improve. The best return on five years of work is for it to keep working — for someone.
If you use this script — or part of it — in your own work, please credit the original with a link back to my profile.
Note: these indicators have been updated to Pine Script v6 — some manually, some with AI assistance.

免責事項

これらの情報および投稿は、TradingViewが提供または承認する金融、投資、取引、またはその他の種類の助言もしくは推奨であることを意図したものではなく、またこれらに該当するものでもありません。詳細は利用規約をご覧ください。