OPEN-SOURCE SCRIPT
Liquidity Breakout Matrix

LIQUIDITY BREAKOUT MATRIX (LBM)
tradingview.com/u/Forex_Market_Insights/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OVERVIEW
Liquidity Breakout Matrix is an original consolidation-and-breakout mapping tool. It automatically detects the phases where a market stops trending and coils inside a tight liquidity pocket, draws that pocket as a structured channel on the chart, monitors the participation building up inside it, and then marks the exact bar where price resolves out of it.
Every channel it draws is a container of resting orders. The upper edge of a consolidation is where sell-side liquidity accumulates. The lower edge is where buy-side liquidity accumulates. Price does not stay inside these pockets forever — it eventually resolves through one side, and that resolution is what LBM is built to isolate and time.
The indicator is fully self-adapting. It does not use fixed pip values, fixed point distances or hard-coded thresholds anywhere in its detection logic, so the same settings behave consistently on gold, indices, FX pairs, crypto, futures and equities, on any timeframe from seconds to monthly.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY THIS INDICATOR WAS CREATED
Three specific problems motivated this build.
1. Most consolidation tools only see the range after it has already broken.
Manual range drawing is subjective, and simple "highest high / lowest low of the last N bars" boxes are drawn on every bar regardless of whether the market is actually consolidating. What was needed was a detector that identifies a genuine volatility contraction as a discrete event, waits for it to complete, and only then maps the exact bars that formed it.
2. Breakout signals fire far too often on single wicks.
A large portion of range breaks are liquidity grabs: a wick pierces the boundary, sweeps resting stops, and the candle closes back inside. A tool that treats every touch as a breakout produces constant false signals. LBM needed a confirmation model that ignores pure wick penetration by default.
3. Volume-based tools break completely on spot FX, CFD and metals feeds.
A very large number of brokers and data feeds publish no traded volume at all. Most volume-dependent indicators respond to this by printing blank values, broken numbers or an error notice, which makes half the tool useless on exactly the instruments many traders watch. LBM needed an activity engine that always resolves to something usable, and that is honest about what it is using.
The result is a single tool that maps compression, measures the participation inside it, and marks the resolution — on any instrument, with or without a volume feed.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW IT WORKS — FULL METHODOLOGY
1. THE COMPRESSION INDEX (0–100)
This is the core engine. It blends two independent and deliberately different readings of market contraction.
Reading A — structural dispersion.
Raw price is first normalized into a 0–1 position inside its own rolling high/low range over the Normalization Lookback. This converts price into a pure structural coordinate: 1 means price sits at the top of its recent range, 0 means the bottom, 0.5 means the middle. The standard deviation of that normalized coordinate is then measured over the Dispersion Length. This tells you how much price is actually travelling within its own structure. A market that is grinding sideways produces a low dispersion value even if the instrument itself is volatile in absolute terms.
Reading B — raw volatility decay.
Independently, a fast ATR is compared against a slow ATR. When recent true range is shrinking relative to the longer baseline, the ratio falls. This catches volatility drying up even when structural position is still drifting.
Combining them.
Each reading is converted into a rolling percentile rank over the Percentile Window, which places the current value against its own recent history rather than against an arbitrary fixed number. This is what makes the tool instrument-agnostic and timeframe-agnostic. The two ranks are then blended using the Dispersion Weight and inverted, producing the Compression Index:
- High Compression Index → the market is coiling
- Low Compression Index → the market is expanding
The live value is always visible in the info panel.
2. THE SQUEEZE STATE MACHINE
The Compression Index alone is not a signal. It feeds a state machine.
While the index holds above the Compression Threshold, the script counts how many consecutive bars the squeeze has lasted. When the index drops back below the threshold, the squeeze is considered released. At that moment the duration is checked against Minimum Range Bars. If the coil was too short to be meaningful it is discarded and nothing is drawn. This filter is what keeps the chart clean — brief one or two bar pauses never become channels.
3. CHANNEL CONSTRUCTION
When a valid squeeze completes, the channel is built retroactively over exactly the bars the coil lasted — not over a fixed lookback. The script walks back through that specific window and extracts:
- Main channel body — from the highest high to the lowest low of the coil, drawn as a shaded box
- Upper edge zone — a red band sized by ATR beneath the top of the channel. This is the supply pocket, where sell-side liquidity is resting
- Lower edge zone — a green band sized by ATR above the bottom. This is the demand pocket, where buy-side liquidity is resting
- Equilibrium line — a dashed line at the exact 50% of the channel
The edge zone size is capped as a fraction of the total range, so a wide channel never ends up with edge bands that swallow the whole box.
While price remains trapped inside, the channel keeps extending to the right in real time. When price resolves, the channel freezes at the breakout bar and stays on the chart, so the full history of every pocket the market built remains readable.
4. UNIVERSAL ACTIVITY ENGINE
This is the component that keeps the participation side of the tool alive on every market. It resolves a usable per-bar activity series in a strict priority order.
Priority 1 — Real chart volume.
If the feed publishes genuine traded volume, that is used and the panel reports "Chart volume (real)".
Priority 2 — External reference symbol.
You may point the indicator at another symbol that trades the same underlying asset on a venue that does publish volume — for example a futures contract or a major exchange pair. That symbol's volume is requested on the chart timeframe and used as the activity series. The panel reports "External symbol (real)".
Priority 3 — Synthetic Activity.
If neither is available, the script builds its own participation proxy. It measures each bar's true range relative to a baseline ATR to get a relative activity reading, then weights that by candle body efficiency — the proportion of the bar's range that was converted into directional body rather than rejected wick. A bar that travels far and closes with conviction registers as heavy participation; a bar that travels far but closes back where it started registers as lighter, because most of that movement was rejected.
This is explicitly a participation estimate, not traded volume, and the panel always labels it "Synthetic (estimated)" so nothing is ever presented as real exchange data.
Whichever source is resolved, it is then split into estimated buy and sell pressure using where each candle closed inside its own range: a close near the high assigns most of that bar's activity to buyers, a close near the low assigns most to sellers, and a mid-range close splits it.
5. FLOW OVERLAY INSIDE THE CHANNEL
Inside each channel, the per-bar buy/sell split is plotted as columns around the equilibrium line, so you can see which side was accumulating during the coil rather than only where price ended up.
- Comparison mode — estimated buy pressure plotted upward, estimated sell pressure plotted downward
- Total mode — a symmetric column of total activity, coloured by which side dominated
- Delta mode — only the net difference, upward when buyers led, downward when sellers led
A tag on each channel prints the total estimated buy and sell activity accumulated across the entire consolidation.
6. BREAKOUT ENGINE
A breakout is registered when price resolves outside the channel body.
With Body Confirmed Breakout enabled (the default), the midpoint of the candle body must clear the boundary. A wick alone is not enough. This single filter removes a large share of liquidity-grab false signals, because a sweep that reverses will leave the body inside the channel.
With it disabled, the close alone triggers the signal, which produces earlier but noisier entries.
On a valid break the channel freezes and an arrow prints — ▲ for an upside resolution, ▼ for a downside resolution.
7. PRESSURE GAUGE
While a channel is still unresolved, a vertical red-to-green gauge is projected to the right of price, spanning the channel's own height, with a ◀ pointer. The pointer position reflects where the net accumulated flow of that specific channel sits between its own extremes — effectively, who is currently winning inside the pocket. Above 50% means buyers have accumulated more; below 50% means sellers have.
8. INFO PANEL
The panel reports, in real time:
- Activity Source — exactly which of the three sources is currently in use, so you always know whether you are reading real volume or an estimate
- Compression — the live Compression Index out of 100
- State — whether the market is currently Coiling (with the bar count so far) or Expanding
- Active Channel — the price boundaries of the channel currently in play, or "none"
- Pressure — the current buyer percentage inside the active channel
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO READ IT ON THE CHART
- Shaded box — a completed consolidation, a liquidity pocket
- Red band at the top — supply zone, resting sell-side orders
- Green band at the bottom — demand zone, resting buy-side orders
- Dashed centre line — equilibrium of the range
- Columns inside the box — estimated buy pressure above the line, sell pressure below it
- Tag on the box — total estimated buy / sell activity for that whole consolidation
- Green ▲ arrow — price resolved upward out of that channel
- Red ▼ arrow — price resolved downward out of that channel
- Gauge on the right — live pressure balance inside the channel that has not resolved yet
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PRACTICAL USE
Reading the structure.
Treat each channel as a pool of trapped orders rather than as a support/resistance pair. The market built that pocket for a reason: it is where positions accumulated. The resolution direction tells you which side of that pocket got run.
Taking the resolution.
The straightforward application is to act on the arrow, in the direction of the break, using the opposite edge zone of the broken channel as the invalidation level. That edge is structurally meaningful — if price returns all the way through the channel to the far side, the breakout thesis is dead.
Failed resolutions.
A break that immediately returns inside the channel is a failed resolution and is often the more powerful signal. Liquidity was taken on one side and rejected; these frequently run hard toward the opposite edge instead. Watching for this behaviour on a frozen channel is one of the higher-quality uses of the tool.
Using the flow.
When the flow overlay shows one side clearly dominating during the coil, and price then resolves in that same direction, the two agree and the resolution has participation behind it. When the coil shows heavy buying but price resolves downward, that is a distribution signature — buyers were absorbed. Read this as context, not as a standalone signal.
Using compression.
A rising Compression Index with the state showing "Coiling" and a growing bar count tells you a channel is being built right now, before it is drawn. This is your advance warning that a resolution is being set up.
Timeframe stacking.
Because the engine is percentile-based, it works identically on higher timeframes. Mapping the channel on a higher timeframe and taking the resolution on a lower one is a natural workflow.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SETTINGS
COMPRESSION ENGINE
- Sensitivity Preset — High, Medium, Low or Custom. High produces more channels on faster charts, Low isolates only the heaviest compressions. Custom unlocks the manual threshold and minimum-bar inputs below.
- Normalization Lookback — the range used to map price into its 0–1 structural position.
- Dispersion Length — bars used to measure how much normalized price is travelling.
- Percentile Window — the rolling window that current compression is ranked against.
- Compression Threshold — the level the index must hold above for a squeeze to be active. Higher means fewer, tighter channels.
- Minimum Range Bars — coils shorter than this are discarded entirely.
- Dispersion Weight — blends between structural dispersion (1.0) and raw ATR contraction (0.0).
- Fast / Slow ATR Length — the two legs of the volatility-decay reading.
- Maximum Range Bars — caps how far back a single channel can be reconstructed.
CHANNEL AND ZONES
- Keep Channel After Breakout — on by default, broken channels stay frozen on the chart so you keep the full history. Turn it off if you only want the currently active pocket visible.
- Edge Zone Size (x ATR) — thickness of the supply and demand bands.
- Edge Zone Max (x Range) — caps those bands as a fraction of the channel height.
- Show Equilibrium Line — the dashed 50% line.
- Max Channels On Chart — how many historical channels are retained before the oldest are removed.
BREAKOUT ENGINE
- Body Confirmed Breakout — on by default, requires the candle body midpoint to clear the edge, so wick sweeps are ignored.
- Wait For Bar Close — confirms breakouts only on closed bars, removing all intrabar flicker.
UNIVERSAL ACTIVITY ENGINE
- Activity Source — Auto, Chart Volume Only, External Symbol, or Synthetic Estimate. Auto is recommended.
- External Volume Symbol — optional reference symbol for instruments whose own feed has no volume.
- Synthetic Baseline ATR — the baseline length the synthetic proxy normalizes against.
- Show Info Panel — toggles the panel.
FLOW OVERLAY
- Show Flow Inside Channel, Flow Mode (Comparison / Total / Delta), Flow Column Height, Flow Column Width, Max Flow Columns Per Channel, Show Buy/Sell Tag.
PRESSURE GAUGE
- Show Pressure Gauge, Gauge Offset, Gauge Width.
STYLE
- Full colour control over the channel body, border, upper and lower edge zones, equilibrium line, bullish and bearish colours, channel tag text, and the info panel background and text.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ALERTS
Three alert conditions are included:
- Bullish Breakout — price resolved above a channel
- Bearish Breakout — price resolved below a channel
- New Channel — a new consolidation has been mapped
Alert messages carry the ticker and timeframe automatically.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
REPAINTING STATEMENT
Channels are created only after a squeeze has been confirmed as finished, and once a channel freezes on a breakout it never moves again. Historical channels and historical arrows are fixed.
Breakout evaluation runs on live bars by default so you see the signal as it develops; enable Wait For Bar Close if you want breakouts confirmed strictly on closed bars with no intrabar movement.
The optional external activity symbol is requested on the chart timeframe with invalid symbols ignored and no lookahead.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HONEST LIMITATIONS
- The Synthetic Activity source is a participation estimate derived from price behaviour, not traded volume. It is a reasonable proxy for relative activity and it is labelled as an estimate everywhere it is used, but it should never be interpreted as real order flow. Where a genuine volume feed exists, use it.
- The estimated buy/sell split assigns activity by close position within the bar's range. This is a standard estimation approach and it is directionally useful, but it cannot see actual aggressor side. No indicator built on standard OHLCV can.
- Consolidation detection is a lagging-by-design process: a channel is only drawn once the coil has finished, because the completed coil is what defines the boundaries. The Compression Index in the panel is the leading component and moves in real time.
- No indicator predicts direction. This tool maps structure and marks resolutions. Risk management remains entirely the responsibility of the trader.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AUTHOR VERIFICATION
- Script Name: Liquidity Breakout Matrix
- Short Title: LBM
- Author: Forex_Market_Insights
- Original Developer: Forex_Market_Insights
- Copyright: © Forex_Market_Insights
- Pine Version: v6
- Script Type: Overlay indicator
- Build: 2.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DECLARATION OF ORIGINALITY
I, Forex_Market_Insights, declare that this script is an original implementation written from scratch by me.
Every calculation block in this indicator — the Compression Index composite, the squeeze state machine, the retroactive channel construction, the ATR edge-zone model with range capping, the Universal Activity Engine and its three-tier resolution logic, the synthetic participation proxy, the estimated buy/sell split, the flow overlay scaling, the pressure gauge normalization and the body-confirmed breakout filter — was designed, coded and tested by Forex_Market_Insights.
This script does not copy, port, decompile, translate or re-skin any other author's published or protected code. Where the underlying market concepts are common technical analysis knowledge — volatility contraction, consolidation ranges, supply and demand edges, range breakouts, volume distribution within a range — they are expressed here through my own formulas and my own code architecture, which differ materially from any third-party implementation.
No built-in indicator is simply re-wrapped under a new name, and no open-source script is republished as my own work. Standard Pine built-in functions are used only as low-level mathematical primitives inside my own composite engine, in the same way any developer uses a language's standard library.
The full commented source, including this declaration, is contained in the script header.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DISCLAIMER
This tool is published for market study and educational purposes only. It is not financial advice, not a solicitation to trade, and no signal it produces is a guarantee of any outcome. Past behaviour of any pattern does not predict future results. All trading decisions and all risk taken are entirely your own responsibility.
tradingview.com/u/Forex_Market_Insights/
tradingview.com/u/Forex_Market_Insights/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OVERVIEW
Liquidity Breakout Matrix is an original consolidation-and-breakout mapping tool. It automatically detects the phases where a market stops trending and coils inside a tight liquidity pocket, draws that pocket as a structured channel on the chart, monitors the participation building up inside it, and then marks the exact bar where price resolves out of it.
Every channel it draws is a container of resting orders. The upper edge of a consolidation is where sell-side liquidity accumulates. The lower edge is where buy-side liquidity accumulates. Price does not stay inside these pockets forever — it eventually resolves through one side, and that resolution is what LBM is built to isolate and time.
The indicator is fully self-adapting. It does not use fixed pip values, fixed point distances or hard-coded thresholds anywhere in its detection logic, so the same settings behave consistently on gold, indices, FX pairs, crypto, futures and equities, on any timeframe from seconds to monthly.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY THIS INDICATOR WAS CREATED
Three specific problems motivated this build.
1. Most consolidation tools only see the range after it has already broken.
Manual range drawing is subjective, and simple "highest high / lowest low of the last N bars" boxes are drawn on every bar regardless of whether the market is actually consolidating. What was needed was a detector that identifies a genuine volatility contraction as a discrete event, waits for it to complete, and only then maps the exact bars that formed it.
2. Breakout signals fire far too often on single wicks.
A large portion of range breaks are liquidity grabs: a wick pierces the boundary, sweeps resting stops, and the candle closes back inside. A tool that treats every touch as a breakout produces constant false signals. LBM needed a confirmation model that ignores pure wick penetration by default.
3. Volume-based tools break completely on spot FX, CFD and metals feeds.
A very large number of brokers and data feeds publish no traded volume at all. Most volume-dependent indicators respond to this by printing blank values, broken numbers or an error notice, which makes half the tool useless on exactly the instruments many traders watch. LBM needed an activity engine that always resolves to something usable, and that is honest about what it is using.
The result is a single tool that maps compression, measures the participation inside it, and marks the resolution — on any instrument, with or without a volume feed.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW IT WORKS — FULL METHODOLOGY
1. THE COMPRESSION INDEX (0–100)
This is the core engine. It blends two independent and deliberately different readings of market contraction.
Reading A — structural dispersion.
Raw price is first normalized into a 0–1 position inside its own rolling high/low range over the Normalization Lookback. This converts price into a pure structural coordinate: 1 means price sits at the top of its recent range, 0 means the bottom, 0.5 means the middle. The standard deviation of that normalized coordinate is then measured over the Dispersion Length. This tells you how much price is actually travelling within its own structure. A market that is grinding sideways produces a low dispersion value even if the instrument itself is volatile in absolute terms.
Reading B — raw volatility decay.
Independently, a fast ATR is compared against a slow ATR. When recent true range is shrinking relative to the longer baseline, the ratio falls. This catches volatility drying up even when structural position is still drifting.
Combining them.
Each reading is converted into a rolling percentile rank over the Percentile Window, which places the current value against its own recent history rather than against an arbitrary fixed number. This is what makes the tool instrument-agnostic and timeframe-agnostic. The two ranks are then blended using the Dispersion Weight and inverted, producing the Compression Index:
- High Compression Index → the market is coiling
- Low Compression Index → the market is expanding
The live value is always visible in the info panel.
2. THE SQUEEZE STATE MACHINE
The Compression Index alone is not a signal. It feeds a state machine.
While the index holds above the Compression Threshold, the script counts how many consecutive bars the squeeze has lasted. When the index drops back below the threshold, the squeeze is considered released. At that moment the duration is checked against Minimum Range Bars. If the coil was too short to be meaningful it is discarded and nothing is drawn. This filter is what keeps the chart clean — brief one or two bar pauses never become channels.
3. CHANNEL CONSTRUCTION
When a valid squeeze completes, the channel is built retroactively over exactly the bars the coil lasted — not over a fixed lookback. The script walks back through that specific window and extracts:
- Main channel body — from the highest high to the lowest low of the coil, drawn as a shaded box
- Upper edge zone — a red band sized by ATR beneath the top of the channel. This is the supply pocket, where sell-side liquidity is resting
- Lower edge zone — a green band sized by ATR above the bottom. This is the demand pocket, where buy-side liquidity is resting
- Equilibrium line — a dashed line at the exact 50% of the channel
The edge zone size is capped as a fraction of the total range, so a wide channel never ends up with edge bands that swallow the whole box.
While price remains trapped inside, the channel keeps extending to the right in real time. When price resolves, the channel freezes at the breakout bar and stays on the chart, so the full history of every pocket the market built remains readable.
4. UNIVERSAL ACTIVITY ENGINE
This is the component that keeps the participation side of the tool alive on every market. It resolves a usable per-bar activity series in a strict priority order.
Priority 1 — Real chart volume.
If the feed publishes genuine traded volume, that is used and the panel reports "Chart volume (real)".
Priority 2 — External reference symbol.
You may point the indicator at another symbol that trades the same underlying asset on a venue that does publish volume — for example a futures contract or a major exchange pair. That symbol's volume is requested on the chart timeframe and used as the activity series. The panel reports "External symbol (real)".
Priority 3 — Synthetic Activity.
If neither is available, the script builds its own participation proxy. It measures each bar's true range relative to a baseline ATR to get a relative activity reading, then weights that by candle body efficiency — the proportion of the bar's range that was converted into directional body rather than rejected wick. A bar that travels far and closes with conviction registers as heavy participation; a bar that travels far but closes back where it started registers as lighter, because most of that movement was rejected.
This is explicitly a participation estimate, not traded volume, and the panel always labels it "Synthetic (estimated)" so nothing is ever presented as real exchange data.
Whichever source is resolved, it is then split into estimated buy and sell pressure using where each candle closed inside its own range: a close near the high assigns most of that bar's activity to buyers, a close near the low assigns most to sellers, and a mid-range close splits it.
5. FLOW OVERLAY INSIDE THE CHANNEL
Inside each channel, the per-bar buy/sell split is plotted as columns around the equilibrium line, so you can see which side was accumulating during the coil rather than only where price ended up.
- Comparison mode — estimated buy pressure plotted upward, estimated sell pressure plotted downward
- Total mode — a symmetric column of total activity, coloured by which side dominated
- Delta mode — only the net difference, upward when buyers led, downward when sellers led
A tag on each channel prints the total estimated buy and sell activity accumulated across the entire consolidation.
6. BREAKOUT ENGINE
A breakout is registered when price resolves outside the channel body.
With Body Confirmed Breakout enabled (the default), the midpoint of the candle body must clear the boundary. A wick alone is not enough. This single filter removes a large share of liquidity-grab false signals, because a sweep that reverses will leave the body inside the channel.
With it disabled, the close alone triggers the signal, which produces earlier but noisier entries.
On a valid break the channel freezes and an arrow prints — ▲ for an upside resolution, ▼ for a downside resolution.
7. PRESSURE GAUGE
While a channel is still unresolved, a vertical red-to-green gauge is projected to the right of price, spanning the channel's own height, with a ◀ pointer. The pointer position reflects where the net accumulated flow of that specific channel sits between its own extremes — effectively, who is currently winning inside the pocket. Above 50% means buyers have accumulated more; below 50% means sellers have.
8. INFO PANEL
The panel reports, in real time:
- Activity Source — exactly which of the three sources is currently in use, so you always know whether you are reading real volume or an estimate
- Compression — the live Compression Index out of 100
- State — whether the market is currently Coiling (with the bar count so far) or Expanding
- Active Channel — the price boundaries of the channel currently in play, or "none"
- Pressure — the current buyer percentage inside the active channel
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO READ IT ON THE CHART
- Shaded box — a completed consolidation, a liquidity pocket
- Red band at the top — supply zone, resting sell-side orders
- Green band at the bottom — demand zone, resting buy-side orders
- Dashed centre line — equilibrium of the range
- Columns inside the box — estimated buy pressure above the line, sell pressure below it
- Tag on the box — total estimated buy / sell activity for that whole consolidation
- Green ▲ arrow — price resolved upward out of that channel
- Red ▼ arrow — price resolved downward out of that channel
- Gauge on the right — live pressure balance inside the channel that has not resolved yet
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PRACTICAL USE
Reading the structure.
Treat each channel as a pool of trapped orders rather than as a support/resistance pair. The market built that pocket for a reason: it is where positions accumulated. The resolution direction tells you which side of that pocket got run.
Taking the resolution.
The straightforward application is to act on the arrow, in the direction of the break, using the opposite edge zone of the broken channel as the invalidation level. That edge is structurally meaningful — if price returns all the way through the channel to the far side, the breakout thesis is dead.
Failed resolutions.
A break that immediately returns inside the channel is a failed resolution and is often the more powerful signal. Liquidity was taken on one side and rejected; these frequently run hard toward the opposite edge instead. Watching for this behaviour on a frozen channel is one of the higher-quality uses of the tool.
Using the flow.
When the flow overlay shows one side clearly dominating during the coil, and price then resolves in that same direction, the two agree and the resolution has participation behind it. When the coil shows heavy buying but price resolves downward, that is a distribution signature — buyers were absorbed. Read this as context, not as a standalone signal.
Using compression.
A rising Compression Index with the state showing "Coiling" and a growing bar count tells you a channel is being built right now, before it is drawn. This is your advance warning that a resolution is being set up.
Timeframe stacking.
Because the engine is percentile-based, it works identically on higher timeframes. Mapping the channel on a higher timeframe and taking the resolution on a lower one is a natural workflow.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SETTINGS
COMPRESSION ENGINE
- Sensitivity Preset — High, Medium, Low or Custom. High produces more channels on faster charts, Low isolates only the heaviest compressions. Custom unlocks the manual threshold and minimum-bar inputs below.
- Normalization Lookback — the range used to map price into its 0–1 structural position.
- Dispersion Length — bars used to measure how much normalized price is travelling.
- Percentile Window — the rolling window that current compression is ranked against.
- Compression Threshold — the level the index must hold above for a squeeze to be active. Higher means fewer, tighter channels.
- Minimum Range Bars — coils shorter than this are discarded entirely.
- Dispersion Weight — blends between structural dispersion (1.0) and raw ATR contraction (0.0).
- Fast / Slow ATR Length — the two legs of the volatility-decay reading.
- Maximum Range Bars — caps how far back a single channel can be reconstructed.
CHANNEL AND ZONES
- Keep Channel After Breakout — on by default, broken channels stay frozen on the chart so you keep the full history. Turn it off if you only want the currently active pocket visible.
- Edge Zone Size (x ATR) — thickness of the supply and demand bands.
- Edge Zone Max (x Range) — caps those bands as a fraction of the channel height.
- Show Equilibrium Line — the dashed 50% line.
- Max Channels On Chart — how many historical channels are retained before the oldest are removed.
BREAKOUT ENGINE
- Body Confirmed Breakout — on by default, requires the candle body midpoint to clear the edge, so wick sweeps are ignored.
- Wait For Bar Close — confirms breakouts only on closed bars, removing all intrabar flicker.
UNIVERSAL ACTIVITY ENGINE
- Activity Source — Auto, Chart Volume Only, External Symbol, or Synthetic Estimate. Auto is recommended.
- External Volume Symbol — optional reference symbol for instruments whose own feed has no volume.
- Synthetic Baseline ATR — the baseline length the synthetic proxy normalizes against.
- Show Info Panel — toggles the panel.
FLOW OVERLAY
- Show Flow Inside Channel, Flow Mode (Comparison / Total / Delta), Flow Column Height, Flow Column Width, Max Flow Columns Per Channel, Show Buy/Sell Tag.
PRESSURE GAUGE
- Show Pressure Gauge, Gauge Offset, Gauge Width.
STYLE
- Full colour control over the channel body, border, upper and lower edge zones, equilibrium line, bullish and bearish colours, channel tag text, and the info panel background and text.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ALERTS
Three alert conditions are included:
- Bullish Breakout — price resolved above a channel
- Bearish Breakout — price resolved below a channel
- New Channel — a new consolidation has been mapped
Alert messages carry the ticker and timeframe automatically.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
REPAINTING STATEMENT
Channels are created only after a squeeze has been confirmed as finished, and once a channel freezes on a breakout it never moves again. Historical channels and historical arrows are fixed.
Breakout evaluation runs on live bars by default so you see the signal as it develops; enable Wait For Bar Close if you want breakouts confirmed strictly on closed bars with no intrabar movement.
The optional external activity symbol is requested on the chart timeframe with invalid symbols ignored and no lookahead.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HONEST LIMITATIONS
- The Synthetic Activity source is a participation estimate derived from price behaviour, not traded volume. It is a reasonable proxy for relative activity and it is labelled as an estimate everywhere it is used, but it should never be interpreted as real order flow. Where a genuine volume feed exists, use it.
- The estimated buy/sell split assigns activity by close position within the bar's range. This is a standard estimation approach and it is directionally useful, but it cannot see actual aggressor side. No indicator built on standard OHLCV can.
- Consolidation detection is a lagging-by-design process: a channel is only drawn once the coil has finished, because the completed coil is what defines the boundaries. The Compression Index in the panel is the leading component and moves in real time.
- No indicator predicts direction. This tool maps structure and marks resolutions. Risk management remains entirely the responsibility of the trader.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AUTHOR VERIFICATION
- Script Name: Liquidity Breakout Matrix
- Short Title: LBM
- Author: Forex_Market_Insights
- Original Developer: Forex_Market_Insights
- Copyright: © Forex_Market_Insights
- Pine Version: v6
- Script Type: Overlay indicator
- Build: 2.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DECLARATION OF ORIGINALITY
I, Forex_Market_Insights, declare that this script is an original implementation written from scratch by me.
Every calculation block in this indicator — the Compression Index composite, the squeeze state machine, the retroactive channel construction, the ATR edge-zone model with range capping, the Universal Activity Engine and its three-tier resolution logic, the synthetic participation proxy, the estimated buy/sell split, the flow overlay scaling, the pressure gauge normalization and the body-confirmed breakout filter — was designed, coded and tested by Forex_Market_Insights.
This script does not copy, port, decompile, translate or re-skin any other author's published or protected code. Where the underlying market concepts are common technical analysis knowledge — volatility contraction, consolidation ranges, supply and demand edges, range breakouts, volume distribution within a range — they are expressed here through my own formulas and my own code architecture, which differ materially from any third-party implementation.
No built-in indicator is simply re-wrapped under a new name, and no open-source script is republished as my own work. Standard Pine built-in functions are used only as low-level mathematical primitives inside my own composite engine, in the same way any developer uses a language's standard library.
The full commented source, including this declaration, is contained in the script header.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DISCLAIMER
This tool is published for market study and educational purposes only. It is not financial advice, not a solicitation to trade, and no signal it produces is a guarantee of any outcome. Past behaviour of any pattern does not predict future results. All trading decisions and all risk taken are entirely your own responsibility.
tradingview.com/u/Forex_Market_Insights/
Скрипт с открытым кодом
В истинном духе TradingView, создатель этого скрипта сделал его открытым исходным кодом, чтобы трейдеры могли проверить и убедиться в его функциональности. Браво автору! Вы можете использовать его бесплатно, но помните, что перепубликация кода подчиняется нашим Правилам поведения.
Join My VIP Free Signals Channel.✅
telegram.me/+ZNhfjlhXP3s4OWI1
For Daily LIVE Trades,
Join Free Telegram Channel ✅
telegram.me/+ZNhfjlhXP3s4OWI1
telegram.me/+ZNhfjlhXP3s4OWI1
For Daily LIVE Trades,
Join Free Telegram Channel ✅
telegram.me/+ZNhfjlhXP3s4OWI1
Отказ от ответственности
Информация и публикации не предназначены для предоставления и не являются финансовыми, инвестиционными, торговыми или другими видами советов или рекомендаций, предоставленных или одобренных TradingView. Подробнее читайте в Условиях использования.
Скрипт с открытым кодом
В истинном духе TradingView, создатель этого скрипта сделал его открытым исходным кодом, чтобы трейдеры могли проверить и убедиться в его функциональности. Браво автору! Вы можете использовать его бесплатно, но помните, что перепубликация кода подчиняется нашим Правилам поведения.
Join My VIP Free Signals Channel.✅
telegram.me/+ZNhfjlhXP3s4OWI1
For Daily LIVE Trades,
Join Free Telegram Channel ✅
telegram.me/+ZNhfjlhXP3s4OWI1
telegram.me/+ZNhfjlhXP3s4OWI1
For Daily LIVE Trades,
Join Free Telegram Channel ✅
telegram.me/+ZNhfjlhXP3s4OWI1
Отказ от ответственности
Информация и публикации не предназначены для предоставления и не являются финансовыми, инвестиционными, торговыми или другими видами советов или рекомендаций, предоставленных или одобренных TradingView. Подробнее читайте в Условиях использования.