Indicator

Indicator

Volume Nodes & Value Migration [MQLSoftware]Volume Nodes & Value Migration is an anchored volume profile engine that rebuilds the profile construction itself and then measures how price actually behaves around the profile's own structure: the Point of Control (POC), the Value Area (VAH / VAL), high-volume nodes (HVN) and low-volume nodes (LVN). Instead of a fixed number of rows filled by spreading each bar's volume uniformly, it derives the bin height from ATR at each window anchor, weights every bar's volume toward its close with a triangular kernel, recomputes the POC and Value Area on every confirmed bar so the migration of value is visible as a trail, arms the committed POC and high-volume nodes as trackable levels with an accepted / rejected state machine, and reports measured base rates for those events from the chart's own history.
This is a visual analytical tool intended for chart reading and volume-structure mapping. It does not execute trades and does not provide financial advice.
Key Features
Anchored volume profiles (Day / Week / Month / Quarter, or Auto per chart timeframe) with bin height derived from ATR at the window anchor, so the bin count follows the window's range-to-ATR ratio instead of a fixed row number
Close-weighted triangular distribution: each bar's volume is spread over its high-low span with the apex at the close, so the settled price carries more weight than the wick extremes
Developing POC step-trail and Value Area band for the active window, recomputed on every confirmed bar; committed windows keep their final POC and Value Area lines so history stays clean, and consecutive windows are chained with dotted POC-to-POC links labelled with the migration distance in ATR and percent
Committed POC and the strongest HVNs arm as horizontal levels and every return is tracked armed, then accepted (confirmed closes inside the node zone) or rejected (a probe through the node center that closes outside the zone)
Thin Zones (LVN) of each committed window shaded as context — the low-volume gaps price historically transits rather than builds business in
A statistics panel with the live window status, developing value, node states and measured base rates: how often price revisited the prior POC and how node retests resolved, each with its sample size
Four confirmed-bar alerts: node accepted, node rejected, profile committed, prior POC revisited
Core Concept
PulseWire already ships volume profile tools (Visible Range, Fixed Range, Session and periodic profiles), and most community profiles repeat the same construction: a fixed row count, each bar's volume spread uniformly across its high-low range, and a final static histogram left for the reader to interpret. This indicator rebuilds each of those stages and then closes the loop by measuring what price actually does at the profile's own levels. Five specific algorithmic elements:
1. Adaptive resolution. The bin height is derived from ATR at the window anchor (Coarse 0.50, Balanced 0.25, Fine 0.125 ATR per bin), so the number of bins follows the window's range-to-ATR ratio. A quiet range window and an expansion window get structurally comparable profiles on any symbol and timeframe, with no fixed row count and no per-market tuning. If a window's range outgrows the internal cap, bins merge 2:1 and the height doubles — resolution stays bounded by construction.
2. Close-weighted triangular distribution. Each bar's volume is distributed over its high-low span by a triangular kernel with its apex at the bar close: the weight a price bin receives is the integral of that kernel over the bin. For a bin inside a bar with low L, high H and close C, the weight is F(b) - F(a), where F(x) = (x - L)^2 / ((H - L)(C - L)) below the close and F(x) = 1 - (H - x)^2 / ((H - L)(H - C)) above it. The settled price therefore carries more weight than the wick extremes, which a uniform spread treats identically to the body.
3. Developing value area. POC, VAH and VAL are recomputed on every confirmed bar of the active window; the POC is drawn as a step trail and the Value Area as a developing band, so the reader sees value migrate through the window — POC ladders, value-area expansion and contraction — rather than only the final snapshot. Once a window commits, its trail retires and the final POC / VAH / VAL lines remain, so history stays readable. Committed windows are chained with dotted POC-to-POC links labelled with the migration distance in ATR units and percent.
4. Node acceptance state machine. When a window commits, its POC and the strongest HVNs (local peaks holding at least half of the POC volume) arm as horizontal levels. Every return is tracked on confirmed bars only: a retest is accepted after N consecutive confirmed closes inside the node zone (node center plus/minus half an ATR, never thinner than one bin), and rejected when a probe trades through the node center and closes outside the zone, or when a visit leaves the zone before N closes. A graze of the zone edge that neither trades the center nor closes inside resolves nothing. Resolutions are latched and marked on the chart; unresolved nodes expire when the next window commits.
5. Measured base rates. The panel reports observed frequencies from this chart's own loaded history: how often price traded back through the prior window's POC, how often POC retests resolved as accepted, and how often HVN retests were rejected — each with its sample size. Below a minimum sample the panel says "collecting" instead of quoting a percentage. Observed frequencies, not assumptions, and no claims attached to them.
Anatomy of the Display
The committed histogram is the final profile of each closed window, drawn from the window's start with bin brightness following volume share; the Value Area is shaded behind it. The POC row and line mark the single price bin that traded the most volume, labelled `POC · High Volume Node`; VAH and VAL are dashed lines labelled `VAH · Value Area High` and `VAL · Value Area Low`.
The developing trail is a step line of the active window's POC with the developing Value Area shaded behind it, both recomputed on every confirmed bar and existing only for the window still forming. The dotted migration link connects the final POCs of consecutive windows and carries a label with the shift in ATR units and percent.
Node lines extend right from each commit: the POC node in the bright POC color, HVNs in the profile color, each labelled by kind. When a retest resolves, the line recolors and a mark is printed: `✓ accepted` when price held the required confirmed closes inside the zone, `✕ rejected` when it was turned away. Expired (untested) nodes fade to dotted.
Thin Zones are faint dashed boxes labelled `LVN · Thin Zone` over the committed window's low-volume gaps. They carry no state machine and no alerts — context only.
The panel shows the window status (anchor period, bars, bins and bin height), the developing POC and Value Area, the POC migration versus the prior window, the state of each armed node, and the measured base rates with sample sizes.
Notes on Repainting
Volume accumulation, developing POC / VAH / VAL updates, node state transitions, base-rate counters and alerts run on confirmed bars only.
A committed profile is final: it is built exclusively from the confirmed bars of a closed window and is never recalculated afterwards.
Node resolutions are latched. An accepted or rejected mark cannot un-happen if price later trades back through the level.
The live developing histogram, POC trail and Value Area band of the current window redraw as the window grows — they are explicitly visual context for the forming profile, not signals.
The script requests no higher-timeframe data at all (no `request.security` calls); window anchors are detected with `timeframe.change` in the chart context.
Alerts are gated by confirmed-bar events and fire once per closed bar, never intra-bar.
Typical Analysis Workflow
A common analytical workflow may include:
Reading the committed profile for the prior window: where the POC sits, how wide the Value Area is, and where the Thin Zones are
Watching the developing POC trail of the active window — a POC laddering in one direction reads as value migrating, a static POC as value building in place
Comparing the migration link and the panel's MIGRATION row to see how far value shifted between windows in ATR terms
Waiting for price to return to an armed node and letting the state machine resolve the retest into accepted or rejected on confirmed bars
Consulting the measured base rates to see how often such revisits and retests actually occurred on this chart's history, then combining the read with other forms of analysis and risk management
Configuration
Anchor Period - the window each profile covers (Auto, Day, Week, Month, Quarter); Auto follows the chart timeframe and a pick at or below it escalates automatically.
Committed Profiles to Keep - how many closed windows keep their histogram drawn; statistics always use the full loaded history.
Profile Detail - target resolution (Coarse / Balanced / Fine), expressed as ATR per bin, never a bin count.
ATR Length - the ATR lookback used for bin height and migration distances.
Value Area % - the share of window volume the Value Area encloses.
Track POC / HVN as Nodes - arms committed levels for the accepted / rejected state machine.
Acceptance Closes - confirmed closes inside the node zone required for an accepted resolution.
HVN Nodes per Window - how many high-volume nodes arm besides the POC.
Thin Zones (LVN) - shades the committed window's low-volume gaps.
Resolved Marks to Keep - how many resolved node marks stay drawn on the chart; the measured statistics are unaffected.
Rendering - committed profiles, live developing profile, profile width, the active window's POC trail and Value Area band, migration links, glow, and the four palette colors.
Statistics Panel - visibility, corner and text size.
Markets and Timeframes
The indicator can be applied across multiple markets and timeframes:
Forex
Stocks and Indices
Commodities
Cryptocurrencies
Because the bin height, node zones and migration distances are all ATR-based, the visual behavior stays consistent across instruments and timeframes. On symbols that supply no volume data the script weights every bar equally (a time-at-price read) and the panel states so explicitly.
Alerts
Node accepted - price printed the required confirmed closes inside an armed node zone
Node rejected - an armed node turned the retest away (probe through the node center with a confirmed close outside the zone)
Profile committed - an anchor window closed; its profile is final and its nodes are armed
Prior POC revisited - price traded back through the previous window's Point of Control
All alerts evaluate on confirmed bars to avoid intra-bar oscillation. A dynamic alert message naming the exact event(s) is also provided. Indicator

Median Point of ControlMedian Point of Control calculates and displays the median OHLC4 price for customizable time periods, along with percentage-based upper and lower bands. It provides a statistical reference framework for identifying potential support, resistance, and mean-reversion zones.
What It Does
This indicator computes the median of all OHLC4 values within a defined period and plots three horizontal levels:
Median Line — The statistical middle price of the period
Upper Band — Median + user-defined percentage
Lower Band — Median - user-defined percentage
The current period's levels update dynamically as new bars form. Completed periods are preserved as historical reference lines.
Why Median Instead of Average?
The median is the "middle" value when all prices are sorted. Unlike the mean (average), the median is resistant to outliers — a single extreme wick or price spike won't distort the level. This makes it more representative of typical price action during the period.
Two Calculation Modes
Timeframe Mode Define periods using standard timeframes: 4H, Daily, Weekly, Monthly, etc. The indicator automatically detects when each period begins and ends.
Bars Mode Define periods by a fixed number of bars (e.g., every 50 bars, every 100 bars). Useful for non-time-based analysis or custom period lengths that don't align with standard timeframes.
Settings
Calculation Mode: Choose between Timeframe or Bars
Timeframe: Period length when using Timeframe mode
Bars: Number of bars per period when using Bars mode
Band Distance (%): Percentage offset for upper/lower bands from median
Line Colors: Customize colors for median, upper, and lower bands
Line Width: Thickness of the plotted lines
Historical Transparency: Opacity of completed period lines
Max Historical Periods: Number of past periods to display
How To Use
Identify the range: The upper and lower bands create a price envelope based on the period's median. When price approaches these levels, watch for reactions.
Mean reversion reference: The median line represents the "fair value" of the period. Price tends to oscillate around this level.
Breakout detection: If price breaks and holds beyond a band, it may signal trend continuation rather than reversion.
Multi-timeframe analysis: Use Daily median on intraday charts to see where price stands relative to the day's statistical center.
Important Notes
This indicator does not predict price direction. It provides statistical reference levels only.
The current period's median updates with each new bar — this is expected behavior, not repainting.
Historical period lines are fixed once their period closes.
For best results, use on liquid instruments (stocks, forex majors, major crypto pairs).
Indicator

Dual Log Regression Channels [BigBeluga]Dual Log Regression Channels is a highly advanced multi-timeframe mathematical modeling terminal engineered for PulseWire. It maps, projects, and blends two independent logarithmic regression channels directly onto your asset layout screen to deliver an institutional-grade perspective on trend structure, market cycles, and structural volume distributions.
By separating price discovery parameters into a long-term Macro Channel and an execution-focused Short Term Channel, this tool effectively resolves the classic trader conflict of assessing structural trend directions while looking for immediate micro execution setups. Rather than treating market space as flat, standard geometric lines, this engine runs an advanced curve-fitting algorithm over your data to follow the exponential nature of capital expansion and distribution.
🔵 INTUITIVE SYSTEM ARCHITECTURE & ENGINE FEATURES
1. Logarithmic Regression Curve Optimization
Non-Linear Structural Tracking: Standard linear regression struggles with volatile crypto or high-growth equity trends over massive lookback structures. This script continuously converts incoming data matrices into mathematical log-space, computes a best-fit ordinary least squares (OLS) linear progression, and converts the output back into exponential value curves.
Dual Horizons Convergence Layer: Tracks an extensive trend anchor block (defaulting to 300 bars) simultaneously with a highly responsive, high-velocity swing lookback matrix (defaulting to 50 bars). This exposes localized micro contractions occurring right at major macro boundary extremes.
Visual Deviation Spacing Bands: Channels automatically map out distinct volatility boundaries based on real-time Standard Deviation multipliers. This defines predictable mathematical risk corridors where asset expansions typically exhaust and snap back toward the median baseline.
2. Predictive Channel Extension & Real-Time Trend Direction Arrows
Dynamic Origin Trend Arrows: The engine processes a dedicated directional diagnostic framework at the precise historical start (origin node) of each lookback channel. It generates sharp, high-visibility glyph trend arrows ( ⇗ for structural uptrends and ⇘ for structural downtrends). These arrows offer an instant, real-time assessment of the mathematically calculated baseline slope, entirely bypassing visual guesswork when channels run relatively flat.
Forward-Projected Space Models: When enabled, both the Macro and Short-Term structural bands project forward into the future chart space blank zone (e.g., 50 bars ahead for Macro, 20 bars for Short-Term). This lets you visually identify intercept locations and major trend crossroads long before price action arrives.
3. Adaptive Embedded Channel Volume Profiles (VP)
Integrated Block Volume Binning Matrix: Moving beyond basic fixed or visible range volume profiles, this module segments and collects transacted volume profiles exclusively inside the exact coordinate boundaries of each respective channel.
Dynamic Coordinate-Aligned Shading Bars: The volume profile rows scale and project outward utilizing advanced polyline geometry arrays, maintaining structural alignment with the slope of the moving channel boundaries.
Point of Control (POC) Trailing Baselines: Automatically tracks and renders a crisp, high-visibility solid horizontal baseline ( POC Line ) marking the exact price bin location that attracted the highest volume concentration throughout that lookback phase.
4. Volumetric Delta Tracking Panels
Buy vs. Sell Volume Accumulation Blocks: Aggregates total execution volume during the lookback period, classifying volume based on bar polarity.
Net Order Flow Delta Percentages: Computes and prints the precise net mathematical buying/selling pressure delta inside the channel. This reveals quiet accumulation behavior or hidden distribution trends directly alongside your spatial boundary drawings.
🔵 SYSTEMATIC EXECUTION STRATEGIES & RISK INTERPRETATION
Confluence Zone Intercept Trading: Look for setups where the Short Term Channel’s outer standard deviation boundaries align directly with the Macro Channel's major structural lines. When a high-velocity micro asset trend exhausts itself at a long-term macro floor or ceiling, it marks a highly efficient, asymmetric inflection zone for trend continuation entries or macro reversals.
Volume Profile POC Mean Reversion Matrix: The volume profile POC lines show where massive institutional blocks shifted hands inside that channel's lifespan. If the market stretches thin near an upper outer boundary but net volumetric volume indicators begin shifting toward seller control, look for a swift mean-reversion move down toward the high-liquidity POC baseline node.
Trend Acceleration vs. Overextended Breakouts: When an asset forces a candle close completely outside the projected log channel boundaries, it flags an exceptional shift in trend velocity. If the Volume Delta percentage prints an explosive spike in that direction, it supports a trend acceleration play. If volume is thin, it warns you of a predatory, overextended fakeout structure that is likely to snap back into the central channel values.
🔵 INTERFACE CONFIGURATION AND PARAMETERS
Lookback & Deviation Tuning Blocks: Customize historical calculation boundaries and volatility widths separately for both trend layers to match any asset class or time frame preference.
Volume Profile Customization: Control the precise resolution of the volume profile by adjusting row count bins and max bar widths to match your specific layout.
Clean Workspace Overrides: Toggle visibility filters to hide median baselines, remove raw background asset lines, or completely customize color theme hex codes to fit cleanly within your setup without causing visual clutter.
Transform your charting environment from basic straight lines into an exponential, volume-weighted structural map with the Dual Log Regression Channels terminal. Indicator

HTF Profile Projection | Rainbow MatrixGENERAL OVERVIEW
HTF Profile Projection is a live higher-timeframe X-ray. It takes the current, still-forming candle of a higher timeframe (for example the 4H or Daily candle) and projects it to the right of live price, then fills it with a horizontal profile that shows what is happening INSIDE that candle: where volume is concentrating, where buyers or sellers are dominating each price zone, and where price moved through empty space.
The goal is to let a trader read the internal structure of the higher-timeframe candle without leaving the current chart. Instead of seeing the 4H candle as a single block, you see its anatomy — the price levels that hold the most activity, the zones controlled by buyers versus sellers, and the thin gaps the candle ran through quickly. Every bar in the profile is built from real chart-bar data accumulated since the higher-timeframe candle opened, not drawn manually.
WHAT IS THE THEORY BEHIND THIS INDICATOR?
A higher-timeframe candle is a summary. A single 4H or Daily candle compresses hours of two-sided auction into one open, high, low, and close — and in doing so it hides where the volume actually traded and which side was in control at each price. Two candles with an identical body and identical range can have completely different internal structures: one built on heavy buying absorbed near the lows, the other on distribution near the highs. The standard candle cannot show that difference.
Most tools that try to surface this are built around the wrong constraint. Single-timeframe volume profiles describe the visible range, not the live higher-timeframe candle. Intrabar dissection tools that read true sub-candle data depend on functions that require additional data subscriptions and will not load on standard plans.
HTF Profile Projection takes a different route: it accumulates the chart's own bars since the higher-timeframe candle opened, and distributes each bar's activity across the price range it actually traversed. This reconstructs the internal volume and directional balance of the forming higher-timeframe candle using only standard data feeds — and projects it forward as a single, readable object.
The practical value: when price returns to a higher-timeframe candle later, the levels that mattered inside it — the high-volume node, the buyer- or seller-dominated zones, the empty imbalance gaps — are common revisit and reaction areas. Seeing them while the candle is still forming gives structural context that the candle body alone cannot.
HTF PROFILE PROJECTION FEATURES
The indicator includes these main components: a projected higher-timeframe candle, a range-spread movement profile, automatic resolution, a buy/sell dominance read, imbalance zones, a Point of Control marker, and a live info panel. Multilingual interface and full visual customization.
PROJECTED HTF CANDLE
🔹 What It Does
Reads the live, still-forming higher-timeframe candle and draws it (body + wicks) to the right of live price, color-coded by its direction. The horizontal profile attaches inside its price range.
🔹 Method
The higher-timeframe OHLCV is read via request.security() with lookahead=barmerge.lookahead_off, so no future information is used. The candle and its profile update in real time as the higher-timeframe bar forms — the intended live behavior — and reset cleanly when a new higher-timeframe period opens. If the chart timeframe is at or above the selected higher timeframe, the profile is hidden and a guard note is shown, because one chart bar covering the whole period cannot produce a meaningful internal read.
RANGE-SPREAD MOVEMENT PROFILE
🔹 What It Does
Splits the higher-timeframe candle's range into horizontal price buckets and fills each with the activity that occurred there.
🔹 Method
Since the higher-timeframe candle opened, each chart bar's volume and signed direction are accumulated, then distributed across every bucket the bar's low–high range spans — not dumped at a single midpoint. This range-spread approach makes both the per-zone volume and the per-zone buy/sell balance reflect where price actually traded inside the candle, rather than collapsing onto one level.
AUTOMATIC RESOLUTION
🔹 What It Does
The number of price buckets is chosen automatically from volatility. The higher-timeframe range is divided by the average chart-candle size (ATR), so each fraction of the profile corresponds to roughly one typical move of the chart timeframe.
🔹 Why It Matters
Calmer markets produce a finer profile; volatile markets produce a coarser one. The resolution matches the instrument and timeframe automatically, bounded between 4 and 50 buckets to keep the chart readable.
BUY/SELL DOMINANCE (DELTA MODE)
🔹 What It Does
In Delta mode (the default), each zone is colored by which side dominated: green for net buyers, red for net sellers, and gray for balanced zones where heavy two-way trade produced no clear winner. Bar length shows the magnitude of the imbalance.
🔹 Method
Each chart bar is classified by the sign of close versus open and contributes its volume as signed activity (+ for an up bar, − for a down bar). The net per zone is a direction-based proxy for buy/sell pressure, computed locally on standard data feeds — it is not exchange order-flow data, which Pine cannot access without additional subscriptions.
🔹 Volume Mode
Switching Source Metric to Volume colors the profile by a cold-to-hot intensity gradient instead, showing how much traded at each price regardless of direction.
IMBALANCE ZONES
🔹 What It Does
Price zones with little or no activity render distinctly. A contiguous run of empty buckets marks an imbalance — a price range the higher-timeframe candle moved through quickly with little participation.
🔹 Why It Matters
These gaps are not drawn as separate boxes; they emerge from the ABSENCE of activity in the profile. They are common revisit targets, since price often returns to fill ranges it previously skipped.
POINT OF CONTROL MARKER
🔹 What It Does
A horizontal marker tags the dominant bucket — the price level with the most activity (Volume mode) or the strongest net dominance (Delta mode). A label reports that level's share of the period's total.
LIVE INFO PANEL
🔹 What It Shows
A compact corner panel reports the higher timeframe in use, the percentage of the period elapsed, the Point of Control price, the number of imbalance zones, and the total higher-timeframe volume. When the chart-timeframe guard is active, the panel collapses to a single notice so the user always gets feedback.
🔹 Customization
The panel can be placed in any of the four chart corners and rendered in several font sizes. The display language is controlled by the System Language input.
HOW TO USE
This indicator is not a signal generator. It is a structural X-ray: it shows the internal anatomy of the forming higher-timeframe candle.
🔹 Setup
Set the Higher Timeframe input above your current chart timeframe (for example chart 15m, HTF 4H). The forward candle appears to the right of live price. If the chart timeframe is at or above the HTF, the profile hides and the guard note appears.
🔹 Reading Delta Mode (default)
Green zones mark prices where buyers dominated, red where sellers dominated, gray where the auction was balanced. The Point of Control marks the most decisive level inside the candle.
🔹 Reading Volume Mode
The rainbow profile shows where the most volume traded. Long bars are high-activity nodes; gaps are low-volume imbalance zones.
🔹 Tactical Reading
◇ A high-activity node is a price the higher timeframe has accepted — a common reaction level on revisit.
◇ A buyer- or seller-dominated zone shows which side controlled that price during the period.
◇ An imbalance gap is a range price ran through quickly — a frequent magnet for later revisits.
INPUTS EXPLAINED
🔹 System Language
Display language for the panel and labels. Options: English (default), Português, Español, Русский, 中文 (Chinese).
🔹 Higher Timeframe
The higher timeframe to project. Must be above the chart timeframe.
🔹 Show Forward HTF Candle
Toggle for the projected candle body and wicks.
🔹 Auto-Resolution ATR Length
Lookback for the average chart-candle size used to pick the bucket count.
🔹 Source Metric
Volume (intensity gradient) or Delta (buy/sell dominance, default).
🔹 Projection Offset / Profile Width
Position and maximum horizontal length of the profile to the right of price.
🔹 Spike Threshold / Imbalance Threshold
Controls for what counts as a high-activity node and what counts as an empty/imbalance zone.
🔹 Palette Mode
Intensity (cold-to-hot) or Bull-Bear (dominance coloring, default).
🔹 Profile Transparency / Show POC Marker
Visual styling for the profile and the Point of Control line.
🔹 Info Panel / Position / Font Size
Toggle, corner, and size for the live panel.
IMPORTANT NOTES
HTF Profile Projection works on any chart timeframe below the selected higher timeframe. It is built for liquid instruments with reliable volume data: crypto perpetual contracts, large-cap equities, futures, major forex pairs. On low-volume instruments the profile becomes less reliable.
This is a real-time tool. The forming higher-timeframe candle and its profile update intra-period by design; the profile resets when a new higher-timeframe period opens. It uses only request.security() and chart-bar accumulation, so it runs on standard data feeds without footprint() or request.security_lower_tf().
Pine Script v6. Open-source under Mozilla Public License 2.0.
UNIQUENESS
HTF Profile Projection is unique in how it unifies three reads into one object. Most higher-timeframe context tools stack separate features: a candle outline, fair-value-gap rectangles, and volume-spike markers. This indicator merges them — the forward higher-timeframe candle and its volume-by-price profile are a single object. High-activity zones appear as the profile's longest bars; imbalance zones are not drawn at all, they emerge from the absence of activity in the profile. The buy/sell dominance read is reconstructed from chart-bar direction and distributed across each bar's true price range, so it reflects where the auction was actually contested — and it does this on standard data feeds, without the order-flow subscriptions that comparable intrabar tools require. The combination of a live forward-projected candle, automatic volatility-matched resolution, range-spread accumulation, and dominance-versus-balance coloring produces a structural read that behaves differently from single-timeframe volume profiles and from static fair-value-gap tools. Indicator

Polynomial/Linear Regression Volume Profile [BigBeluga]Polynomial/Linear Regression Volume Profile is a state-of-the-art charting framework that blends advanced statistical modeling with localized volume distribution analysis. By evolving past traditional, static horizontal volume profiles, this indicator dynamically curves the volume profile matrix around mathematical trend baselines, giving you a hyper-localized view of value zones, support, and resistance across the trend’s lifecycle.
Equipped with a switchable Ordinary Least Squares (OLS) calculation engine, traders can analyze price distribution relative to a straight path (Linear) or an adaptive structural arc (Polynomial).
🔵 RECURSIVE REGRESSION BASELINES
Adaptive Curve Fitting Engine: Choose between a straight-line trend tracking framework (Linear) or an advanced second-degree curved path (Polynomial). This non-linear baseline curves dynamically to track real institutional momentum shifts, avoiding the lag or rigid delays typical of standard moving averages.
Symmetric Grid Segmentation: The indicator slices the regression space into dynamic parallel layers above and below the center line. These tracking cells act as a structural map of the trend, automatically expanding or contracting based on the mathematical bounds of the lookback period.
Standard Deviation Wave Bands: Plots dedicated tracking envelopes at 1, 2, and 3 Standard Deviations. This maps statistical extremes instantly, highlighting key valuation zones directly on the chart.
🔵 CURVED ORDER FLOW PROFILE
Dynamic Trend-Anchored Volume Profile: Traditional volume profiles are anchored strictly to vertical price grids. This framework bends the profile horizontally along the path of the regression curve. This ensures volume is localized directly relative to the trend's value matrix rather than arbitrary static prices.
Dynamic Point of Control Matrix (POC): The tool calculates cumulative transaction weights across each regression row. The absolute highest volume cluster is highlighted across the entire lookback window as a vivid Point of Control (POC) baseline, serving as a primary target magnet for price discovery.
Gradient Density Mapping: Volume bins are colored with a responsive heat-map gradient. Low-volume zones fade into deep baseline tones, while high-volume institutional interest areas light up dynamically, reflecting heavy positional accumulation.
🔵 DATA INTERFACE & CONTROLS
Regression Matrix Dashboard (Top-Right): A neat information center providing live metrics, including current trend direction (Bullish/Bearish), the numerical value of the POC level, the exact transactional volume resting at that key node, and structural $\pm3\text{ SD}$ channel limits.
Precision Profile Scaling: Adjust the profile width parameters to limit or extend how far back profile bins stretch across your chart space to prevent layout clutter.
Complete Style Personalization: Individualized visual controls allow you to switch line architectures (Solid, Dashed, Dotted) across baselines, boundaries, and POC paths.
🔵 STRATEGIC APPLICATION
Trading the Trend Value Nodes: Treat the dynamic POC line as a trend anchor. In a strong bullish trend, pullback entries occurring at a highly concentrated, heat-mapped POC node represent low-risk, high-probability entry criteria.
Mean Reversion at Statistical Boundaries: When price extends completely out to the dynamic outer channel limit and volume density in that outer bin thins out, look for a swift mean-reversion snapback toward the baseline.
Volume Profile Breakouts: Low-volume zones (gaps in the curved profile) indicate price levels that the market skipped quickly due to high momentum. If price breaks past a thick volume node into a low-volume zone, it is likely to sprint quickly toward the next major heat-mapped node.
Structural Regime Tracking: Use the upper-right dashboard to instantly evaluate macro status. If the matrix shifts between Bullish and Bearish while price hovers consistently near a high-volume POC, it implies heavy institutional distribution is occurring before the next major expansion.
Polynomial/Linear Regression Volume Profile redefines volume structure. By wrapping the laws of order flow directly around mathematical curves, it gives trend traders an elite perspective to trade with precision, statistical logic, and institutional order flow visibility. Indicator

Institutional Volume Flow [BigBeluga]🔵 OVERVIEW
Institutional Volume Flow is a higher-timeframe segmented developing volume profile tool designed to reveal where institutional participation is building inside active price ranges.
Instead of plotting static session profiles, this indicator dynamically tracks the developing High, Low, Midpoint, and Point of Control (POC) for each selected higher-timeframe segment (Daily, Weekly, or Monthly).
It allows traders to visualize where volume is accumulating in real time - and where dominant positioning is forming before the segment closes.
The result is a structural + volume hybrid framework that exposes institutional footprints inside expanding ranges.
🔵 CORE CONCEPT
HTF Segmentation - The chart is divided into higher-timeframe segments (D/W/M). Each new segment starts a fresh developing volume profile.
Developing Range Logic - High and Low levels continuously update during the segment, defining the active institutional range.
Volume Distribution Mapping - All traded volume inside the segment is distributed across price bins to build a live volume profile.
Rolling Point of Control - The price level with the highest accumulated volume is recalculated every bar.
Institutional Bias Detection - Background coloring adapts depending on whether price is trading above or below the segment midpoint.
🔵 HOW IT WORKS
1️⃣ Segment Detection
A new segment begins whenever the selected higher timeframe changes.
All volume and price calculations reset at the start of a new segment.
Previous segments are frozen and preserved on the chart for historical reference.
2️⃣ Developing High / Low Structure
The highest high and lowest low inside the current segment update dynamically.
A midpoint (average of High and Low) is calculated to represent internal balance.
These levels extend forward visually for clarity.
3️⃣ Volume Profile Construction
The price range is divided into user-defined bins (Volume Profile Bins).
Each bar’s volume is assigned to the corresponding price bin.
Volume accumulates throughout the segment.
Box width represents relative volume intensity at that level.
The strongest node becomes the Point of Control (POC) .
Rolling Point of Control - The price level with the highest accumulated volume is recalculated every bar during Segment developing.
4️⃣ Developing vs Frozen Profiles
The active segment shows a developing profile that updates in real time.
When a new segment begins, the completed profile is frozen.
This allows comparison between current positioning and previous institutional distributions.
5️⃣ Volume Spike Detection (Z-Score)
A 50-bar rolling mean and standard deviation are used.
When volume significantly exceeds normal distribution, the range fill intensifies.
This highlights abnormal participation inside the active range.
🔵 KEY FEATURES
Higher-timeframe segmentation (Daily / Weekly / Monthly).
Developing High, Low, and Midpoint levels.
Bias-based profile coloring : green above midpoint, blue below midpoint.
Real-time rolling Point of Control.
Customizable number of volume bins for precision.
Adjustable profile width for clear visualization.
Frozen historical profiles for structural context (with preserved bias color).
Z-score volume spike detection.
Institutional range bias shading at segment start/end.
🔵 HOW TO USE
Watch where price interacts with the developing POC — this often signals value acceptance or rejection.
Use the segment midpoint to gauge balance vs imbalance.
Treat green profiles as bullish-leaning segments (close above mid) and blue profiles as bearish-leaning segments (close below mid).
Observe whether volume builds near highs or lows — this can indicate accumulation or distribution.
Monitor frozen prior segments to identify high-volume memory zones.
Use volume spikes to detect aggressive participation inside developing ranges.
Combine with liquidity tools or order blocks for confirmation.
🔵 INTERPRETING INSTITUTIONAL FLOW
Expanding range + rising POC → value shifting.
Contracting range + stable POC → consolidation.
Heavy volume near extremes → potential absorption.
POC migration during trend → institutional repositioning.
🔵 CONCLUSION
Institutional Volume Flow transforms higher-timeframe segmentation into a live institutional positioning map.
By combining structural range development with rolling volume profiling and abnormal volume detection, it provides traders with a powerful way to understand where participation is building - not just where price is moving.
It is especially effective for identifying accumulation, distribution, and value shifts before a higher-timeframe candle closes. Indicator

Smart Money Structure Decoder [JOAT]Smart Money Structure Decoder
Introduction
The Smart Money Structure Decoder is an advanced open-source market structure indicator that identifies institutional footprints through Break of Structure (BOS), Change of Character (CHoCH), liquidity sweeps, price imbalances, and points of interest. This indicator transforms raw price action into actionable smart money intelligence, helping traders identify when institutions are accumulating positions, sweeping liquidity, and shifting market structure.
Unlike basic support/resistance indicators that simply mark price levels, this system analyzes market microstructure through pivot detection, liquidity pool tracking, imbalance zone identification, and multi-timeframe bias alignment. The indicator is designed for traders who understand that institutional activity leaves detectable footprints in market structure and that following smart money positioning offers edge in directional trading.
Why This Indicator Exists
This indicator addresses a critical challenge in trading: identifying when institutional players are actively positioning and when they're manipulating price to trigger retail stops before moving in their intended direction. The core innovation lies in systematically detecting smart money concepts:
Market Structure Analysis: Identifies Break of Structure (BOS) when price breaks previous highs/lows in trend direction and Change of Character (CHoCH) when price breaks counter-trend, signaling potential reversals
Liquidity Sweep Detection: Tracks when price briefly exceeds key levels to trigger stops then reverses, indicating institutional liquidity hunting
Price Imbalance Zones: Identifies fair value gaps where price moved too quickly, leaving inefficiencies that often get filled
Points of Interest (POI): Marks high-volume reversal zones where institutions likely established positions
Multi-Timeframe Bias: Confirms whether higher timeframe trend aligns with current timeframe structure
Volume Confirmation: Validates structure breaks and sweeps with volume surge analysis
Real-Time Metrics: Tracks cumulative counts of BOS, CHoCH, sweeps, imbalances, and POIs for pattern recognition
Each component reveals different aspects of institutional activity. BOS confirms trend continuation, CHoCH warns of reversals, liquidity sweeps show manipulation, imbalances mark inefficiencies, POIs identify accumulation zones, MTF bias validates conviction, and volume confirms genuine moves versus fakeouts.
Core Components Explained
1. Pivot Detection System
The indicator uses pivot analysis to identify significant highs and lows:
Pivot High = High that is higher than N bars before and N bars after (default N=10)
Pivot Low = Low that is lower than N bars before and N bars after (default N=10)
These pivots represent swing points where price temporarily reversed, marking potential support/resistance levels and liquidity pools. The pivot length parameter controls sensitivity - lower values detect more pivots (more sensitive), higher values detect only major pivots (less sensitive).
The indicator tracks the most recent pivot high and pivot low, along with their bar indices, to establish the current market structure framework.
2. Market Structure Tracking
The indicator maintains persistent structure variables:
Trend Direction: +1 for uptrend, -1 for downtrend, 0 for undefined
Last High: Most recent pivot high price and bar location
Last Low: Most recent pivot low price and bar location
Market structure evolves through two mechanisms:
Break of Structure (BOS):
- In uptrend: New pivot high exceeds previous pivot high (higher high)
- In downtrend: New pivot low breaks below previous pivot low (lower low)
- BOS confirms trend continuation and institutional commitment to direction
Change of Character (CHoCH):
- In uptrend: New pivot low breaks below previous pivot low (lower low in uptrend)
- In downtrend: New pivot high exceeds previous pivot high (higher high in downtrend)
- CHoCH signals potential trend reversal and shift in institutional positioning
The indicator counts cumulative BOS and CHoCH events, allowing traders to assess whether market is trending cleanly (high BOS, low CHoCH) or choppy (high CHoCH, frequent reversals).
3. Liquidity Pool and Sweep Detection
The indicator maintains arrays of liquidity levels (recent pivot highs and lows) and monitors for sweeps:
Liquidity Pool: Array of last 10 pivot prices and their bar locations
Sweep Detection Logic:
- Price exceeds liquidity level (high > level for highs, low < level for lows)
- Close returns below/above the level (close < level for high sweeps, close > level for low sweeps)
- Volume exceeds average volume * threshold (default 1.8x)
Liquidity sweeps are classic institutional manipulation where price briefly triggers stops at obvious levels then reverses. These often mark excellent entry points as institutions have cleared liquidity and can now move price in their intended direction.
The indicator draws dashed lines from the liquidity level to the sweep bar and places labels marking "SWEEP" events. Swept levels are removed from the liquidity array as they've been cleared.
4. Price Imbalance Detection
Imbalances (Fair Value Gaps) occur when price moves so quickly that it leaves gaps in the order book:
Bullish Imbalance:
- Current low > high from 2 bars ago (gap up)
- Gap size > ATR * 0.3 (significant gap, not just noise)
Bearish Imbalance:
- Current high < low from 2 bars ago (gap down)
- Gap size > ATR * 0.3
The indicator draws boxes around imbalance zones extending 10 bars into the future. These zones often act as magnets where price returns to fill the inefficiency. Institutions frequently use imbalances as entry zones, buying into bullish imbalances or selling into bearish imbalances.
Imbalance count tracks cumulative gaps, helping identify instruments or timeframes with frequent inefficient price action versus those with smooth, efficient movement.
5. Points of Interest (POI) Detection
POIs mark zones where institutions likely established significant positions:
POI Criteria:
- Volume > Average Volume * 1.8 (high participation)
- Bar range > ATR * 0.5 (significant price movement)
- Combination suggests institutional activity
The indicator places small labels at POI locations. These zones often provide support/resistance in future price action as institutions defend their positions or add to them.
POI count helps assess institutional activity levels - high POI counts suggest active institutional participation, low counts suggest retail-dominated or low-activity periods.
6. Multi-Timeframe Bias Analysis
The indicator requests close price from a higher timeframe (default 60m) and determines HTF trend:
HTF Trend = HTF Close > HTF Close ? Bullish : Bearish
MTF Alignment = Current Timeframe Trend matches HTF Trend
When MTF is aligned, trades in the trend direction have higher probability as both timeframes agree. When MTF is divergent, caution is warranted as timeframes conflict.
The dashboard displays alignment status (ALIGNED/DIVERGENT) and strength (STRONG/WEAK) based on how clearly both timeframes show directional bias.
7. Volume Analysis and Confirmation
Volume plays a critical role in validating structure:
Average Volume = 20-period SMA of volume
Volume Spike = Current volume > Average * threshold (default 1.8x)
Volume spikes confirm:
- BOS events (genuine institutional commitment)
- CHoCH events (real reversal, not fakeout)
- Liquidity sweeps (institutional participation)
- POI zones (significant positioning)
Low volume structure breaks often fail, while high volume breaks tend to follow through. The indicator uses volume confirmation throughout its detection logic.
8. Comprehensive Metrics Dashboard
The indicator tracks and displays 13 key metrics:
1. Trend: Current market structure direction (BULLISH/BEARISH/NEUTRAL)
2. Structure: Most recent event (BOS/CHoCH/NONE) with count
3. BOS Count: Cumulative break of structure events with status (HIGH/ACTIVE/LOW)
4. CHoCH Count: Cumulative change of character events with status (CHOPPY/ACTIVE/CLEAN)
5. Liquidity: Active liquidity levels count with status (SWEPT/DENSE/NORMAL)
6. Sweeps: Cumulative sweep count with status (ACTIVE/SOME/NONE)
7. Imbalances: Cumulative imbalance count with status (HIGH/ACTIVE/LOW)
8. POI: Points of interest count with status (ACTIVE/MANY/FEW)
9. Volume: Current volume status (SPIKE/HIGH/NORMAL) with ratio
10. Position: Price position in session range (PREMIUM/DISCOUNT/EQUILIBRIUM) with bias
11. Momentum: RSI-based momentum (OVERBOUGHT/OVERSOLD/NEUTRAL) with value
12. MTF: Multi-timeframe alignment (ALIGNED/DIVERGENT) with strength
These metrics provide complete smart money context at a glance, enabling rapid assessment of market structure, institutional activity, and trade setup quality.
9. Price Position Analysis
The indicator calculates price position within the session range:
Session High = Highest high since session start
Session Low = Lowest low since session start
Session Mid = (Session High + Session Low) / 2
Premium Zone = Price > Session Mid + Range * 0.25 (upper 25% of range)
Discount Zone = Price < Session Mid - Range * 0.25 (lower 25% of range)
Equilibrium = Price between premium and discount zones
Smart money concepts suggest:
- Buy in discount zones (institutions accumulating at favorable prices)
- Sell in premium zones (institutions distributing at favorable prices)
- Avoid equilibrium zones (no clear edge)
The dashboard displays current position and suggested bias (BUY/SELL/WAIT).
Visual Elements
BOS Signals: Triangle shapes (up for bullish, down for bearish) marking break of structure events
CHoCH Signals: Circle shapes marking change of character events
Structure Lines: Lines connecting swing points showing market structure evolution
Liquidity Sweep Lines: Dashed lines from liquidity level to sweep point with "SWEEP" labels
Imbalance Boxes: Semi-transparent boxes highlighting fair value gaps
POI Labels: Small labels marking points of interest
Structure Break Lines: Horizontal lines marking BOS levels with "BRK" labels
Structure Shift Lines: Dashed lines marking CHoCH levels with "SHIFT" labels
Order Block Boxes: Boxes highlighting institutional order zones
Trend Background: Subtle gradient showing current trend direction
Comprehensive Dashboard: 13-row intelligence panel with all smart money metrics
The visual system is designed for clarity - each element has distinct styling to prevent confusion while maintaining professional appearance.
Input Parameters
Core Settings:
Pivot Length: Bars before/after for pivot detection (5-30, default 10)
ATR Length: Period for ATR calculation (10-30, default 14)
Volume Spike Threshold: Multiplier for volume confirmation (1.2-3.0, default 1.8)
Features:
Market Structure (BOS/CHoCH): Toggle structure detection (default enabled)
Liquidity Sweeps: Toggle sweep detection (default enabled)
Price Imbalances: Toggle imbalance zones (default enabled)
Points of Interest: Toggle POI detection (default enabled)
Multi-Timeframe Bias: Toggle MTF analysis (default enabled)
Multi-Timeframe:
Higher Timeframe: HTF for bias analysis (default 60m)
Colors:
All colors are fully customizable including bull primary (neon cyan), bear primary (neon pink), structure break (gold), liquidity sweep (sunset orange), and imbalance zone (neon purple).
How to Use This Indicator
Step 1: Identify Current Market Structure
Check dashboard "TREND" field. BULLISH structure suggests looking for long setups, BEARISH structure suggests short setups. Note the structure status - clean trends show high BOS and low CHoCH counts.
Step 2: Monitor Structure Events
Watch for BOS signals (triangles) confirming trend continuation. These mark optimal trend-following entry points. Watch for CHoCH signals (circles) warning of potential reversals. These suggest reducing positions or preparing for counter-trend trades.
Step 3: Identify Liquidity Sweeps
Liquidity sweep signals (dashed lines with "SWEEP" labels) mark manipulation events. These often provide excellent entry opportunities as institutions have cleared stops and can now move price. Enter in the direction opposite to the sweep (sweep of highs = short setup, sweep of lows = long setup).
Step 4: Use Imbalance Zones
Imbalance boxes mark fair value gaps. Price often returns to fill these zones. Use imbalances as entry zones - buy into bullish imbalances (price returns to gap), sell into bearish imbalances. Unfilled imbalances suggest strong directional conviction.
Step 5: Respect Points of Interest
POI labels mark institutional positioning zones. These often provide support/resistance. Watch for price reactions at POI levels - bounces confirm institutional defense, breaks suggest institutional exit.
Step 6: Assess Price Position
Check dashboard "POSITION" showing PREMIUM/DISCOUNT/EQUILIBRIUM. Smart money concepts suggest buying in discount zones and selling in premium zones. The dashboard provides bias suggestion (BUY/SELL/WAIT).
Step 7: Confirm with MTF Bias
Review "MTF" alignment status. ALIGNED with STRONG rating confirms both timeframes agree on direction. DIVERGENT suggests caution as timeframes conflict. Only take trades when MTF is aligned for highest probability.
Step 8: Validate with Volume
Check "VOLUME" status. Structure breaks and sweeps with SPIKE or HIGH volume are more reliable than those with NORMAL volume. Low volume events often fail.
Best Practices
BOS in trend direction with volume confirmation offers highest-probability continuation trades
CHoCH signals are most reliable when they occur at extreme price positions (premium/discount zones)
Liquidity sweeps at session highs/lows often mark major reversal points
Imbalances that remain unfilled for multiple bars suggest strong directional conviction
POI zones near key structure levels (previous BOS/CHoCH) are most significant
Trade in discount zones for longs, premium zones for shorts for optimal risk/reward
MTF alignment is critical - avoid trades when timeframes diverge
High CHoCH count (>3) suggests choppy conditions - reduce position size or avoid
Clean trends show BOS count > CHoCH count by at least 2:1 ratio
Volume spike confirmation separates genuine institutional moves from retail noise
Multiple sweeps at same level suggest strong institutional interest
Imbalances near structure breaks often get filled before trend continuation
Indicator Limitations
Pivot detection requires sufficient bars before/after - signals lag by pivot length
Structure analysis works best on liquid instruments with clear swing points
Liquidity sweep detection is probabilistic - not all sweeps lead to reversals
Imbalance zones can remain unfilled for extended periods during strong trends
POI detection uses volume which may be unreliable on some instruments
MTF analysis requires data availability on selected higher timeframe
The indicator identifies structure but cannot predict institutional intent
High-frequency trading and algorithmic activity can create false structure signals
News events can override technical structure instantly
Structure breaks can be fakeouts - always use stop losses
The indicator shows what institutions did, not what they will do
Technical Implementation
Built with Pine Script v6 using:
Pivot detection using ta.pivothigh and ta.pivotlow with customizable length
Persistent structure tracking using var variables for trend, highs, lows, and bar indices
Array-based liquidity pool management with dynamic addition/removal
Imbalance detection using gap analysis with ATR-based filtering
Volume spike detection using rolling average comparison
POI identification combining volume and range analysis
Multi-timeframe security request with proper lookahead settings
Price position calculation using session high/low tracking
RSI-based momentum analysis for overbought/oversold context
Comprehensive dashboard with 13 metrics and color-coded status indicators
Dynamic line and box drawing for structure visualization
Label system with size and style variations for different signal types
The code is fully open-source with detailed comments explaining smart money concepts and detection logic.
Originality Statement
This indicator is original in its comprehensive smart money structure analysis. While individual concepts (BOS, CHoCH, liquidity sweeps, imbalances) are established in smart money trading, this indicator is justified because:
It systematically integrates five distinct smart money concepts (structure, sweeps, imbalances, POI, MTF) into a unified detection system
The liquidity pool tracking with dynamic sweep detection provides real-time manipulation identification
Imbalance zone detection with ATR-based filtering ensures only significant gaps are marked
POI detection combines volume and range analysis to identify institutional positioning zones
Price position analysis (premium/discount/equilibrium) provides smart money context for entries
The comprehensive dashboard synthesizes 13 metrics into unified smart money intelligence
Integration of volume confirmation throughout ensures signals reflect genuine institutional activity
MTF bias alignment validates that structure aligns across temporal dimensions
Cumulative event counting (BOS, CHoCH, sweeps, imbalances, POI) enables pattern recognition
The visual system clearly distinguishes between different structure types without clutter
Each component reveals different institutional footprints: BOS shows commitment, CHoCH shows reversal, sweeps show manipulation, imbalances show inefficiency, POI shows positioning, price position shows value zones, MTF shows conviction, and volume confirms participation. The indicator's value lies in combining these complementary perspectives into a cohesive smart money structure analysis system.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss and is not suitable for all investors.
Smart money structure analysis is a tool for understanding institutional footprints, not a crystal ball for predicting future price movement. Structure breaks do not guarantee trend continuation. Liquidity sweeps do not guarantee reversals. Past structure patterns do not guarantee future structure patterns. Market conditions change, and strategies that worked historically may not work in the future.
The metrics displayed are mathematical calculations based on current market data, not predictions of future price movement. BOS, CHoCH, sweeps, imbalances, and POI signals do not guarantee profitable trades. Users must conduct their own analysis and risk assessment before making trading decisions.
Always use proper risk management, including stop losses and position sizing appropriate for your account size and risk tolerance. Never risk more than you can afford to lose. Consider consulting with a qualified financial advisor before making investment decisions.
The author is not responsible for any losses incurred from using this indicator. Users assume full responsibility for all trading decisions made using this tool.
-Made with passion by officialjackofalltrades Indicator

Daily Volume Profile Pro [WillyAlgoTrader]📊 Daily Volume Profile Pro is an overlay indicator that builds a complete volume profile for each daily session — distributing volume across price bins using candle-range proportional allocation, computing POC (Point of Control), 70% Value Area (VAH/VAL) using the CME expansion method, session VWAP, buy/sell delta per bin, and displaying up to 7 days of profiles simultaneously. The indicator also detects naked (unvisited) POCs from prior days, classifies each day's profile shape (Normal/Trend/Neutral/Double Distribution), tracks Initial Balance ranges, and highlights single-print thin-volume zones — creating a complete volume-based market context tool.
🧩 WHY THESE COMPONENTS WORK TOGETHER
A volume profile alone shows where trading activity concentrated — but without context, you don't know whether the profile represents a trending day, a balanced day, or a double-distribution day. You don't know whether the POC from two days ago was ever revisited. You don't know whether the current price is above or below the Initial Balance — which tells you whether the opening range has been broken.
This indicator layers multiple volume-based analyses that each answer a different question:
Volume Profile → WHERE did volume concentrate? Which prices are accepted (high volume) and rejected (low volume)?
POC → What is the single most-traded price? This is the market's "fair value" for that session.
Value Area (70%) → Where did 70% of volume trade? Price inside VA = balance. Price outside VA = imbalance seeking new value.
Delta Coloring → At each price level, was the activity dominated by buyers or sellers? Green bins = buying pressure, red = selling.
Naked POCs → Which prior-day fair values were never revisited? These are strong magnets — price tends to return to unfinished business.
Initial Balance → What was the opening range? Price above IB High = bullish conviction. Below IB Low = bearish. Inside = balance.
Day Type → What shape is the profile? Trend days (narrow) behave differently than Normal (bell curve) or Double Distribution (bimodal) days.
Single Prints → Where did price move too fast for volume to fill? These thin-volume zones are gaps in the profile that often get revisited.
No single component provides a complete picture. The combination tells you: the market's fair value (POC), the accepted range (VA), the directional pressure (delta), the day's character (day type), the opening bias (IB), unfinished levels from prior sessions (naked POCs), and price imbalances (single prints) — all from volume data.
🔍 WHAT MAKES IT ORIGINAL
1️⃣ Candle-range proportional volume allocation.
Each candle's volume is distributed across the price bins it touches, proportional to the overlap between the candle's range and each bin:
overlap = max(0, min(candle_high, bin_high) − max(candle_low, bin_low))
allocated_volume = total_volume × overlap / candle_range
This produces a smoother, more accurate profile than the common approach of assigning all volume to a single price (close or typical price). A candle spanning 5 bins distributes its volume across all 5, weighted by how much of the candle falls in each bin.
Buy/sell classification: close ≥ open → buy candle (volume added to buy array), close < open → sell candle (volume added to sell array). Delta coloring shows whether each bin was dominated by buying or selling pressure.
2️⃣ CME-style Value Area expansion.
The 70% Value Area is computed using the standard CME method:
— Start at POC bin
— Compare the volume of the next bin above vs the next bin below
— Expand toward whichever side has higher volume
— Repeat until 70% of total session volume is captured
— VAH = top of the highest included bin, VAL = bottom of the lowest included bin
This matches the industry-standard method used by CME Group and professional platforms. The VA is displayed as dashed lines (VAH/VAL) with an optional semi-transparent background fill.
3️⃣ Naked POC detection with historical scan.
For each prior day's POC, the indicator scans all bars from the POC's day to the present — checking whether price ever touched that level (low ≤ pocPrice ≤ high). If no bar has touched it, the POC is classified as "naked" (nPOC) and drawn as a dashed red line extending to the right.
Naked POCs represent unfinished business — the market established fair value at that price but never returned to retest it. They act as strong magnets because institutional activity that established the original POC may still hold positions anchored to that level. The scan limit is 300 bars to maintain performance.
4️⃣ Day type classification from profile shape.
Each day's volume distribution is analyzed to classify the session:
— Trend : significant bins < 35% of total bins — volume concentrated in a narrow area, price moved decisively in one direction
— Neutral : significant bins > 65% — volume spread evenly across the range, balanced/rotational day
— Normal : 35–65% — bell-curve distribution with clear POC and tapering tails
— DD (Double Distribution) : significant bins concentrated in both top and bottom thirds but not the middle — bimodal distribution indicating two separate value areas (e.g., gap-and-go)
A "significant bin" is defined as having volume > 25% of POC volume. The classification appears as a color-coded label above each session.
5️⃣ Initial Balance (IB) range tracking.
The IB captures the high and low of the first N minutes of each session (configurable: 30, 60, 90, or 120 minutes). The IB range is drawn as solid lines with optional background fill, optionally extended to the end of session.
IB context: price above IB High signals that early buyers were committed and the market accepted higher prices — bullish bias. Price below IB Low signals the opposite. Price inside IB = range-bound session. The dashboard shows the current IB position (Above IB / Below IB / Inside IB).
6️⃣ Single print (thin volume) zone detection.
Bins with volume less than 15% of the POC bin's volume are classified as single prints — areas where price moved too quickly for significant volume to build. These are highlighted with a distinct border color and represent imbalance zones that often get revisited as the market seeks to fill the volume gap.
7️⃣ Multi-day profile display with configurable orientation.
Up to 7 days of profiles are drawn simultaneously with left or right orientation. Each day's profile bins are scaled proportionally: bin width = volume / maxVolume × span/3 in bars. The adaptive bin count adjusts to the day's price range: bins = min(binCountInput, max(8, range / (ATR × 0.05))).
8️⃣ POC extension + previous day POC (yPOC).
Each day's POC can be extended forward as a dashed line for 1–7 days (configurable), serving as a reference level for subsequent sessions. Yesterday's POC (yPOC) is drawn separately as a labeled reference — one of the most-watched volume levels in professional trading.
Today's POC, VAH, and VAL can be extended to the right chart edge for real-time reference.
9️⃣ Session VWAP.
Volume-weighted average price computed per session: VWAP = Σ(typicalPrice × volume) / Σ(volume). Displayed as a dotted line within each session. VWAP represents the average price at which volume traded — a key reference for institutional traders.
🔟 Optional MA overlay.
Six MA types available (SMA, EMA, RMA, WMA, VWMA, None) for additional trend context alongside the volume profile.
⚙️ HOW IT WORKS — CALCULATION FLOW
Step 1 — Session detection: Day change tracked via ta.change(time("D")). Session start/end bars, day high/low, and timestamps stored in arrays. IB high/low tracked during the first N minutes of each session.
Step 2 — Profile construction (per day): For each session, the price range is divided into bins. Every candle within the session distributes its volume across bins proportional to the candle-range overlap with each bin. Separate buy and sell arrays track directional volume.
Step 3 — POC/VA/VWAP: POC = bin with maximum volume. VA computed via CME expansion from POC until 70% captured. VWAP = cumulative (typical price × volume) / cumulative volume.
Step 4 — Visualization (last bar): All profiles, lines, and labels are drawn on barstate.islast using delete-and-redraw pattern. Profile boxes are colored by delta (buy/sell dominance), with POC bin highlighted, VA bins tinted, single prints bordered.
Step 5 — Naked POC scan: Each prior-day POC is checked against all subsequent bars. If no bar has touched the level → naked POC drawn as dashed line.
Step 6 — Day type: Volume distribution analyzed for shape classification (Trend/Normal/Neutral/DD).
📖 HOW TO USE
🎯 Quick start:
1. Add the indicator to an intraday chart (1M–30M recommended)
2. Volume profiles appear for each daily session (up to 7 days)
3. Yellow horizontal line = POC (highest volume price)
4. Blue dashed lines = VAH / VAL (70% Value Area boundaries)
5. Red dashed lines = naked POCs from prior days (unvisited fair values)
6. Orange lines = Initial Balance high/low
👁️ Reading the chart:
— 🟡 Solid line = POC (session fair value)
— 🟡 Dashed line = extended POC (reference for future sessions)
— 🔴 Dashed line with "nPOC" label = naked POC (unvisited — strong magnet)
— 🟡 "yPOC" label = yesterday's POC
— 🔵 Dashed lines = VAH / VAL (70% Value Area boundaries)
— 🔵 Shaded zone = Value Area background
— 🟣 Dotted line = session VWAP
— 🟠 Solid lines = IB High / IB Low
— 🟠 Shaded zone = Initial Balance range
— 🟢 Profile bins = buying pressure (delta positive)
— 🔴 Profile bins = selling pressure (delta negative)
— 🟡 Bordered bins = single prints (thin volume — imbalance zones)
— Day type labels: Trend / Normal / Neutral / DD
📊 Dashboard fields:
— Day Type: profile shape classification (Trend / Normal / Neutral / DD)
— Trend: price vs POC (Bullish ▲ / Bearish ▼)
— Price Zone: Above VA / Inside VA / Below VA
— IB Position: Above IB / Inside IB / Below IB
— POC: today's price, vs POC distance
— VAH / VAL: Value Area boundaries
— Delta: net buy/sell percentage
— Volume: total session volume
— Naked POCs: count of unvisited prior-day POCs
🔧 Tuning guide:
— Profile too coarse: increase Profile Bins (30–40)
— Profile too granular: decrease Profile Bins (15–20)
— Want to see more history: increase Days to Show (up to 7)
— IB too narrow for your market: increase IB Period (90–120 min)
— Too many single prints: this is informational — they highlight real imbalances
⚙️ KEY SETTINGS REFERENCE
⚙️ Main:
— Days to Show (default 7): number of daily profiles (1–7)
— Profile Bins (default 34): resolution of volume distribution
📊 Profile:
— Delta Coloring (default On): color bins by buy/sell pressure
— Single Prints (default On): highlight low-volume imbalance zones (< 15% of POC)
— Profile Side (default Left): draw bars left or right of session
📏 Levels:
— POC (default On) with width and extension (1–7 days)
— Naked POCs (default On): unvisited prior-day POCs
— Value Area (default On) with background fill
— Session VWAP (default Off)
— Previous Day POC (default On): yPOC reference
— Extend Today (default On): extend current session levels to chart edge
🔲 Initial Balance:
— IB Period (default 60 min): 15–120 minutes
— IB Background (default On) / Extend IB Lines (default On)
🎨 Visual:
— Day separators, day labels (Mon–Sun), day type labels
— MA overlay: SMA/EMA/RMA/WMA/VWMA/None
— Auto / Dark / Light theme
🔔 Alerts
— 🟢 POC CROSS UP / 🔴 POC CROSS DOWN — price crosses today's POC
— ⬆️ VAH BREAK — price breaks above Value Area High
— ⬇️ VAL BREAK — price breaks below Value Area Low
All support plain text and JSON webhook format. Bar-close confirmed.
⚠️ IMPORTANT NOTES
— 📐 Use on intraday timeframes. The indicator builds daily session profiles — it requires intraday data (1M–30M recommended) to produce meaningful volume distribution. On daily or higher timeframes, each day has only one candle, producing a single-bin profile.
— 🚫 No repainting. All alert conditions require barstate.isconfirmed. Profiles are computed from historical data within each session. Today's profile updates in real-time as new bars arrive (this is expected behavior for a live volume profile — not repainting).
— 📊 The volume allocation is proportional to candle-range overlap , not tick-by-tick. True tick data is not available in Pine Script. This candle-range method produces a close approximation for intraday timeframes (1M–15M). Lower timeframes = more candles per session = more accurate profile.
— ⚖️ The Value Area uses the standard CME expansion method : start at POC, expand toward higher-volume adjacent bins until 70% captured. This matches the industry-standard algorithm used by professional platforms.
— 🔴 Naked POC scan checks up to 300 bars of history per POC for performance reasons. On very low timeframes with many bars per day, a POC from 5+ days ago may exceed the scan range.
— 📏 Single prints are defined as bins with volume < 15% of POC volume — these represent areas where price moved too quickly for meaningful volume to accumulate. They are not errors or missing data.
— 🏷️ Day type classification uses volume distribution shape analysis based on the ratio of significant bins to total bins. It's a probabilistic assessment of the session's character, not a definitive market prediction.
— 🛠️ This is a volume analysis and market context tool , not an automated trading system. It visualizes where volume traded, which prices are accepted/rejected, and which levels remain unfinished — trade decisions remain yours.
— 🌐 Requires volume data. On instruments without reliable volume (some forex pairs), the profile accuracy depends on broker-reported tick volume. Indicator

Indicator

Doji Volume Map (Zeiierman)█ Overview
Doji Volume Map (Zeiierman) is a volume reaction scanner that detects doji-like candles appearing with relatively high and rising volume, then converts those events into projected price levels. When a valid signal forms, the script places a bubble on the candle, extends a horizontal reaction level forward, and optionally merges nearby levels into a highlighted zone box. The result is a clean map of potential reaction areas built from high-interest doji events rather than generic swing highs or lows.
⚪ What It Detects
The script searches for candles that combine 3 conditions at the same time:
Relative high volume: Current volume must exceed the average volume by a user-defined multiplier.
Rising volume: Current volume must be greater than the previous bar’s volume.
Loose doji structure: The candle body must remain small relative to the total range, while the full range must still be meaningful enough relative to ATR.
When those conditions align, the candle is treated as a significant reaction point and plotted as a bubble. From there, the script projects the price level forward and can combine overlapping levels into broader zones.
█ How It Works
For each bar inside the Lookback Length, the script checks whether the candle qualifies as a valid signal.
It measures:
Average volume over the selected Volume Average Length
Relative volume strength using the Relative Volume Multiplier
Whether volume is increasing vs the previous bar
Whether the candle body is small enough to be considered doji-like
Whether the total range is large enough relative to ATR
█ How to Use
When a doji-like candle forms with high and rising volume, it signals strong participation but no clear directional control.
This means:
Heavy trading occurred.
Both sides were active.
Price failed to move decisively.
These areas often become key reaction zones, as the market tends to revisit and respond to where significant transactions took place.
⚪ In Trend
In uptrends , signals on pullbacks can act as support/continuation zones
In downtrends, signals on bounces can act as resistance/rejection zones
Focus on using levels in the direction of the trend, where the dominant side is likely to defend.
⚪ In Ranges
Signals near range lows → potential buy/support zones
Signals near range highs → potential sell/resistance zones
Merged zones are especially useful for identifying rotation areas within the range.
⚪ Key Idea
High volume + indecision = high-interest price area
These zones often lead to:
Reactions
Rejections
Or continuation after confirmation
Use retests and price behavior at these levels to guide entries.
█ Settings
Lookback Length — how many bars back the script scans for qualifying signals.
Volume Average Length — baseline used to measure relative volume.
Relative Volume Multiplier — minimum volume expansion required vs average.
Max Body % of Range — defines how small the candle body must be to count as doji-like.
Min Candle Range as ATR Fraction — filters out candles that are too small to matter.
Key effect:
Higher Relative Volume Multiplier = fewer but stronger signals
Lower Max Body % of Range = stricter doji selection
Higher Min Candle Range as ATR Fraction = fewer weak micro-signals
Merge Close Levels Into Box — combines nearby projected levels into a single zone.
Merge Distance (ATR) — controls how close levels must be to merge.
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
Indicator

Fair Value Gap Profile + Rolling POC [BigBeluga]🔵 OVERVIEW
FVG Profile builds a price-level profile based on detected Fair Value Gaps (FVGs) over a fixed lookback period.
Instead of measuring traded volume alone, this tool aggregates bullish and bearish FVG occurrences into horizontal bins, allowing traders to see where price inefficiencies are most concentrated.
Each profile level represents how many bullish and bearish FVGs formed near that price zone, along with their relative strength, imbalance, and delta volume.
🔵 CONCEPTS
FVG Detection —
• Bullish FVG: when the high two bars back is below the current low.
• Bearish FVG: when the low two bars back is above the current high.
Price Binning — The full price range of the lookback period is divided into fixed bins.
FVG Aggregation — Each detected FVG is mapped to its nearest price bin and counted.
Directional Separation — Bullish and bearish FVGs are stored separately inside each bin.
🔵 FEATURES
Bull / Bear FVG Profile —
• Green segments represent bullish FVG counts.
• Orange segments represent bearish FVG counts.
• Each bin visually shows how many FVGs occurred at that level.
Strength Percentage —
• Each bin displays a % value based on total FVG count.
• The strongest bin is normalized to 100%.
Delta Volume —
• Calculates the difference between bullish and bearish FVG volume per bin.
• Positive delta = bullish dominance.
• Negative delta = bearish dominance.
Heatmap Mode —
• Colors profile levels by relative strength.
• Color direction is driven by delta volume (bullish vs bearish).
Live FVG Visualization — Optionally plots individual bullish and bearish FVG boxes on the chart.
Profile Background — A background frame highlights the full analyzed price range.
🔵 Rolling POC Logic
Unlike a static profile, the Rolling POC moves with price.
It continuously calculates the "peak imbalance level" for the last X bars, providing a moving average of where the market's most significant gaps are forming.
🔵 Moving Average Integration
The indicator features a customizable Moving Average (SMA, EMA, WMA, VWMA, etc.).
This MA helps identify if the price is currently trending toward or away from high-density FVG zones.
An "Auto" length feature is included that scales the MA based on the selected lookback period for optimal smoothing.
🔵 HOW TO USE
Identify FVG Clusters — Strong profile levels highlight prices where inefficiencies repeatedly formed.
Directional Bias — Compare bullish vs bearish segments to determine dominance at each level.
Delta Confirmation — Use delta volume to confirm whether bullish or bearish FVGs control the zone.
Reaction Zones — High-strength bins often act as areas of interest for price reactions.
Heatmap Context — Enable heatmap to quickly spot dominant imbalance zones across the range.
🔵 CONCLUSION
FVG Profile transforms Fair Value Gaps into a structured price-level profile, revealing where inefficiencies cluster and which side dominates those zones.
By combining FVG count, directional balance, delta volume, and strength normalization, it provides a powerful way to analyze imbalance behavior beyond traditional volume profiles. Indicator

Structural Pivot Mapper [JOAT]Structural Pivot Mapper
Introduction
The Structural Pivot Mapper (SPM) is an advanced open-source structural analysis indicator that combines W/M pattern detection, dynamic support/resistance level mapping, pivot point analysis, volume profile integration, and break-retest detection to identify institutional structural pivots and key price levels. This indicator reveals market structure through systematic detection of swing highs/lows, classical chart patterns, and volume-based price levels, providing traders with a comprehensive structural framework for identifying high-probability entry and exit zones.
Unlike basic pivot indicators that simply mark swing points, SPM employs sophisticated pattern recognition algorithms to detect W patterns (bullish reversal), M patterns (bearish reversal), Head & Shoulders formations, and tracks level strength through touch counting and volume analysis. The indicator automatically manages support/resistance levels, removes outdated levels, and highlights Point of Control (POC) from volume profile analysis to show where institutional activity is concentrated.
Why This Indicator Exists
This indicator addresses the challenge of identifying key structural levels where institutional players are likely to defend positions or initiate new trades. Market structure provides the framework for understanding price behavior, and SPM systematically reveals:
W/M Pattern Detection: Identifies classical reversal patterns with strict validation rules
Dynamic Support/Resistance: Tracks pivot-based levels with automatic strength scoring
Level Touch Counting: Quantifies level importance through historical price interaction
Volume Profile Integration: Identifies Point of Control (POC) where maximum volume traded
Break & Retest Detection: Monitors level breaks and subsequent retests for confirmation
Head & Shoulders Patterns: Detects both regular and inverse H&S formations
Smart Level Management: Automatically removes weak levels and maintains only strongest
Each component provides unique intelligence. W/M patterns show reversal zones, pivots show swing structure, touch counting shows level strength, volume profile shows institutional interest, break-retest confirms level validity, and H&S patterns show major reversals.
Core Components Explained
1. W Pattern Detection (Bullish Reversal)
SPM detects W patterns through systematic analysis of 5 pivot points (A-B-C-D-E):
f_detect_w_pattern(float src, int lookback, int offset, bool strict) =>
// Find 5 pivot points forming W shape
// E = current, D = first low, C = middle high, B = second low, A = left high
// Validation: E > C, D < E, D < C, B <= D (strict), B < A
found := a > 0 and a != b and c != 0 and d != 0 and
src > src and src < src and src < src and
(src <= src or not strict) and src < src
W patterns indicate bullish reversal when:
- Price forms double bottom (D and B)
- Middle high (C) is lower than current price (E)
- Second low (B) is higher than or equal to first low (D) in strict mode
- Pattern completes with breakout above middle high (C)
Entry level is at middle high (C), stop loss at second low (B).
2. M Pattern Detection (Bearish Reversal)
M patterns are detected through inverted W logic:
f_detect_m_pattern(float src, int lookback, int offset, bool strict) =>
// Find 5 pivot points forming M shape
// E = current, D = first high, C = middle low, B = second high, A = left low
// Validation: E < C, D > E, D > C, B >= D (strict), B > A
found := a > 0 and a != b and c != 0 and d != 0 and
src < src and src > src and src > src and
(src >= src or not strict) and src > src
M patterns indicate bearish reversal when:
- Price forms double top (D and B)
- Middle low (C) is higher than current price (E)
- Second high (B) is lower than or equal to first high (D) in strict mode
- Pattern completes with breakdown below middle low (C)
Entry level is at middle low (C), stop loss at second high (B).
3. Dynamic Support/Resistance Level Management
SPM tracks pivot-based support and resistance levels with automatic management:
float pivot_high = ta.pivothigh(high, pivot_left, pivot_right)
float pivot_low = ta.pivotlow(low, pivot_left, pivot_right)
// Store levels in arrays
if not na(pivot_high) and barstate.isconfirmed
if array.size(resistance_levels) < max_levels
array.push(resistance_levels, pivot_high)
array.push(resistance_touches, 1)
else if auto_cleanup
array.shift(resistance_levels) // Remove oldest
array.push(resistance_levels, pivot_high)
Level strength is calculated through touch counting:
1 touch: New level (weak)
2 touches: Confirmed level (moderate)
3+ touches: Strong level (high importance)
Levels are automatically removed when max_levels is reached and auto_cleanup is enabled.
4. Level Touch Counting & Strength Scoring
SPM tracks how many times price interacts with each level:
float zone_size = atr_value * zone_width
if high >= level - zone_size and high <= level + zone_size
array.set(resistance_touches, i, array.get(resistance_touches, i) + 1)
Strength score (0-100) is calculated based on:
Touch Count (0-40 points): More touches = stronger level (8 points per touch, max 40)
Age Factor (0-30 points): Older levels = more established (based on level_strength_period)
Volume Factor (0-30 points): Higher volume at level = more institutional interest
Only levels with 2+ touches and strength >60 are displayed to reduce clutter.
5. Volume Profile & Point of Control (POC)
SPM calculates volume profile to identify price levels with maximum trading activity:
f_volume_profile(int bins, int lookback) =>
float price_range = price_high - price_low
float bin_size = price_range / bins
// Accumulate volume in 20 price bins
for i = 0 to lookback - 1
float bar_price = hlc3
int bin = math.floor((bar_price - price_low) / bin_size)
array.set(vp_volumes, bin, current_vol + bar_vol)
// Find POC (highest volume bin)
float poc_price = array.get(vp_prices, poc_bin)
POC represents the price level where most volume traded - typically where institutions have significant positions. Value Area High (VAH) and Value Area Low (VAL) define the range containing 70% of volume.
6. Break & Retest Detection
SPM monitors when price breaks through resistance levels and subsequently retests:
// Detect break (close above resistance)
if not was_broken and close > level and close <= level
array.set(level_broken, i, true)
array.set(break_bar_index, i, bar_index)
// Detect retest (price returns to broken level within 3-20 bars)
if was_broken
int break_bar = array.get(break_bar_index, i)
bool is_retest = bar_index - break_bar >= 3 and bar_index - break_bar <= 20
bool touching_level = math.abs(close - level) < atr_value * 0.5
if is_retest and touching_level
label.new(bar_index, level, "RT", color=c_support_strong)
Successful retests confirm level validity and often provide high-probability entry opportunities.
7. Head & Shoulders Pattern Detection
SPM detects both regular and inverse Head & Shoulders formations:
f_detect_head_shoulders(float src, int lookback) =>
// Find 3 pivot highs: left shoulder, head, right shoulder
float ph1 = ta.pivothigh(src, lookback, lookback)
float ph2 = ta.pivothigh(src, lookback, lookback)
float ph3 = ta.pivothigh(src, lookback, lookback)
// Validate: head higher than shoulders, shoulders roughly equal
if ph2 > ph1 and ph2 > ph3 and math.abs(ph1 - ph3) < (ph2 - ph1) * 0.3
found := true
neckline := math.min(low , low )
H&S patterns are major reversal formations indicating trend exhaustion and potential reversal.
Visual Elements
Support Lines: Blue horizontal lines with strength-based width (2-3px)
Resistance Lines: Pink horizontal lines with strength-based width (2-3px)
Level Labels: "S: price " for support, "R: price " for resistance (N = touch count)
Pivot Markers: Small circles at swing highs (pink) and lows (blue)
POC Line: Yellow dotted line showing Point of Control from volume profile
Retest Markers: "RT" labels when price retests broken levels
Pattern Lines: Optional dashed lines showing W/M pattern structure (disabled by default)
Dashboard: Real-time metrics showing resistance count, support count, pattern status, POC price
Input Parameters
Pattern Detection:
Pattern Range: Lookback period for W/M detection (default: 9)
Pattern Offset: Additional bars to check (default: 0)
Strict Pattern Validation: Enforce stricter pattern rules (default: false)
Pivot Settings:
Pivot Left Bars: Bars to left of pivot (default: 6)
Pivot Right Bars: Bars to right of pivot (default: 1)
Show Pivot Labels: Toggle pivot markers (default: true)
Level Management:
Maximum Levels: Max support/resistance levels to track (default: 3)
Level Strength Period: Lookback for strength calculation (default: 50)
Auto-Cleanup Old Levels: Remove oldest when max reached (default: true)
Visualization:
Show Support/Resistance Zones: Toggle level display (default: true)
Zone Width (ATR %): Width of level zones (default: 0.5)
Show Pattern Lines: Toggle W/M pattern visualization (default: false)
How to Use This Indicator
Step 1: Identify Key Structural Levels
Look for blue (support) and pink (resistance) lines. Thicker lines with higher touch counts are strongest.
Step 2: Monitor Pattern Formations
Watch dashboard for "W Pattern" (bullish) or "M Pattern" (bearish) status. These indicate potential reversal zones.
Step 3: Check POC Proximity
Yellow POC line shows where maximum volume traded. Price often gravitates toward POC or bounces from it.
Step 4: Wait for Break & Retest
When price breaks resistance and retests (RT label), it confirms level as new support. High-probability long entry.
Step 5: Use Level Strength for Confidence
Levels with 3+ touches are most reliable. Dashboard shows total support/resistance count.
Step 6: Combine with Higher Timeframe Structure
Use SPM on multiple timeframes. Daily/weekly levels are stronger than intraday levels.
Best Practices
Focus on levels with 3+ touches - these have proven institutional interest
W/M patterns work best at major support/resistance levels
POC acts as magnet - price often returns to POC after deviating
Break-retest setups have highest win rate when combined with volume confirmation
Disable pattern lines to reduce chart clutter - use dashboard for pattern status
Adjust zone width based on instrument volatility (higher ATR = wider zones)
Auto-cleanup keeps chart clean but may remove valid older levels
H&S patterns are most reliable on higher timeframes (4H+)
Level strength score >70 indicates institutional-grade level
Smart spacing prevents overlapping levels - only strongest levels shown
Indicator Limitations
Pattern detection requires sufficient historical data and clear pivot formation
W/M patterns can produce false signals during strong trends
Level touch counting is historical - doesn't predict future touches
Volume profile requires consistent volume data - may not work on illiquid instruments
Break-retest detection has time window (3-20 bars) - may miss delayed retests
Maximum level limit means some valid levels may be removed
Pivot detection lags by pivot_right bars - not real-time
H&S patterns are rare and require specific market conditions
Level strength scoring is multi-factor but still subjective
Smart spacing may hide valid levels that are too close to stronger levels
Technical Implementation
Built with Pine Script v6 using:
Custom W/M pattern detection with 5-point validation
Pivot-based support/resistance tracking with arrays
Touch counting system with ATR-based zone detection
Multi-factor level strength scoring (touches + age + volume)
Volume profile calculation with 20-bin price distribution
POC detection through maximum volume identification
Break-retest monitoring with time window validation
Head & Shoulders pattern detection (regular and inverse)
Smart level spacing to prevent overlapping (1.5 ATR minimum)
Automatic level cleanup when maximum reached
Dynamic line and label management to prevent memory issues
Real-time dashboard with 4 key metrics
The code is fully open-source and can be modified to suit individual trading styles.
Originality Statement
This indicator is original in its comprehensive structural analysis approach. While pivot detection and pattern recognition are established concepts, this indicator is justified because:
It combines W/M pattern detection with dynamic support/resistance management in a unified system
The multi-factor level strength scoring (touches + age + volume) provides quantitative level assessment
Volume profile integration with POC detection adds institutional perspective to structural analysis
Break-retest detection with time window validation automates a manual trading technique
Smart level spacing prevents chart clutter while maintaining strongest levels
Head & Shoulders detection (both regular and inverse) adds major reversal pattern recognition
Automatic level cleanup maintains chart readability without manual intervention
Integration of classical patterns (W/M, H&S) with modern volume analysis creates layered confirmation
Each component contributes unique information: W/M patterns show reversals, pivots show structure, touch counting shows strength, volume profile shows institutional interest, break-retest confirms validity, H&S shows major reversals, and strength scoring quantifies importance. The indicator's value lies in presenting these complementary perspectives simultaneously with intelligent level management.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Structural levels and patterns do not guarantee price behavior. Trading involves substantial risk of loss. Past performance does not guarantee future results. Always use proper risk management and never risk more than you can afford to lose.
-Made with passion by officialjackofalltrades Indicator

Liquidity Thermal Map [BigBeluga]🔵 OVERVIEW
Liquidity Thermal Map visualizes where the highest traded volume has accumulated across price levels over a fixed lookback period.
Instead of plotting classic volume profiles with bars, the indicator builds a horizontal thermal heatmap directly on the chart, highlighting areas of strong and weak liquidity using smooth color gradients.
This makes it easy to identify high-interest price zones, volume clusters, and the dominant Point of Control (PoC) at a glance.
🔵 CONCEPTS
Price-Level Volume Aggregation — The indicator divides the entire price range of the selected lookback period into fixed horizontal bins.
Volume Binning — Each bin accumulates total traded volume whenever price closes near its midpoint.
Thermal Gradient Mapping — Volume intensity is translated into a color gradient, forming a continuous liquidity heatmap.
Point of Control (PoC) — The price level with the highest accumulated volume is highlighted using a distinct PoC color.
🔵 FEATURES
Liquidity Heatmap — Displays horizontal volume concentration directly on the chart background.
Fixed Resolution Bins — Uses 30 evenly spaced price levels to maintain a clean and readable structure.
Adaptive Lookback Period — Volume is calculated only within the user-defined historical window.
Two-Stage Color Gradient —
• Low volume → transparent / muted tones
• High volume → stronger, warmer colors
PoC Highlighting — The most traded price level is emphasized with a dedicated PoC color and volume label.
Range-Aware Scaling — Automatically adapts to the highest and lowest prices within the lookback period.
🔵 BUY / SELL LIQUIDITY SCALE
Directional Liquidity Breakdown — The vertical scale on the right side summarizes how total traded volume is distributed between bullish and bearish candles within the analyzed range.
Buy Liquidity (Green) — Represents the total traded volume during candles that closed higher than they opened.
This approximates aggressive buying pressure and shows how much volume has accumulated below the current price.
Sell Liquidity (Red) — Represents the total traded volume during candles that closed lower than they opened.
This reflects periods where selling pressure dominated and shows how much volume accumulated above the current price.
Liquidity Percentage — Each side displays the percentage share of total traded volume.
This helps quickly identify which side of the market controlled the majority of activity within the lookback range.
Volume Imbalance — The Imbalance value at the top shows the absolute difference between total buy and sell liquidity.
A larger imbalance suggests stronger directional dominance from either buyers or sellers.
Interactive Hover Details — Hovering over the liquidity bars reveals a tooltip showing the exact accumulated volume for that section (for example total liquidity below the current price).
This allows traders to quickly inspect how much volume has been concentrated on each side of the market.
Visual Pressure Gauge — The vertical red/green bar acts as a quick visual gauge of market pressure, allowing traders to instantly see whether buyers or sellers dominate liquidity within the selected range.
PoC Highlighting — The most traded price level is emphasized with a dedicated PoC color and volume label.
🔵 HOW TO USE
Identify Liquidity Clusters — Bright or dense zones indicate prices where significant trading activity occurred.
Support & Resistance Context — High-volume zones often act as reaction areas for price.
PoC Tracking — The PoC shows where the market spent the most time and volume.
Breakout Awareness — Moves away from dense liquidity areas may signal expansion into lower-volume zones.
Contextual Analysis — Use the heatmap as a background liquidity reference alongside trend or structure tools.
🔵 VISUAL LOGIC
Cooler Colors — Lower volume participation.
Warmer Colors — Higher volume concentration.
PoC Label — Displays the exact volume value of the strongest liquidity level.
🔵 CONCLUSION
Liquidity Thermal Map provides a clean, intuitive way to visualize where liquidity truly exists across price.
By transforming raw volume data into a continuous thermal layer, it helps traders quickly locate dominant trading zones, identify high-interest price levels, and better understand how volume is distributed within the market.
Indicator

Liquidity Structure & Order Flow [UAlgo]Liquidity Structure & Order Flow is a range based market participation tool that combines a custom volume profile, value area analysis, liquidity void detection, and unusual volume tagging into a single chart overlay. Its goal is to show not only where volume has concentrated across price, but also how that activity was distributed between estimated buying pressure and selling pressure inside the recent market structure.
The script begins by scanning a rolling lookback range, then divides that vertical price space into a configurable number of bins. Each bin becomes a price segment that stores estimated buy volume, sell volume, and total volume. From there, the script builds a profile that highlights the Point of Control, the value area, and the internal order flow balance across the studied range.
What makes this indicator especially useful is that it does more than draw a standard profile. It also identifies areas where participation is abnormally thin relative to both the Point of Control and local neighboring bins. These low participation areas are marked as liquidity voids, helping the user see where the market moved through price with relatively little acceptance.
In addition, the script monitors the current bar for unusually large activity using a volume z score and a directional delta ratio filter. When a bar shows both exceptional size and meaningful directional imbalance, the script prints a bubble style marker above or below price. This gives the user a way to spot unusual participation events as they happen.
The result is a tool that can be used for profile analysis, liquidity mapping, imbalance recognition, and structural context. It helps answer several practical questions at once: where the market accepted price, where it rejected or skipped through price, where the strongest concentration of activity formed, and whether recent candles are showing exceptional directional participation.
🔹 Features
🔸 Custom Range Based Volume Profile
The script constructs a manual volume profile over the selected lookback period. Instead of relying on a built in profile engine, it divides the recent range into user defined price bins and allocates each bar’s volume into those bins. This gives full control over how the profile is built and how the final distribution is interpreted.
🔸 Buy Volume and Sell Volume Estimation
Every candle contributes both buy side and sell side estimates. The script uses the candle’s open, high, low, and close to derive a buy volume ratio, then splits total volume into buy volume and sell volume accordingly. This creates a practical order flow style approximation that is more informative than total volume alone.
🔸 Proportional Price Overlap Allocation
When a candle spans multiple bins, the script distributes its buy volume, sell volume, and total volume proportionally according to how much of the candle overlaps each bin. This produces a more realistic internal structure than simply dropping the full bar volume into one price row.
🔸 Point of Control Detection
The indicator finds the bin with the highest total volume and marks it as the Point of Control. This gives the user an immediate view of the strongest participation price inside the studied range.
🔸 Value Area Calculation
After the Point of Control is found, the script expands upward and downward through neighboring bins until the selected percentage of total profile volume is captured. This defines Value Area High and Value Area Low, allowing the user to distinguish the central acceptance region from the rest of the range.
🔸 Profile Coloring by Participation Side
The profile is drawn as stacked horizontal boxes showing estimated buy side participation and sell side participation inside each row. Bins inside the value area use stronger coloring, while bins outside the value area use softer coloring. This makes the internal structure easy to read visually.
🔸 Liquidity Void Detection
The script scans for bins with unusually weak participation outside the value area. A bin qualifies as a liquidity void candidate only if it is both small relative to the Point of Control and also weaker than its nearby neighbors. Consecutive weak bins are grouped into a larger void zone and labeled directly on the chart.
🔸 Unusual Volume Bubble Markers
Current bar activity is evaluated using a long period volume average and standard deviation. If the bar’s volume is statistically unusual and its estimated delta ratio is large enough, the script prints a directional bubble marker. Positive directional activity is shown below price, and negative directional activity is shown above price.
🔸 Optional Profile and Void Display
The user can independently control whether the volume profile, liquidity voids, and unusual volume markers are shown. This makes the script flexible enough for both full structure analysis and lighter chart layouts.
🔸 Extendable Structural Levels
The Point of Control, Value Area High, and Value Area Low can be drawn as either compact structure references or extended lines, depending on the chosen setting. This allows the user to decide whether the levels should function as local annotations or ongoing chart references.
🔸 Useful for Acceptance and Imbalance Analysis
The combination of profile structure, value area, void zones, and unusual activity markers gives the indicator a broader purpose than a standard profile. It can help identify accepted price, skipped price, directional participation, and possible future reaction areas.
🔹 Calculations
1) Building the Volume Profile Container
type PriceBin
float price
float buyVol = 0.0
float sellVol = 0.0
float totalVol = 0.0
type VolumeProfile
float highPrice = na
float lowPrice = na
float binSize = na
array bins
float pocPrice = na
float pocVol = 0.0
float vah = na
float val = na
float totalVol = 0.0
This is the foundation of the whole script.
Each PriceBin stores one price level area inside the profile. It contains:
the row midpoint price,
estimated buy volume,
estimated sell volume,
and total volume.
The VolumeProfile structure stores the full profile state:
the highest price of the lookback range,
the lowest price of the lookback range,
the bin size,
the array of bins,
and the final analytical values such as Point of Control, Value Area High, Value Area Low, and total profile volume.
So before any analysis happens, the script defines a complete custom data model for price distribution and order flow style estimation.
2) Initializing the Bins Across the Lookback Range
method initBins(VolumeProfile this, float h, float l, int numBins) =>
this.highPrice := h
this.lowPrice := l
this.binSize := (h - l) / numBins
this.pocPrice := na
this.pocVol := 0.0
this.totalVol := 0.0
this.vah := na
this.val := na
this.bins := array.new()
for i = 0 to numBins - 1
this.bins.push(PriceBin.new(price = l + i * this.binSize + (this.binSize / 2)))
This method creates the working profile rows.
First, it stores the high and low of the selected lookback period. Then it calculates binSize , which is the vertical price height of each row. That is simply the full range height divided by the number of bins.
After resetting all major profile outputs, the script creates a fresh bin array. Each new bin is assigned a midpoint price:
l + i * this.binSize + (this.binSize / 2)
That midpoint becomes the visual and analytical center of the row.
In practical terms, this is where the script transforms the raw market range into a structured ladder of price rows that can later receive allocated volume.
3) Locating the Correct Bin for a Price
method getBinIndex(VolumeProfile this, float p) =>
if na(this.lowPrice) or na(this.binSize) or this.binSize == 0
0
else
int idx = math.floor((p - this.lowPrice) / this.binSize)
math.max(0, math.min(idx, this.bins.size() - 1))
This helper method maps any price to its correct row index inside the profile.
It works by measuring how far the price sits above the profile low, then dividing that distance by the bin size. The result is the raw row index. After that, the value is clamped so it always stays inside the valid bin range.
This is important because the script repeatedly needs to know which rows are touched by each candle’s low and high. Without this mapping step, the profile could not distribute volume across price space correctly.
4) Estimating Buy Volume and Sell Volume From Candle Structure
float hlR = high - low
float bVR = hlR == 0 ? 0.5 : (close - low + high - open) / (2 * hlR)
float currentBuyVol = volume * bVR
float currentSellVol = volume * (1 - bVR)
float delta = currentBuyVol - currentSellVol
This snippet explains how the script approximates order flow direction on the current bar.
First, it measures the candle range from high to low. Then it computes a buy volume ratio using the relative location of the open and close inside that range:
(close - low + high - open) / (2 * hlR)
This ratio becomes a practical estimate of how much of the bar’s total volume behaved like buying pressure versus selling pressure. If the candle closes stronger and opens higher inside its range, the ratio leans more bullish. If the candle structure is weaker, the ratio leans more bearish.
That ratio is then used to split total volume into:
currentBuyVol
and
currentSellVol
Finally, the script calculates delta as the difference between estimated buy volume and estimated sell volume.
This is not true transaction tagged exchange delta, but it is a useful chart based directional participation model.
5) Distributing Candle Volume Across Touched Price Rows
method addBarVolume(VolumeProfile this, float h, float l, float c, float o, float v) =>
float hlRange = h - l
float buyVolRatio = hlRange == 0 ? 0.5 : (c - l + h - o) / (2 * hlRange)
float buyV = v * buyVolRatio
float sellV = v * (1 - buyVolRatio)
int startIdx = this.getBinIndex(l)
int endIdx = this.getBinIndex(h)
for i = startIdx to endIdx
if i >= 0 and i < this.bins.size()
PriceBin b = this.bins.get(i)
float binTop = b.price + (this.binSize / 2)
float binBot = b.price - (this.binSize / 2)
float overlapTop = math.min(h, binTop)
float overlapBot = math.max(l, binBot)
float overlap = math.max(0.0, overlapTop - overlapBot)
float weight = hlRange > 0 ? overlap / hlRange : (1.0 / (endIdx - startIdx + 1))
b.buyVol += buyV * weight
b.sellVol += sellV * weight
b.totalVol += v * weight
this.bins.set(i, b)
this.totalVol += v * weight
This is one of the most important calculations in the entire script.
For each candle inside the lookback period, the script first computes estimated buy volume and sell volume. Then it finds which profile rows are touched by the candle’s low and high.
For every touched row, it measures how much of the candle overlaps that specific row. That overlap becomes a weighting factor:
weight = overlap / hlRange
If a candle overlaps a row heavily, that row receives a larger share of the bar’s volume. If the overlap is small, the row receives only a small share.
The script then adds weighted buy volume, weighted sell volume, and weighted total volume into that bin.
This is much more realistic than assigning all volume to a single row because it respects the actual price space the candle traveled through.
6) Determining the Point of Control
method calcValueArea(VolumeProfile this, float pct) =>
float midPrice = (this.highPrice + this.lowPrice) / 2
float maxVol = -1.0
float bestPrice = na
int pocIdx = -1
for i = 0 to this.bins.size() - 1
PriceBin b = this.bins.get(i)
if b.totalVol > maxVol
maxVol := b.totalVol
bestPrice := b.price
pocIdx := i
else if b.totalVol == maxVol and maxVol > 0
if math.abs(b.price - midPrice) < math.abs(bestPrice - midPrice)
bestPrice := b.price
pocIdx := i
this.pocVol := maxVol
this.pocPrice := bestPrice
This is the first phase of the value area calculation.
The script scans all bins and finds the row with the greatest total volume. That row becomes the Point of Control. If two rows have the same maximum volume, the script breaks the tie by choosing the one closer to the middle of the full lookback range.
That tie handling matters because it avoids unstable selection when multiple bins have identical strength.
After the winning row is found, the script stores:
the Point of Control volume in pocVol
and the Point of Control price in pocPrice
So the Point of Control is not simply a visual midpoint. It is the actual strongest participation row in the profile.
7) Expanding Upward and Downward to Build the Value Area
float targetVol = this.totalVol * pct / 100.0
float currentVol = 0.0
if pocIdx >= 0 and pocIdx < this.bins.size()
currentVol := this.bins.get(pocIdx).totalVol
int upIdx = pocIdx + 1
int dnIdx = pocIdx - 1
while currentVol < targetVol and (upIdx < this.bins.size() or dnIdx >= 0)
float upVol = upIdx < this.bins.size() ? this.bins.get(upIdx).totalVol : -1.0
float dnVol = dnIdx >= 0 ? this.bins.get(dnIdx).totalVol : -1.0
After finding the Point of Control, the script calculates the target volume required for the value area. For example, if the input is 70 percent, the target becomes 70 percent of total profile volume.
The expansion begins from the Point of Control row itself. currentVol starts with the Point of Control row’s own total volume. Then the script looks one row up and one row down, repeatedly expanding until the accumulated volume reaches the target.
This is the standard logic of building a value area around the strongest participation center.
8) Deciding Whether to Expand Up or Down
if upVol > dnVol and upVol != -1.0
currentVol += upVol
upIdx += 1
else if dnVol > upVol and dnVol != -1.0
currentVol += dnVol
dnIdx -= 1
else if upVol == dnVol and upVol != -1.0
if currentVol + upVol > targetVol
if math.abs(this.bins.get(upIdx).price - midPrice) < math.abs(this.bins.get(dnIdx).price - midPrice)
currentVol += upVol
upIdx += 1
else
currentVol += dnVol
dnIdx -= 1
else
currentVol += upVol + dnVol
upIdx += 1
dnIdx -= 1
This block decides which side to include next in the value area.
If the row above has more volume than the row below, the script expands upward. If the row below has more volume, it expands downward. If both sides are equal, it uses distance to the overall midpoint as a tie breaker when necessary.
This is important because value area growth should follow participation strength, not arbitrary direction. The final result is a value area that naturally wraps around the highest volume concentration.
9) Final VAH and VAL Assignment
int finalUpIdx = math.max(pocIdx, upIdx - 1)
int finalDnIdx = math.min(pocIdx, dnIdx + 1)
this.vah := finalUpIdx < this.bins.size() ? this.bins.get(finalUpIdx).price : this.highPrice
this.val := finalDnIdx >= 0 ? this.bins.get(finalDnIdx).price : this.lowPrice
Once expansion is complete, the script converts the final included rows into value area boundaries.
The highest included row becomes Value Area High.
The lowest included row becomes Value Area Low.
These values define the central price zone where the chosen percentage of the profile’s total volume was traded.
So VAH and VAL are directly derived from the row by row structure of the profile, not from any fixed percentage of price range.
10) Detecting Unusual Volume Activity
float volSma = ta.sma(volume, 200)
float volStdev = ta.stdev(volume, 200)
float zScore = volStdev == 0 ? 0 : (volume - volSma) / volStdev
float deltaRatio = volume > 0 ? math.abs(delta) / volume : 0
bool isUnusual = zScore > zScoreThreshold and deltaRatio >= deltaRatioThreshold
This block evaluates whether the current bar is unusually active.
First, the script computes a 200 period average volume and standard deviation. Then it transforms the current bar’s volume into a z score, which shows how many standard deviations the bar stands above normal background activity.
Next, it calculates deltaRatio , which measures how large the directional imbalance is relative to total volume.
A bar is marked unusual only if both conditions are true:
the volume is statistically large enough,
and the directional imbalance is meaningful enough.
This double filter helps reduce false signals from large but directionless bars.
11) Printing Unusual Volume Bubbles
if showUnusual and isUnusual
string lblText = (delta > 0 ? "🟢 " : "🔴 ") + str.tostring(math.round(volume))
color lblColor = delta > 0 ? color.new(color.green, 0) : color.new(color.red, 0)
label uLbl = label.new(bar_index, delta > 0 ? low : high, text=lblText, style=label.style_none, textcolor=lblColor, yloc=delta > 0 ? yloc.belowbar : yloc.abovebar, size=size.small)
When an unusual bar is detected, the script prints a directional marker.
If estimated delta is positive, the bubble is shown below price in green.
If estimated delta is negative, the bubble is shown above price in red.
The displayed text also includes the rounded volume value. This allows the user to quickly see both direction and size of the unusual participation event.
So these markers are not random momentum tags. They specifically highlight bars where both participation size and directional imbalance stand out.
12) Rebuilding the Profile on the Last Bar
float highestPrice = ta.highest(high, lookback)
float lowestPrice = ta.lowest(low, lookback)
if barstate.islast and bar_index >= lookback - 1
profile.initBins(highestPrice, lowestPrice, rows)
for i = 0 to lookback - 1
profile.addBarVolume(high , low , close , open , volume )
profile.calcValueArea(vaPct)
This is the main execution block for the profile.
First, the script finds the highest high and lowest low across the chosen lookback window. That defines the total vertical space of the analysis.
Then, on the last visible bar, it:
initializes the bins,
loops through every candle inside the lookback,
adds each candle’s weighted volume into the profile,
and finally calculates the value area.
Running this only on the last bar is efficient because the full profile is a visual structure based on the current lookback window. It does not need to be redrawn historically on every past bar.
13) Scaling and Drawing the Profile Histogram
float maxVol = profile.pocVol
float allVols = array.new_float()
for i = 0 to profile.bins.size() - 1
allVols.push(profile.bins.get(i).totalVol)
float avgVol = allVols.avg()
float stdVol = allVols.stdev()
float clampedMaxVol = math.max(math.min(maxVol, avgVol + (stdVol * 2)), 0.000001)
Before drawing the profile, the script prepares a safer scaling reference.
Instead of using raw Point of Control volume alone without adjustment, it clamps the maximum drawable scale using the average row volume plus two standard deviations. This helps prevent a single extreme row from making the rest of the profile look too compressed.
In practical terms, this means the visual histogram remains readable even when one row is exceptionally dominant.
14) Drawing Buy Side and Sell Side Inside Each Row
int buyLen = math.round((b.buyVol / b.totalVol) * (drawVol / clampedMaxVol) * profileWidth)
int sellLen = math.round((b.sellVol / b.totalVol) * (drawVol / clampedMaxVol) * profileWidth)
bool inVA = b.price <= profile.vah and b.price >= profile.val
bool isPocRow = math.abs(b.price - profile.pocPrice) <= profile.binSize * 0.5
int x1 = profileRight
int x2 = x1 - buyLen
if buyLen > 0
box bB = box.new(x1, topP, x2, botP, border_color=c_border, bgcolor=c_buy)
int x3 = x2
int x4 = x3 - sellLen
if sellLen > 0
box bS = box.new(x3, topP, x4, botP, border_color=c_border, bgcolor=c_sell)
This is the actual profile drawing logic.
For each row, the script determines how much of the row’s total activity came from estimated buy volume and how much came from estimated sell volume. It then converts those fractions into horizontal lengths.
The buy portion is drawn first, then the sell portion continues from the end of the buy section. This creates a stacked horizontal bar that reveals both total participation and internal directional composition.
The row also receives context coloring:
rows inside the value area use stronger color treatment,
and the Point of Control row can receive a distinct border.
So the histogram communicates three layers at once:
how much volume was traded there,
whether that row sits inside the value area,
and how that row’s activity was split between estimated buying and selling pressure.
15) Drawing POC, VAH, and VAL Lines
line pocL = line.new(lineStartX, profile.pocPrice, lineEndX, profile.pocPrice, color=col_poc, width=2, style=line.style_solid)
profileLines.push(pocL)
line vahL = line.new(lineStartX, profile.vah, lineEndX, profile.vah, color=col_vah, width=1, style=line.style_dashed)
profileLines.push(vahL)
line valL = line.new(lineStartX, profile.val, lineEndX, profile.val, color=col_val, width=1, style=line.style_dashed)
profileLines.push(valL)
Once the profile is built, the script draws the three most important structural references:
Point of Control,
Value Area High,
and Value Area Low.
These lines can behave as compact annotations near the profile or as broader structure references if extension is enabled.
This gives the user a quick way to read acceptance and central balance without needing to inspect every row manually.
16) Detecting Liquidity Voids
float voidLimit = profile.pocVol * (voidThreshold / 100.0)
bool inVoid = false
float voidStartPrice = na
for i = 0 to profile.bins.size() - 1
PriceBin b = profile.bins.get(i)
bool isOutsideVA = b.price > profile.vah or b.price < profile.val
This is the beginning of the liquidity void logic.
A row is never treated as a void candidate solely because its volume is small. The script first requires that the row be outside the value area. This matters because low volume inside the main acceptance zone does not carry the same meaning as low volume outside it.
The script also calculates voidLimit as a percentage of Point of Control volume. That creates a relative participation threshold tied to the strongest row in the profile.
17) Comparing Each Row to Its Neighbors
float sumNeighbors = 0.0
int nC = 0
for j = math.max(0, i - 2) to math.min(profile.bins.size() - 1, i + 2)
if j != i
sumNeighbors += profile.bins.get(j).totalVol
nC += 1
float localAvg = nC > 0 ? sumNeighbors / nC : 0.0
bool isGap = b.totalVol < (localAvg * 0.5)
bool isLowVol = b.totalVol < voidLimit
bool isVoid = isLowVol and isGap and isOutsideVA
This is the real filter that defines a liquidity void.
The script looks at nearby bins around the current row and calculates a local neighbor average. Then it applies two separate tests:
the row must be low relative to the Point of Control threshold,
and it must also be weak relative to its nearby neighbors.
Only if both are true, and the row is outside the value area, does the script classify it as a void.
This is important because it prevents the indicator from marking every low volume row as a void. A valid void must look weak both globally and locally.
18) Grouping Consecutive Void Rows Into Zones
if isVoid
if not inVoid
inVoid := true
voidStartPrice := b.price - (profile.binSize / 2)
else
if inVoid
inVoid := false
float voidEndPrice = b.price - (profile.binSize / 2)
float topCoord = math.max(voidStartPrice, voidEndPrice)
float botCoord = math.min(voidStartPrice, voidEndPrice)
box vBox = box.new(bar_index - lookback, topCoord, bar_index, botCoord, border_color=na, bgcolor=col_void)
Once a void row is detected, the script begins tracking a continuous void run. If the next row is also a void, the zone continues. When the run ends, the script closes the zone and draws a box covering the full void area.
This means the indicator does not plot isolated tiny marks for each row. Instead, it groups neighboring weak rows into a cleaner structure that better represents a meaningful liquidity gap.
That box is then labeled as a liquidity void, making the zone easy to identify visually. Indicator

Liquidity Depth [UAlgo]Liquidity Depth is a price distribution and participation map designed to show where market activity has concentrated across a recent trading range. Instead of focusing only on candle by candle direction, the script builds a structured profile of how volume has been allocated across price levels inside a rolling lookback window. The result is a visual depth curve that helps identify areas where buyers or sellers may have shown stronger relative presence.
The indicator works by taking the highest and lowest prices inside the selected lookback, dividing that range into evenly spaced bins, and then assigning bar volume into those bins using one of two distribution models. This transforms raw volume into a spatial map of activity, allowing traders to see where liquidity has accumulated rather than simply when it appeared.
A central strength of the script is that it separates participation into buy side and sell side estimates using candle direction as a practical heuristic. Bullish candles contribute to the buy side profile and bearish candles contribute to the sell side profile. While this is not exchange level bid ask data, it creates a highly usable approximation of directional participation that is often more intuitive for chart based analysis.
The profile is drawn directly on the chart as a right side structure with smoothed depth curves, shaded fills, a Point of Control line, contextual range framing, and automatically detected strong liquidity pockets. This makes the tool especially useful for traders who want to study where activity is clustering, where resistance or support may be forming, and which parts of the recent range are attracting stronger participation.
Because the output is overlay based and visually compact, Liquidity Depth can be used in a wide variety of workflows. It can complement trend analysis, help frame pullback entries, identify acceptance and rejection zones, or simply provide a clearer understanding of where recent market interest has been strongest.
🔹 Features
🔸 Price Range Liquidity Mapping
The script scans a rolling lookback window, identifies the active price range, and divides that space into a configurable number of bins. Each bin becomes a small price segment where participation is accumulated. This produces a clear distribution style view of liquidity across the full recent range.
🔸 Two Distribution Modes
The indicator supports two ways of assigning volume into the profile.
Close Bin places the full bar volume into the single bin that contains the closing price. This creates a sharper and more concentrated structure that emphasizes where bars finished.
Wick Spread distributes the bar volume evenly across all bins touched by the candle from low to high. This produces a broader and more spatially balanced profile that better represents the full path of the bar through price.
These two modes give the user control over whether the profile should be more precise and concentrated or more inclusive and range aware.
🔸 Buy Side and Sell Side Separation
The script maintains separate depth values for buying and selling participation. Bullish candles add volume to the buy side and bearish candles add volume to the sell side. This creates two distinct distribution curves that help reveal whether the lower part of the range is showing stronger buying interest or whether the upper part is attracting stronger selling interest.
🔸 Smoothed Liquidity Curves
Instead of plotting raw bin values only, the script applies curve smoothing to the side distributions. This creates a cleaner, more readable shape that reduces visual noise and highlights the underlying structure of participation. The result is a profile that feels fluid and analytical rather than fragmented.
🔸 Glow Enhanced Curve Rendering
The current build uses a glow style rendering around the main liquidity curves. This improves visual separation on the chart and makes strong participation bulges easier to recognize at a glance, especially when the profile is viewed on darker chart themes.
🔸 Automatic Strong Pocket Detection
One of the most practical parts of the script is its ability to detect strong liquidity pockets. These are clusters of consecutive bins where smoothed participation exceeds a chosen strength threshold. When found, the script highlights the zone and labels it as a strong buy pocket or strong sell pocket. These pockets can be useful for identifying areas of acceptance, defense, or possible future reaction.
🔸 Point of Control Highlighting
The indicator finds the price bin with the highest total participation and marks it as the Point of Control. This is the most active price area inside the profile and often serves as an important reference for equilibrium, attraction, or repeated interaction.
🔸 Range Frame and Midpoint Context
A visual frame is drawn around the active profile range, including the highest level, the lowest level, and the midpoint. This gives the distribution a clear structure and helps the user understand where participation is concentrated relative to the center of the recent range.
🔸 Side Summary Readout
The script prints a compact summary that shows estimated buy side and sell side percentages, along with total side volumes. This provides a quick interpretation layer so the user can understand the current balance of participation without needing to inspect each curve manually.
🔸 Theme Adaptive Colors
Colors are selected dynamically according to the chart background tone. This helps the profile remain readable across both light and dark themes while preserving clear differentiation between buy side, sell side, frame lines, and Point of Control.
🔸 Efficient Object Management
All boxes, lines, fills, and labels are refreshed on the last visible bar so the profile stays clean and up to date. Internal object arrays are actively cleared and rebuilt, which keeps the display organized and avoids uncontrolled accumulation of chart objects.
🔹 Calculations
1) Active Range Construction
The script begins by defining the working range from the highest high and lowest low across the selected lookback window. This creates the vertical space where the full profile will be built.
The total span is then divided into the configured number of bins, which creates evenly spaced price segments from the bottom of the range to the top. Each bin stores its lower boundary, upper boundary, midpoint, buy volume, sell volume, and total volume.
In practical terms, this means the indicator converts the recent market range into a structured ladder of price levels so activity can be measured spatially.
2) Bin Initialization
Once the range is known, every bin is reset and rebuilt. Each bin receives:
its lower boundary,
its upper boundary,
its midpoint,
and empty participation values for buy, sell, and total activity.
This reset process ensures that the profile always reflects only the current rolling window rather than carrying stale values from older bars.
3) Volume Assignment Logic
For every bar inside the lookback, the script reads the volume and determines whether the candle is bullish or bearish. From there, distribution depends on the selected mode.
With Close Bin , the full bar volume is assigned to the bin that contains the close. If the candle is bullish, that volume is counted on the buy side. If the candle is bearish, it is counted on the sell side.
With Wick Spread , the script finds every bin touched between the candle low and candle high. The bar volume is divided evenly across those crossed bins. That distributed share is then assigned entirely to the buy side for bullish candles or entirely to the sell side for bearish candles.
This approach creates a practical estimate of where participation occurred across price, while also preserving directional context.
4) Total Participation and Point of Control
After all bars are processed, each bin contains a buy volume, a sell volume, and a total volume equal to the sum of the two. The script then scans the full array of bins to find the highest total value. The bin with that maximum total becomes the Point of Control.
The Point of Control represents the most concentrated participation zone inside the profile and is drawn as a dedicated horizontal reference line.
5) Midpoint Split and Side Totals
The active range midpoint is calculated as the average of the range high and range low. This midpoint is used as the divider between the lower half and upper half of the profile.
For summary purposes, buy side totals are accumulated from bins at or below the midpoint, while sell side totals are accumulated from bins above the midpoint. The script also records the highest buy side bin value and the highest sell side bin value.
This design gives the profile a simple structural interpretation:
lower range strength is associated with buying participation,
upper range strength is associated with selling participation.
That makes the summary especially useful for understanding whether the range is showing stronger support style accumulation below or stronger supply style pressure above.
6) Smoothing Engine
To reduce jaggedness, the script smooths each side of the profile with a local weighted kernel built from five neighboring bins. The center bin carries the highest influence, adjacent bins carry moderate influence, and outer bins carry smaller influence.
The smoothed result is then blended with the raw bin value according to the user selected smoothing factor. A low smoothing value preserves more of the original structure, while a high smoothing value creates a softer and more continuous curve.
This process helps reveal the true shape of participation without overreacting to isolated bin spikes.
7) Curve Projection and Shape Refinement
Once a side is smoothed, its value is normalized against the maximum strength of that side. The normalized result is converted into horizontal width inside the selected profile width. This is what determines how far the curve extends to the right from its anchor point.
The script also applies an additional running refinement to the horizontal curve position from one bin to the next. This makes the drawn path more fluid and helps eliminate abrupt lateral jumps between neighboring levels.
The final effect is a polished depth curve that communicates intensity clearly while remaining visually smooth.
8) Strong Pocket Detection
Strong liquidity pockets are found by scanning for consecutive bins where normalized smoothed participation exceeds the pocket threshold.
For the upper half of the profile, the script searches for strong sell side runs.
For the lower half of the profile, the script searches for strong buy side runs.
When a qualifying run lasts for at least the minimum required number of bins, a zone is drawn across that price region and labeled accordingly. The horizontal size of the zone is linked to the peak strength found inside that run.
This means the pocket logic is not simply marking a single peak. It is identifying sustained participation clusters, which often carry more analytical value than isolated extremes.
9) Visual Frame and Range Guides
The script adds a top guide at the range high, a bottom guide at the range low, and a midpoint guide through the center of the profile. These references help the user interpret the shape of liquidity in relation to the broader active range.
A curve concentrated near the midpoint suggests balance or repeated acceptance.
A strong bulge in the upper section can imply stronger supply style participation.
A strong bulge in the lower section can imply stronger demand style participation.
10) Summary Metrics
The summary label presents estimated buy side and sell side percentages along with total side volumes. These percentages are derived from the midpoint based side totals described above.
This gives the user a fast read on the internal balance of the profile without needing to inspect the full shape manually. It is especially useful when comparing one instrument or one session structure to another. Indicator

Swing Volume Profile Pro [WillyAlgoTrader]📊 Swing Volume Profile Pro is an overlay indicator that builds a true volume distribution profile for each completed swing leg — distributing each candle's volume across price bins proportionally to how much of the candle's range overlaps each bin (TPO-like allocation), then calculating the Point of Control (highest-volume price), Value Area (70% of volume around POC), buy/sell delta per bin, and swing VWAP. The result is a volume profile that maps exactly to the swing structure, not to arbitrary time intervals.
Most volume profile tools on PulseWire are session-based or fixed-period — they split time into equal windows (daily, weekly, or N-bar segments) and build a profile for each. This means a single profile can contain parts of two different swing legs going in opposite directions, mixing bullish and bearish volume into one distribution. The POC and Value Area from such profiles reflect the time window, not the price structure.
This indicator solves that by anchoring each profile to the actual swing structure: a profile starts at one pivot (swing high or swing low) and ends at the next. Every bar within that swing leg contributes its volume to the bins of that specific leg. The POC tells you where the most trading occurred during that exact directional move. The Value Area shows the 70% concentration zone for that move. The delta profile shows which bins were buy-dominant vs sell-dominant within that leg. This structural anchoring makes the volume data directly relevant to the swing you're analyzing.
🧩 WHY THESE COMPONENTS WORK TOGETHER
A volume profile alone tells you where trading concentrated — but without structural context, you don't know whether that concentration happened during an impulse or a correction. A swing detector alone tells you direction changed — but without volume data, you don't know whether the reversal had participation behind it.
This indicator connects them into a single analytical unit:
Pivot detection → Swing leg identification → Candle-range volume distribution → POC/VA/VWAP/Delta calculation → Structural visualization
The swing detector (ta.pivothigh/pivotlow) defines the boundaries of each leg. The volume distribution engine allocates each candle's volume to the correct price bins based on the candle's actual range overlap (not just its close). The POC identifies the price where the market spent the most effort during that specific move. The Value Area defines the consensus price zone. The delta shows whether buyers or sellers dominated at each price level. And the swing VWAP gives the fair value for the entire move. Together, these components answer: "during this specific swing move, where did the market agree on value, and who was in control?"
🔍 WHAT MAKES IT ORIGINAL
1️⃣ Candle-range volume distribution (TPO-like allocation).
Standard volume profiles assign each candle's entire volume to a single bin (usually the close price). This creates distortion: a wide-range candle that spans 10 bins puts all its volume in one, leaving 9 bins empty. This indicator distributes volume proportionally:
For each candle, for each bin:
overlap = max(0, min(candle_high, bin_high) − max(candle_low, bin_low))
portion = overlap / candle_range
allocated_volume = candle_volume × portion
A candle spanning 5 bins distributes its volume across all 5, weighted by how much of its range falls within each bin. This produces a smooth, accurate volume distribution that reflects where the market actually traded within each candle, not just where it closed.
Additionally, each candle is classified as bullish (close ≥ open) or bearish (close < open), and its allocated volume is tracked separately in buy and sell arrays. This enables the delta profile: at every price bin, you can see whether buy or sell volume dominated.
2️⃣ Swing-anchored profiles (not time-anchored).
Profiles are built between confirmed pivot highs and pivot lows detected by ta.pivothigh(high, swingLen, swingLen) and ta.pivotlow(low, swingLen, swingLen). Each completed swing leg (from one pivot to the next) becomes its own volume profile with independent POC, Value Area, delta, and VWAP. The bins span the exact swing range (min to max price within the leg), and only bars within the leg contribute volume.
A noise filter skips swings smaller than 0.3× ATR(200) — preventing micro-swings from generating meaningless profiles.
3️⃣ Value Area calculation using the CME expansion method.
The Value Area is computed using the standard market profile algorithm: starting from the POC bin, expand alternately upward and downward, adding whichever adjacent bin has more volume, until 70% of total swing volume is captured.
In code: starting with accumulated = volume , the algorithm compares volume vs volume . If the upper bin has more volume (or equal), it expands upward and adds that volume. Otherwise, it expands downward. This continues until accumulated ≥ totalVolume × 0.70. The result is VA High (top of the uppermost included bin) and VA Low (bottom of the lowermost included bin).
This is the same expansion method used by the CME for market profile — it's not a simple percentile calculation. The VA wraps around the POC in the direction of volume concentration, which may be asymmetric.
4️⃣ POC zone with persistent extension.
The POC is not just a single line — it includes the full price bin (top and bottom boundaries) displayed as a shaded zone. This zone extends rightward from the end of the swing leg until the next profile appears, providing a forward-looking support/resistance reference. When a new swing completes, the previous POC zone is trimmed to the boundary of the new profile, and the new zone begins extending.
This means you always see the most recent POC zone extending into current price action — if price is trading within the POC zone, it's at the highest-volume price of the last completed swing. If price breaks above/below the zone, it's leaving the area of strongest volume consensus.
5️⃣ Buy/sell delta profile.
When enabled, each profile bin is colored by its buy/sell imbalance: green if buy volume ≥ sell volume, red if sell volume dominates. A bullish swing with mostly green bins confirms strong demand throughout the move. A bullish swing with red bins at the top suggests sellers are absorbing the advance — potential exhaustion. This buy/sell classification is based on candle direction (close ≥ open = buy candle), applied proportionally through the same distribution mechanism as total volume.
6️⃣ Swing VWAP per leg.
A separate VWAP is calculated for each swing leg: sum(typical_price × volume) / sum(volume), where typical_price = (high + low + close) / 3 for each bar within the leg. This gives the volume-weighted fair value for that specific move — distinct from session VWAP or rolling VWAP. If price retests a previous swing VWAP, it's returning to the average traded price of that move.
7️⃣ Dual visualization modes: histogram profile + heatmap.
Two display modes for the volume distribution:
— Profile mode (default): horizontal histogram bars extending from the swing boundary, with a polyline outline. Width proportional to volume at each bin. The highest-volume bin (POC) is highlighted.
— Heatmap mode : fills the entire swing range with color-gradient boxes. Higher volume = more opaque/saturated color. Lower volume = more transparent. This gives a density map of where volume concentrated within the swing.
Both modes support delta coloring. The profile mode includes volume text on the POC bin.
8️⃣ Real-time forming swing profile.
The indicator doesn't wait for a swing to complete — it continuously builds a profile for the current forming swing leg. As each new bar adds volume, the real-time profile updates: bins are recalculated, POC may shift, Value Area may expand. This profile is drawn in a neutral color (gray) to distinguish it from confirmed profiles. When the swing completes (next pivot confirmed), the real-time profile is replaced by the finalized historical profile in the swing's directional color.
9️⃣ Comprehensive tooltip data on swing labels.
Each swing pivot label (▲ for bullish, ▼ for bearish) contains a tooltip with complete swing statistics: total volume, buy volume, sell volume, delta percentage, POC price, Value Area range, and swing VWAP. This compresses all the analytical data into a single hover interaction — you can quickly review any historical swing's volume profile data without cluttering the chart.
⚙️ HOW IT WORKS — CALCULATION FLOW
Step 1 — Swing detection: ta.pivothigh(high, swingLen, swingLen) and ta.pivotlow(low, swingLen, swingLen) detect confirmed pivots. Pivots are confirmed swingLen bars after they form. Direction flips when a new pivot type appears (swing high → bearish direction, swing low → bullish direction).
Step 2 — Swing leg boundaries: When direction flips, the completed leg is defined from the previous pivot index to the current pivot index. The swing range (top − bottom) is divided into N bins (default 20). A noise filter requires swing range > 0.3× ATR(200).
Step 3 — Volume distribution: For each bar in the leg, the candle's volume is distributed across bins proportional to range overlap. Buy/sell arrays track bullish vs bearish candle volume separately. Typical price × volume is accumulated for VWAP.
Step 4 — POC: The bin with the highest total volume is identified. Its center price becomes POC, and its upper/lower boundaries define the POC zone.
Step 5 — Value Area: Starting from the POC bin, expand alternately toward the bin with more volume (up or down) until 70% of total swing volume is accumulated. The top of the upper boundary and bottom of the lower boundary define VA High and VA Low.
Step 6 — Visualization: Profile boxes are drawn with width proportional to volume/maxVolume × halfSpan. The polyline outline traces the profile shape. POC zone extends rightward until the next profile. VA lines span the leg. VWAP line marks the fair value.
Step 7 — Real-time update: On the last bar, the current forming swing is profiled with the same algorithm. All real-time drawings are deleted and recreated each bar (delete-before-create pattern) for clean updates.
📖 HOW TO USE
🎯 Quick start:
1. Add the indicator — profiles appear on each completed swing leg
2. The widest bar in each profile = POC (highest volume price)
3. Blue dashed lines = Value Area boundaries (70% of volume)
4. Green/red bin colors = buy vs sell dominance at each price level
5. The POC zone (shaded) extends rightward — watch how price interacts with it
👁️ Reading the chart:
— 🟢 Green profile = bullish swing leg (low → high)
— 🔴 Red profile = bearish swing leg (high → low)
— ⚫ Gray profile = current forming swing (not yet confirmed)
— 🔵 Dark blue line + shaded zone = POC (extends rightward as S/R reference)
— 🔵 Blue dashed lines = Value Area High / Low
— 🟣 Purple solid line = Swing VWAP (fair value for the leg)
— 🟢🔴 Bin colors (delta mode) = buy vs sell dominance per price level
— ▲/▼ labels at pivots = swing reversals (hover for full volume data)
📊 Key analysis patterns:
— POC at swing extreme : heavy volume at the high/low of the swing → potential exhaustion (climax volume)
— POC in middle of swing : most volume at fair value → healthy acceptance, trend likely to continue
— Wide Value Area : volume distributed broadly → uncertainty, ranging behavior
— Narrow Value Area : volume concentrated tightly → strong consensus, potential breakout energy stored
— Delta divergence : bullish swing with red bins at top → sellers absorbing the rally → watch for reversal
— Price retesting POC zone : if the extended POC zone acts as support/resistance, the volume consensus from the previous swing is holding
📊 Dashboard fields:
— Trend: current swing direction (Bullish ▲ / Bearish ▼)
— POC: point of control price for the current/last swing
— VA 70%: value area range (low — high)
— VWAP: swing VWAP price
— Volume: total volume in the swing leg
— Delta: buy vs sell imbalance percentage (positive = buy dominant)
— Timeframe and version
⚙️ KEY SETTINGS REFERENCE
⚙️ Main:
— Swing Detection Length (default 21): pivot lookback — higher = larger swings, lower = more frequent
— Profile Bins (default 20): price resolution — higher = finer detail, lower = smoother
🎨 Visual:
— Volume Profile (default On): histogram display
— Heatmap (default Off): color-gradient fill instead of histogram
— Delta Profile (default On): buy/sell coloring per bin
— ZigZag (default On): swing connector lines (Dotted/Dashed/Solid)
— POC Line (default On): point of control with extending zone
— POC Zone Fill (default On): shaded POC bin
— Value Area (default On): VA High/Low lines
— Swing VWAP (default Off): volume-weighted average per leg
— Swing Labels (default On): pivot markers with tooltip data
— Reversal Signals (default Off): confirmed swing direction change markers
— Auto / Dark / Light theme
🔧 Advanced:
— POC Width (default 2): POC line thickness
— VA Width (default 1): Value Area line thickness
🔔 Alerts
— 🟢 SWING BULLISH — ticker, price, timeframe, POC, delta %
— 🔴 SWING BEARISH — same fields
Both support plain text and JSON webhook format. Bar-close confirmed.
⚠️ IMPORTANT NOTES
— 🚫 No repainting of confirmed profiles. Historical profiles are built on barstate.isconfirmed when a swing direction flip occurs. Once drawn, they don't change. The real-time forming profile updates each bar (by design — it's a live calculation), but confirmed profiles are final.
— 📊 Volume data required. The profile, POC, Value Area, delta, and VWAP calculations all depend on volume data. On instruments without volume (some forex pairs), the profiles will be flat (all bins equal) and the analysis loses its meaning. The indicator works best on instruments with reliable volume: crypto, stocks, futures.
— 📐 The candle-range distribution is an approximation of intrabar volume distribution. True tick-level distribution would require tick data, which PulseWire doesn't provide. The proportional overlap method is the best approximation available and significantly more accurate than assigning all volume to the close price.
— ⚖️ The delta classification (buy vs sell) uses candle direction (close ≥ open), not actual trade-level order flow. A bullish candle's volume is classified as "buy" and a bearish candle's as "sell." This is a standard approximation used by most volume analysis tools on candle data.
— 📏 Swing Detection Length controls profile granularity. Length 21 produces medium-term swing profiles. Length 5–10 produces many small profiles (noisy). Length 50–100 produces few large profiles (macro structure). Choose based on your trading timeframe.
— 🔄 The POC zone extends rightward until the next profile appears. If no new swing occurs for a long time, the zone keeps extending — this is by design (the last known POC remains relevant until a new volume structure forms).
— 🛠️ This is a volume analysis and structural visualization tool , not an automated trading bot. It reveals where volume concentrated within each swing — trade decisions remain yours.
— 🌐 Works on all markets with volume data. All timeframes supported. Indicator

Swing Profile [BigBeluga]🔵 OVERVIEW
Swing Profile is a dynamic swing-based volume profiling tool that builds a complete volume profile for each completed market swing.
Instead of using fixed sessions or time ranges, the indicator anchors its profile strictly between confirmed swing highs and swing lows, allowing traders to analyze where volume accumulated inside each directional leg.
The profile updates in real time while a swing is still forming and finalizes once the swing direction flips, giving both historical and live insight into volume behavior.
🔵 CONCEPTS
Swing-Anchored Profiling — Volume is calculated only between confirmed swing highs and lows detected by the Swing Length input.
Directional Legs — Each bullish or bearish swing leg gets its own independent volume profile.
ATR-Adaptive Bins — Profile bin size is automatically scaled using ATR, keeping resolution consistent across volatility regimes.
Real-Time Rebuild — While a swing is still active, the profile continuously recalculates and redraws.
Finalized Profiles — Once direction flips, the profile is locked and marked as a completed swing.
🔵 FEATURES
Swing Volume Profile — Displays horizontal volume distribution for each swing leg.
Point of Control (PoC) — Highlights the price level with the highest traded volume inside the swing.
Buy / Sell Volume Separation — Tracks bullish (buy) and bearish (sell) volume inside each profile.
Delta Volume Calculation — Shows net buying vs selling pressure as a percentage.
Profile Outline — A polyline traces the outer shape of the volume distribution.
HeatMap Mode — Optional heatmap visualization showing volume intensity by color gradient.
ZigZag Swing Connector — Visual connection between swing highs and lows for structure clarity.
Custom Label Sizing — Adjust label size (Tiny → Huge) for clean chart scaling.
🔵 HOW TO USE
Identify High-Interest Zones — Use the PoC to locate price levels where the market spent the most time during a swing.
Trend Strength Analysis — Strong directional swings often show volume skewed toward one side of the profile.
Pullback Zones — Profiles help identify areas where price may react during retracements.
Continuation vs Reversal — Delta volume reveals whether buying or selling dominated the swing.
Live Monitoring — While a swing is forming, watch the real-time profile to anticipate where structure may complete.
🔵 DATA LABELS
T — Total traded volume inside the swing.
B — Buy volume (bullish candles).
S — Sell volume (bearish candles).
D — Delta volume (% difference between buy and sell volume).
🔵 CONCLUSION
Swing Profile delivers a precise, structure-aware view of volume by anchoring profiles directly to market swings.
By combining real-time profiling, PoC detection, delta analysis, and adaptive resolution, it provides deep insight into where participation truly occurred — making it a powerful tool for swing traders, structure traders, and volume-focused strategies. Indicator

3D Volume Profile [UAlgo]3D Volume Profile is a chart based volume profile indicator that takes a classic horizontal profile concept and presents it as a pseudo 3D structure directly on price. Instead of drawing flat histogram bars only, the script renders each profile row as a shaded 3D block with a front face, a side face, and a top face, which creates a stronger visual sense of depth and distribution.
The indicator runs on price ( overlay=true ) and builds a rolling volume profile over a user defined lookback window. It divides the recent price range into fixed bins, distributes candle volume across those bins, identifies the Point of Control and the Value Area, and then draws the result on the right side of the chart. Each row is color coded by dominant flow direction, which means the profile can show whether a bin was more buy dominated or sell dominated in addition to showing how much total volume accumulated there.
This makes the tool useful for traders who want more than a basic profile display. It combines:
A rolling horizontal volume profile
Buy versus sell dominance shading
Point of Control and Value Area detection
A forward projected 3D style histogram
Clear POC, VAH, and VAL reference lines on the chart
The final result is a visually rich profile tool designed for fast structural reading, especially when identifying acceptance zones, thin areas, and dominant participation regions.
🔹 Features
🔸 1) Rolling Volume Profile Over a Recent Window
The script builds a rolling profile from the most recent user selected number of bars. This means the profile continuously adapts as new bars come in, making it more useful for current market structure analysis than a fixed session only approach.
🔸 2) 3D Style Histogram Rendering
Each volume row is drawn as a pseudo 3D block rather than a flat rectangle. The script creates:
A front face
A side face
A top face
The side and top faces are shaded versions of the main color, which gives the profile a depth effect and makes the structure easier to read visually.
🔸 3) Customizable 3D Depth in X and Y
The 3D effect is controlled with two settings:
3D Depth X , which controls how far the rear face is shifted horizontally in bars
3D Depth Y , which controls how far the rear face is shifted vertically as a percentage of row height
This allows the user to make the profile look flatter or more pronounced depending on preference.
🔸 4) Buy and Sell Volume Dominance Coloring
Each bin tracks both buy volume and sell volume. If buy volume is greater than or equal to sell volume, the row uses the bullish color. If sell volume dominates, the row uses the bearish color.
This means the profile is not only a measure of total activity. It also adds directional context to each price zone.
🔸 5) Point of Control Detection
The script identifies the row with the highest total volume and marks it as the Point of Control. The POC is highlighted with its own dedicated color and is visually distinct from the rest of the profile.
This gives traders an immediate reference for the most active price zone in the rolling range.
🔸 6) Value Area Calculation
The indicator calculates a Value Area around the Point of Control based on the user selected percentage. Bins inside the Value Area are marked and recolored with the Value Area color, which makes the high participation region easy to identify.
🔸 7) Forward Projected Profile Layout
The profile is drawn to the right of current price using a configurable offset. This keeps the active candle area readable while still placing the profile in a clear and accessible location.
🔸 8) Adjustable Resolution and Width
Users can control:
The lookback length
The number of profile rows
The maximum width of the histogram
The right side offset
This makes the indicator suitable for both coarse structural analysis and more detailed profile inspection.
🔸 9) POC, VAH, and VAL Reference Lines
After the profile is built, the script calculates the POC, Value Area High, and Value Area Low, then projects horizontal reference lines across the chart. Labels are placed to the right so the key levels are clearly marked.
🔸 10) Row by Row Dominance and Acceptance Reading
Because each row stores total volume, buy volume, sell volume, Value Area membership, and POC status, the indicator gives a layered view of the market:
Where the most activity occurred
Which zones were accepted
Which zones were dominated by buyers
Which zones were dominated by sellers
🔸 11) Premium Visual Presentation
The script uses shaded faces, dedicated POC highlighting, Value Area recoloring, and clean right side labels. This makes it more presentation focused than a basic flat profile and improves chart readability for manual analysis.
🔹 Calculations
1) Profile Range Detection
The script first finds the highest high and lowest low inside the active lookback window. This defines the full vertical range of the volume profile. Only the most recent bars inside that window are used for profile construction.
2) Bin Initialization
Once the recent range is known, the script divides that price range into the chosen number of bins. Each bin stores:
Top boundary
Bottom boundary
Total volume
Buy volume
Sell volume
Flags for Value Area and POC
The bin size is calculated by dividing the total price range by the number of rows.
3) Volume Distribution Across Price Bins
For each candle, the script determines which bins the candle spans. It then spreads that candle’s volume evenly across all touched bins.
This is important because the script does not place the full candle volume into a single price level. Instead, it allocates the candle volume across the portion of the profile that candle covers.
Important implementation note:
This script uses equal distribution across the spanned bins, not proportional overlap weighting. That means each touched row receives the same share of the candle’s volume.
4) Buy Versus Sell Volume Classification
The script classifies each candle as buy dominated or sell dominated using candle direction:
If close is greater than or equal to open, the candle is treated as buy volume
If close is below open, the candle is treated as sell volume
That candle’s allocated volume is then added to either volBuy or volSell inside each touched bin.
This is a practical directional approximation, not true bid ask tape volume.
5) Total Volume and POC Detection
After all candles are processed, the script scans every bin and calculates:
The total volume across the profile
The maximum single bin volume
The POC index
The POC is the bin with the highest total volume. That bin is marked as both isPOC and isVA before Value Area expansion begins.
6) Value Area Expansion Logic
The Value Area is built around the POC by expanding upward and downward until the selected percentage of total profile volume is included.
The script compares the next bin above and the next bin below the current Value Area. It adds whichever side has greater volume first. This continues until cumulative included volume reaches the target Value Area percentage.
This creates a standard profile style Value Area centered on the highest participation region.
7) Histogram Width Normalization
Each row’s width is scaled relative to the maximum volume row:
The row with the most volume becomes the widest
Smaller rows are scaled proportionally
This means width directly communicates relative participation at each price zone.
8) Color Selection Logic
For each bin, the script first determines whether buy volume or sell volume dominates:
If buy volume is greater than or equal to sell volume, it uses the bullish color
Otherwise it uses the bearish color
Then the script overrides that base direction color if needed:
If the row is the POC, it uses the POC color
If the row is inside the Value Area, it uses the Value Area color
This gives the profile a clear visual hierarchy:
POC first
Value Area second
Directional dominance otherwise
9) 3D Face Construction
Each row is rendered as a pseudo 3D object using:
A front rectangle
A shifted back edge using the X and Y depth settings
A side face when horizontal depth is visible
A top or bottom face depending on vertical depth direction
The script shades the side face darker and the top face brighter than the base color to create a depth illusion.
This is a visual projection technique, not a true 3D engine, but it produces a convincing 3D profile effect on the chart.
10) Rendering Order Logic
The script changes draw order depending on the sign of the Y depth:
If vertical depth is positive, rows are drawn from bottom to top
If vertical depth is negative, rows are drawn from top to bottom
This helps the 3D faces stack more cleanly and reduces visual overlap issues.
11) POC, VAH, and VAL Price Calculation
After the profile is complete:
The POC price is the midpoint of the POC bin
VAH is the highest top boundary among all Value Area bins
VAL is the lowest bottom boundary among all Value Area bins
These levels are then drawn as horizontal lines extending from the left side of the lookback window toward the right side label area.
12) Label Placement
The labels for POC, VAH, and VAL are placed slightly to the right of the profile. This keeps them readable and avoids overlap with the 3D bars themselves. Indicator

Price Normalized RSI Profile [UAlgo]Price Normalized RSI Profile is a hybrid visualization tool that combines a rolling RSI distribution study with a profile style overlay drawn directly on the price chart. Instead of plotting a classic RSI line in a separate oscillator pane, this script collects historical RSI readings, groups them into fixed 0 to 100 bins, weights each bin by traded volume, and then renders the resulting distribution as a horizontal profile on the right side of the main chart.
The goal of the script is not to show where price traded the most, but to show where RSI states accumulated the most volume over the selected lookback period. In other words, it answers a different question than a traditional volume profile. Rather than asking which prices were most active, it asks which RSI regimes were most active, then maps those oscillator regimes visually into the chart’s price space for easier on-chart interpretation.
The indicator highlights:
A volume weighted RSI Point of Control (POC)
A Value Area around that POC
A right side histogram of RSI regime distribution
A color gradient that reflects bullish versus bearish RSI zones
Reference labels for POC, VAH, and VAL
Lookback boundary markers for profile context
This makes the script useful for traders who want to blend oscillator distribution analysis with chart based execution, especially when comparing current price position against historically dominant RSI states.
Important note: The POC, VAH, and VAL in this script are derived from an RSI distribution profile , not from a standard price based volume profile. They are visually mapped onto the current chart range for presentation.
🔹 Features
🔸 1) Volume Weighted RSI Distribution Profile
The script collects RSI values over a rolling lookback window and assigns each reading into one of several fixed RSI bins. Each bin accumulates volume , not just frequency, so the profile reflects how much traded participation occurred while RSI was in that zone.
This makes the output more meaningful than a simple occurrence count because highly active bars contribute more weight.
🔸 2) Fixed 0 to 100 RSI Bin Framework
The profile is built over the natural RSI range from 0 to 100, divided into a user defined number of bins. This creates a stable oscillator distribution model that is consistent across symbols and timeframes.
Lower bin counts create thicker, smoother profile bars.
Higher bin counts create finer resolution and more detailed structure.
🔸 3) Overlay on the Main Price Chart
Unlike most RSI tools, this script runs with overlay=true and renders the profile directly on the price chart. It maps RSI bins onto the vertical span of the recent chart range, allowing traders to see the distribution without leaving the main chart.
This is a visual convenience feature and creates a unique fusion of oscillator logic and price space presentation.
🔸 4) Point of Control (POC) Detection
The indicator identifies the RSI bin with the highest accumulated volume and treats it as the RSI Profile POC. This is the most active RSI zone by volume over the lookback window.
The POC is highlighted with:
A wider profile bar
A unique color
A label showing the POC volume
🔸 5) Value Area (VAH / VAL) Calculation
The script builds a Value Area around the POC using the selected percentage of total profile volume. This identifies the core RSI regime zone where the majority of the volume weighted RSI activity occurred.
The Value Area is visually emphasized with more visible bars and separate VAH / VAL guide lines.
🔸 6) Gradient Color Mapping by RSI Regime
Each bin is colored using a gradient based on its RSI location:
Lower RSI zones lean bullish color
Higher RSI zones lean bearish color
This reflects the script’s chosen visual logic, where low RSI bins appear in the bullish color family and high RSI bins appear in the bearish color family.
🔸 7) Distinct Styling for POC, Value Area, and Outside Value
The script visually separates three categories:
POC bin
Bins inside the Value Area
Bins outside the Value Area
This helps traders quickly distinguish the dominant RSI regime from the broader accepted RSI zone and from lower importance outer regions.
🔸 8) Forward Projected Histogram Layout
The profile is drawn to the right of current price using configurable:
Maximum width in bars
Horizontal offset
This keeps the histogram out of the way of current candles while preserving clear visibility on the active chart.
🔸 9) Lookback Context Markers
The script draws a vertical line marking the start of the profile lookback window, plus horizontal guide lines across the chart high and low range used for the profile mapping. This makes it easy to understand which portion of the chart is being analyzed.
🔸 10) Compact On Chart Labels
The indicator adds right side labels for:
POC
VAH
VAL
This makes the distribution easier to read without manually inspecting each bar.
🔸 11) Rolling History Buffer for RSI and Volume
The script stores both RSI and volume into arrays, allowing the profile to be rebuilt from recent history on the last bar. This keeps the logic fully rolling and independent from session boundaries.
🔸 12) Structured Object Based Design
The script uses custom types:
RsiBin for each RSI interval
RsiProfile for the full profile state, including POC and Value Area indexes
This makes the internal logic cleaner and easier to maintain.
🔹 Calculations
1) RSI Calculation
The script calculates RSI from the chosen source and length:
float rsi_val = ta.rsi(rsi_src, rsi_len)
This value is the basis for all binning and profile accumulation.
2) Rolling RSI and Volume History Storage
Every bar, the script pushes the latest RSI value and volume into rolling arrays:
rsi_history.push(rsi_val)
vol_history.push(volume)
To prevent unlimited growth, the arrays are trimmed when they exceed:
lookback + 100
This keeps enough buffer for profile stability while controlling memory size.
3) Fixed RSI Bin Initialization
The profile divides the 0 to 100 RSI range into equal bins:
float step = 100.0 / bins_count
for i = 0 to bins_count - 1
float min_v = i * step
float max_v = (i + 1) * step
this.bins.push(RsiBin.new(min_v, max_v, 0.0, 0))
Each bin stores:
RSI minimum value
RSI maximum value
Accumulated volume
Observation count
4) Volume Weighted Population of the RSI Profile
When populating the profile, each historical RSI value is mapped into the correct bin:
int bin_idx = math.floor(r_val / 100.0 * this.bins.size())
The index is clamped to remain inside valid bounds:
bin_idx := math.min(bin_idx, this.bins.size() - 1)
bin_idx := math.max(bin_idx, 0)
Then the script adds the corresponding bar volume to that bin:
b.volume += v_val
b.count += 1
this.total_vol += v_val
This means the profile is volume weighted RSI distribution , not a simple count histogram.
5) POC Detection
As bins are populated, the script tracks the bin with the highest accumulated volume:
if b.volume > this.max_vol
this.max_vol := b.volume
this.poc_idx := bin_idx
This bin becomes the profile POC and acts as the center for Value Area expansion.
6) Value Area Calculation
The Value Area target is calculated from total profile volume:
float target_vol = this.total_vol * (va_percent / 100.0)
The script starts from the POC and expands outward, comparing the next upper and lower bin volumes:
float vol_up = (top < max_idx) ? this.bins.get(top + 1).volume : 0.0
float vol_dn = (bot > 0) ? this.bins.get(bot - 1).volume : 0.0
Whichever side has more volume is added first. This continues until the accumulated volume reaches the target percentage.
The final indexes are stored as:
this.va_top_idx := top
this.va_bot_idx := bot
7) Mapping RSI Bins into Price Space
A key part of this script is that RSI bins are not drawn in an oscillator pane. Instead, each RSI interval is mapped onto the chart’s recent price range:
float price_range = chart_high - chart_low
float y_bottom = chart_low + (b.min_val / 100.0) * price_range
float y_top = chart_low + (b.max_val / 100.0) * price_range
Interpretation:
RSI 0 maps to the recent chart low.
RSI 100 maps to the recent chart high.
All intermediate RSI bins are proportionally placed between them.
This is a visual mapping device, not a statement that those price levels correspond to actual RSI threshold prices.
8) Histogram Width Normalization
Each bin’s horizontal width is scaled by its volume relative to the maximum profile volume:
int bar_w = math.round((b.volume / this.max_vol) * max_width)
If the bin is the POC, it gets extra width:
if is_poc
bar_w := int(max_width * 1.15)
This makes the POC stand out clearly inside the profile.
9) POC, VA, and Outside VA Styling Logic
Each bin is categorized as:
POC
Inside the Value Area
Outside the Value Area
Then the script applies different opacity and border logic:
POC gets the dedicated POC color
VA bins are more visible
Outside VA bins are more faded
This creates clear visual hierarchy in the profile.
10) Color Gradient by RSI Position
Base color is determined from bin position in the RSI scale:
color base_col = color.from_gradient(b.min_val, 0, 100, c_bull, c_bear)
This means lower RSI bins transition toward the bullish color and higher RSI bins transition toward the bearish color. This is a stylistic mapping choice built into the script.
11) POC Label and Volume Display
When the POC is drawn, the script also adds a label showing:
The text POC
The accumulated volume of that bin
text="POC " + str.tostring(b.volume, format.volume)
This provides quick information about the dominant RSI regime’s participation size.
12) VAH and VAL Price Level Rendering
The script converts the Value Area top and bottom RSI bin indexes into mapped chart levels:
For VAH:
float vah_level = chart_low + (b_vah.max_val / 100.0) * price_range_val
For VAL:
float val_level = chart_low + (b_val.min_val / 100.0) * price_range_val
It then draws dashed horizontal lines and small labels for both.
Important note:
These are RSI profile Value Area boundaries mapped into price space , not true price based VAH and VAL from a market profile.
13) Lookback Boundary Drawing
The start of the lookback window is marked with a vertical dotted line:
int start_bar_idx = bar_index - lookback
line.new(start_bar_idx, chart_low, start_bar_idx, chart_high, ...)
This makes it easier to visually understand which section of chart history contributed to the current profile.
14) Chart Range Anchoring
The vertical display range used for the RSI to price mapping is derived from:
float chart_high = ta.highest(high, lookback)
float chart_low = ta.lowest(low, lookback)
This means the profile always stretches across the full recent visible price range used in the calculation window.
15) Last Bar Rendering Behavior
The profile is built and rendered only on the last bar:
if barstate.islast
vp.init(bin_count)
vp.populate(rsi_history, vol_history, lookback)
vp.calc_va(va_pct)
vp.render(...)
Indicator

Volumetric Supply and Demand Zones [BOSWaves]Volumetric Supply and Demand Zones - Impulse-Based Zone Detection with Embedded Volume Profile Analysis
Overview
Volumetric Supply and Demand Zones is an impulse-driven zone identification system that marks significant reversal areas through swing detection and volume accumulation patterns, where zone boundaries dynamically reflect actual trading activity concentration rather than arbitrary price levels.
Instead of relying on traditional horizontal support/resistance lines or fixed pivot structures, zone placement, thickness, and volumetric composition are determined through ATR-normalized impulse detection, volume profile distribution analysis, and delta decomposition within base formation periods.
This creates adaptive supply and demand boundaries that reflect actual volume accumulation patterns rather than simple price extremes - contracting zones around high-volume concentration areas when profile shows tight distribution, expanding zones during dispersed volume activity, and incorporating positive/negative delta breakdowns to reveal whether zones formed under buying or selling pressure dominance.
Price interactions are therefore evaluated relative to volume-weighted zone structures and point-of-control levels rather than conventional naked price zones.
Conceptual Framework
Volumetric Supply and Demand Zones is founded on the principle that meaningful reversal zones emerge where significant volume accumulated during consolidation before impulse moves rather than at simple swing high/low pivot points.
Traditional supply and demand methods identify zones using price structure alone through swing detection or candlestick patterns, which often ignores the underlying volume distribution and buying/selling pressure that validates institutional accumulation or distribution. This framework replaces price-only logic with volume-weighted zone construction informed by actual trading activity concentration and delta composition.
Three core principles guide the design:
Zone boundaries should encompass base formation periods preceding impulse moves, not isolated pivot candles alone.
Volume profile distribution within zones must reveal where actual trading activity concentrated, identifying true points of control.
Delta decomposition exposes whether zones formed under buying pressure (demand accumulation) or selling pressure (supply distribution).
This shifts supply and demand analysis from naked price levels into volume-validated, delta-aware institutional footprint zones.
Theoretical Foundation
The indicator combines swing pivot detection, ATR-based impulse measurement, volume profile construction, and delta decomposition analysis.
A pivot detection system identifies local swing highs and lows using configurable left/right bar parameters. Impulse validation measures the subsequent price move magnitude relative to ATR, confirming whether the swing preceded a significant directional thrust. Zone boundaries encompass a lookback period of candles forming the base, with maximum height capped by ATR multiplier to prevent excessively large zones. Volume profile divides each zone into horizontal rows, distributing volume proportionally based on price overlap and identifying the point of control (highest volume row). Delta profile separates volume into buying versus selling components using close-open relationships, revealing net directional pressure within each profile row.
Five internal systems operate in tandem:
Swing Detection Engine : Identifies pivot highs and lows using symmetrical left/right bar confirmation for potential zone anchor points.
Impulse Validation System : Measures price movement magnitude following pivot formation, requiring ATR-multiple threshold breach to confirm zone significance.
Volume Profile Constructor : Divides zone height into configurable rows, allocates volume proportionally based on bar price range overlap with each row, identifies POC as highest-volume row.
Delta Decomposition Engine : Separates volume into buying (up-close bars) versus selling (down-close bars) components within each profile row, calculates net delta and dominant pressure direction.
Zone Merge Logic : Detects overlapping zones of same type (supply/supply or demand/demand), combines boundaries and recalculates volume/delta statistics with weighted blending.
This design allows supply and demand zones to reflect actual volume accumulation reality rather than reacting mechanically to price pivots alone.
How It Works
Volumetric Supply and Demand Zones evaluates price through a sequence of volume-aware zone construction processes:
Pivot Identification : Swing detection algorithm identifies local highs and lows using configurable left/right bar symmetry, marking potential reversal zone anchors.
Impulse Magnitude Validation : Following pivot formation, price movement measured relative to ATR over lookback period - move must exceed ATR multiplier threshold to confirm zone validity.
Base Period Boundary Definition : Zone encompasses pivot bar plus configurable lookback candles forming the consolidation base preceding impulse move.
Height Normalization : Raw zone height (high to low of base period) capped at maximum ATR multiplier to prevent zones becoming unreasonably large during extended consolidations.
Volume Profile Row Allocation : Zone divided into configurable number of horizontal rows, each bar's volume distributed proportionally based on price range overlap with row boundaries.
Point of Control Identification : Row with highest accumulated volume marked as POC, representing price level with maximum trading activity concentration within zone.
Delta Component Separation : Each bar's volume classified as buying (close > open) or selling (close < open), allocated to respective delta buckets within overlapping profile rows.
Delta Profile Construction : Net delta (buy volume minus sell volume) calculated per row, rendered as horizontal bars extending from zone right edge inward with green (positive) or red (negative) coloring.
Overlap Detection and Merging : New zones checked against existing zones of same type, overlapping zones within merge gap threshold combined with boundary expansion and volume/delta statistics aggregation.
Mitigation Detection : Price interaction monitoring using configurable method (wick or close) determines when zones violated, triggering zone deletion and cleanup of all visual elements.
Together, these elements form a continuously updating supply and demand framework anchored in volume accumulation reality and delta pressure composition.
Interpretation
Volumetric Supply and Demand Zones should be interpreted as volume-validated institutional footprint zones:
Demand Zones (Green) : Form at swing lows preceding upward impulse moves exceeding ATR threshold - represent areas where buyers accumulated positions before markup phase, volume profile shows where bids concentrated.
Supply Zones (Red) : Establish at swing highs preceding downward impulse moves exceeding ATR threshold - identify areas where sellers distributed positions before markdown phase, volume profile shows where offers concentrated.
Volume Profile Bars : Horizontal bars extending from zone left edge show relative volume distribution across price levels - longer bars indicate higher trading activity, revealing true institutional accumulation/distribution levels versus arbitrary zone edges.
Point of Control Line (White) : Horizontal line within zone marks price level with maximum volume concentration - represents the most significant institutional activity level, often acts as magnetic price level during retests.
Delta Profile Bars : Horizontal bars extending from zone right edge inward display net buying/selling pressure per price level - green bars show buy volume dominance (accumulation), red bars show sell volume dominance (distribution).
Zone Info Box : Text panel on right edge displays zone type (SUPPLY/DEMAND), status (Fresh/Tested), total volume, net delta, and touch count - provides quantitative validation of zone significance.
Fresh Status : Newly created zones not yet tested by price - highest probability reversal zones as institutional orders likely remain unfilled.
Tested Status : Zones where price returned and interacted with boundaries - touch count reveals how many times zone provided support/resistance, excessive touches suggest weakening.
Merged Zones : Wider zones with higher volume/delta values formed by combining multiple overlapping base periods - represent extended institutional accumulation/distribution areas with greater significance.
POC Brightness : Brightest (white) volume profile bar marks point of control - visual emphasis highlights the most critical price level within zone structure.
Volume distribution shape, POC placement, delta composition, and touch count outweigh simple zone boundary reactions.
Signal Logic & Visual Cues
Volumetric Supply and Demand Zones presents zone interaction insights rather than discrete directional signals:
Fresh Zone Formation : New supply or demand zone created when swing pivot followed by ATR-threshold impulse - suggests institutional footprint left behind, high-probability reversal area established.
First Retest (Fresh → Tested) : Price returning to previously untouched zone triggers status change and touch increment - historically highest-probability reaction level as unfilled orders likely remain.
POC Magnetic Behavior : Price gravitating toward white POC line during zone interaction - suggests institutional activity concentration level acting as support/resistance within broader zone.
Volume Profile Asymmetry : Profile showing volume concentrated at zone edge versus center reveals base formation character - edge concentration suggests quick accumulation before impulse, center concentration indicates prolonged consolidation.
Delta Divergence Patterns : Demand zones showing negative delta profile (red bars dominant) or supply zones showing positive delta (green bars) reveal weak zone formation - pressure composition conflicted with expected direction.
Delta Confirmation Patterns : Demand zones with strong positive delta (green bars) or supply zones with strong negative delta (red bars) validate institutional conviction - pressure aligned with expected reversal direction.
Excessive Touch Degradation : Touch count exceeding 3-4 interactions suggests zone weakening - repeated tests consume institutional orders, reducing reversal probability.
Mitigation Events : Price closing beyond zone boundaries (or wicking through, based on settings) triggers zone deletion - invalidation confirms institutional levels failed, trend continuation likely.
The primary value lies in volume-validated zone structure and delta composition analysis rather than simple boundary touches.
Strategy Integration
Volumetric Supply and Demand Zones fits within institutional footprint and order flow-aware trading approaches:
Fresh Zone Reversal Entries : Enter counter-trend positions at first retest of fresh zones with strong delta confirmation - unfilled institutional orders provide high-probability reaction levels.
POC-Precise Limit Orders : Place entries at POC line rather than zone edges - point of control represents maximum volume concentration, offering tighter stop placement and better risk/reward.
Delta-Filtered Zone Selection : Prioritize demand zones showing positive net delta and supply zones showing negative net delta-aligned pressure composition validates institutional conviction.
Volume Profile Distribution Analysis : Favor zones with tight volume concentration (profile bars clustered) over dispersed distribution - concentrated profiles suggest decisive institutional accumulation/distribution.
Merge-Enhanced Conviction : Treat merged zones with higher volume/delta totals as stronger reversal candidates - combined statistics represent extended institutional activity periods.
Touch Count Degradation Filtering : Reduce position sizing or avoid zones with 3+ touches - excessive interaction depletes institutional orders, weakening reversal probability.
Trend Continuation via Mitigation : Enter breakout positions when price closes beyond supply zones (uptrend) or demand zones (downtrend) - mitigation confirms trend strength overwhelming institutional levels.
Multi-Timeframe Zone Confluence : Apply higher-timeframe zones for macro structure, use lower-timeframe volume profile to identify precise entry levels within larger zones.
Technical Implementation Details
Core Engine : Pivot detection with symmetrical left/right confirmation, ATR-normalized impulse validation
Zone Construction : Base period lookback with ATR-capped height normalization and time-based extension
Volume Profile System : Proportional volume allocation across configurable rows with overlap percentage calculation
Delta Engine : Close-open relationship classification separating buy/sell volume with net delta calculation per row
POC Identification : Maximum volume row detection with visual emphasis rendering
Merge Logic : Overlap detection with gap threshold, boundary expansion, and weighted statistic aggregation
Visualization : Multi-element rendering (zone boxes, profile bars, delta bars, POC lines, info panels) with proportional sizing
Performance Profile : Custom type system for zone/profile/delta management, efficient array-based storage with configurable zone limits
Optimal Application Parameters
Timeframe Guidance:
1 - 5 min : Micro-structure supply/demand for scalping with tight ATR multipliers and reduced lookback
15 - 60 min : Intraday institutional footprint zones with balanced profile row count and merge sensitivity
4H - Daily : Swing-level accumulation/distribution areas with extended lookback periods and wider merge gaps
Weekly - Monthly : Macro institutional zones with maximum profile detail and extended zone persistence
Suggested Baseline Configuration:
Swing Length : 8
Impulse Size (ATR) : 1.2
Base Lookback Candles : 3
ATR Length : 14
Maximum Zone Height (ATR) : 4.0
Maximum Zones : 10
Extend Zones (bars) : 60
Merge Overlapping Zones : Enabled
Merge Gap (ATR) : 0.3
Mitigation Type : Wick
Profile Rows : 10
Profile Width (%) : 0.5
Show POC Line : Enabled
Show Delta Profile : Enabled
Delta Profile Width (%) : 0.35
Show Zone Info Box : Enabled
These suggested parameters should be used as a baseline; their effectiveness depends on the asset's volatility profile, volume characteristics, and preferred zone sensitivity, so fine-tuning is expected for optimal performance.
Parameter Calibration Notes
Use the following adjustments to refine behavior without altering the core logic:
Too many zones cluttering chart : Increase Swing Length (10 - 12) to demand stronger pivots, or increase Impulse Size multiplier (1.5 - 2.0) to require larger moves for zone validation.
Missing significant reversal levels : Decrease Swing Length (5-6) for earlier pivot detection, or reduce Impulse Size (0.8 - 1.0) to capture smaller but valid base formations.
Zones too large/tall : Reduce Maximum Zone Height ATR multiplier (2.5 - 3.0) to cap vertical size, or decrease Base Lookback Candles (1 - 2) for tighter base periods.
Zones too small to be useful : Increase Base Lookback Candles (4 - 6) to encompass longer consolidation periods, or raise Maximum Zone Height (5.0 - 7.0) for taller zones.
Profile bars too granular : Decrease Profile Rows (6 - 8) for coarser distribution showing major volume clusters only.
Profile lacking detail : Increase Profile Rows (15 - 20) for finer resolution revealing subtle volume distribution nuances.
Zones merging too aggressively : Decrease Merge Gap ATR multiplier (0.1 - 0.2) to require tighter overlap for merge qualification, or disable merging entirely.
Related zones not combining : Increase Merge Gap (0.5 - 0.8) to allow merging of zones with larger separation distances.
Zones invalidating prematurely : Switch Mitigation Type from "Wick" to "Close" to require closing violation rather than intrabar penetration.
Zones persisting too long after breach : Switch Mitigation Type from "Close" to "Wick" for faster invalidation on initial penetration.
Profile bars invisible : Increase Profile Width percentage (0.6 - 0.8) for longer bars, improving visibility on cluttered charts.
Delta profile obscuring volume profile : Reduce Delta Profile Width (0.2 - 0.3) to prevent overlap, or disable delta display temporarily.
Adjustments should be incremental and evaluated across multiple session types rather than isolated market conditions.
Performance Characteristics
High Effectiveness:
Range-bound and mean-reverting markets where institutional zones provide reliable turning points
Instruments with consistent volume characteristics where profile distribution reveals true accumulation/distribution
Swing trading approaches targeting zone-to-zone reactions with defined risk parameters
Reversal strategies seeking volume-validated entry levels rather than blind counter-trend positions
Markets where delta proxy correlates well with actual order flow (trending volume instruments)
Position trading benefiting from macro supply/demand structure with embedded volume context
Reduced Effectiveness:
Extremely low volume environments where profile distribution becomes unreliable and sparse
News-driven or gapped markets where zones form/invalidate without normal volume accumulation patterns
Highly trending markets where zones consistently mitigate without providing reversal opportunities
Instruments with erratic volume patterns making delta decomposition and profile interpretation misleading
Very high-frequency timeframes (seconds) where base formation periods too short for meaningful volume accumulation
Integration Guidelines
Confluence : Combine with BOSWaves structure, market profile, or traditional technical analysis for zone validation within broader context
Volume Profile Respect : Trust POC levels and high-volume profile bars over arbitrary zone edges for entry/exit precision
Delta Confirmation Priority : Favor zones where delta composition aligns with expected direction - positive delta in demand, negative delta in supply
Fresh Zone Preference : Prioritize first retests of untouched zones over repeatedly tested areas with high touch counts
Merge Recognition : Treat merged zones with elevated volume/delta statistics as higher-conviction institutional footprint areas
Touch Count Filtering : Reduce position sizing or avoid zones after 3+ touches as institutional order depletion reduces effectiveness
Mitigation Discipline : Exit zone-based positions decisively when price closes beyond boundaries, respecting invalidation signals
Multi-Timeframe Structure : Apply higher-timeframe zones for swing structure, use lower-timeframe profiles for tactical entry refinement
Disclaimer
Volumetric Supply and Demand Zones is a professional-grade supply/demand zone and volume profile analysis tool. It uses volume-based delta proxy to estimate directional pressure but does not access true order book data or institutional trade information. Results depend on market conditions, volume reliability, ATR characteristics, parameter selection, and disciplined execution. Volume profile and delta calculations represent approximations based on close-open relationships and price overlap formulas, not actual bid/ask transactions. BOSWaves recommends deploying this indicator within a broader analytical framework that incorporates price structure, order flow context, and comprehensive risk management. Indicator

Liquidity Depth Indicator [BigBeluga]🔵 OVERVIEW
Liquidity Depth Indicator visualizes the distribution, balance, and depth of liquidity within a selected lookback window.
It builds a full liquidity profile by scanning how often price interacted with each price level, generating cumulative buy-side and sell-side curves, heatmap intensity zones, and a clear Point of Control (PoC).
This provides a deep structural view of where liquidity sits, how it’s stacked, and which side of the market dominates.
🔵 CONCEPTS
Liquidity Binning — The full range (High → Low) over the lookback window is divided into 100 micro-price zones. Each candle contributes its volume into the bin closest to its close.
Buy/Sell Side Split —
• Zones above the midpoint = potential sell-side liquidity concentration.
• Zones below midpoint = potential buy-side liquidity concentration.
Cumulative Liquidity Curves — Each side builds a flowing curve showing how liquidity stacks from mid toward extremes.
Liquidity Heatmap — Highlights volume density at each price level using color intensity for easy visual analysis.
Point of Control — The price level with the highest liquidity accumulation (max volume bin).
🔵 FEATURES
100-Level Volume Distribution — Scans all candles inside the lookback period and assigns each close to the nearest bin.
Sell-Side Depth Curve — Plotted above the midpoint, showing how sell liquidity increases as price moves toward the top of the range.
Buy-Side Depth Curve — Plotted below the midpoint, showing how buy liquidity builds toward the bottom of the range.
Volume Labels — Displays total buy-side and sell-side volume at curve peaks.
Mid-Range Liquidity Split — Calculates:
• Buy-side liquidity %
• Sell-side liquidity %
Displayed in two vertical boxes next to the profile.
Liquidity Heatmap Overlay — Color-coded price strips showing where largest clusters sit:
• Above midpoint → Sell zones
• Below midpoint → Buy zones
PoC Detection — Draws the strongest liquidity level with a bold line and prints its relative volume.
Range Frame Lines — High, Low, and Mid lines are plotted to define the liquidity environment.
Auto-Cleanup & Rebuild — All curves, boxes, and heatmap segments are refreshed each bar using barstate.islast.
🔵 HOW IT WORKS
1. Determines High, Low, and Mid over the lookback window.
2. Divides the range into 100 bins based on linear spacing.
3. Accumulates volume per bin depending on where each candle’s close lands.
4. Builds total, buy-side, and sell-side cumulative curves .
5. Colors the heatmap based on normalized volume per bin.
6. Locates PoC — the bin with maximum volume.
7. Creates buy/sell percentage distribution boxes .
🔵 HOW TO USE
Identify Liquidity Imbalance — Compare the buy vs sell percentage boxes to see which side dominates.
Spot Strong Liquidity Walls — Thick portions of cumulative curves represent areas price may reject.
Read PoC as a Magnet — Price often gravitates toward the PoC or reacts strongly once reached.
Evaluate Breakout Strength — If liquidity is concentrated at extremes, a breakout may face strong absorption.
Use Heatmap as Hidden S/R — The brightest zones frequently act as hidden support/resistance.
Detect Exhaustion Areas — If a curve sharply thins near highs or lows, the trend may weaken.
🔵 CONCLUSION
Liquidity Depth Indicator is a powerful microstructure tool that reveals where liquidity is stacked within a price range.
By combining cumulative curves, heat mapping, and PoC identification, it exposes both visible and hidden liquidity layers — helping traders spot absorption zones, reversal clusters, liquidity pools, and trend exhaustion areas with high clarity. Indicator
