Cumulative Delta Divergence Suite## Cumulative Delta Divergence Suite
The underlying cumulative-delta calculation and CDV candle construction are adapted from “Cumulative Delta Volume” by LonesomeTheBlue, licensed under MPL 2.0. This version adds independently developed divergence detection, multi-factor scoring, higher-timeframe analysis, absorption and exhaustion conditions, alerts, timeframe presets, and historical target/stop outcome analysis.
### Overview
Cumulative Delta Divergence Suite is a multi-module volume-pressure analysis indicator built around a cumulative delta oscillator.
The script compares confirmed price pivots with confirmed cumulative-delta pivots and combines divergence analysis with configurable scoring, higher-timeframe context, absorption conditions, Z-score extreme zones, timeframe presets, alerts, and simplified historical target/stop outcome tables.
The purpose of combining these components is to examine disagreement between price structure and directional volume pressure from several related perspectives. The modules are not simply displayed independently. Divergence magnitude, delta momentum, relative volume, trend alignment, higher-timeframe agreement, and pivot spacing can contribute to a shared scoring and classification process.
The displayed conditions are analytical observations. They do not predict that price will reverse, continue, or reach a particular level.
### Cumulative delta calculation
Standard chart volume does not directly separate executed buying volume from executed selling volume.
The cumulative-delta calculation used by this script derives directional volume from each candle's:
* total volume;
* body size;
* upper wick;
* lower wick;
* closing direction.
The resulting directional volume value is accumulated over time to construct the cumulative delta series.
The oscillator is displayed as candles in a separate pane. Users can display either the raw cumulative delta candles or an internally calculated Heikin-Ashi representation.
The Heikin-Ashi option smooths the oscillator structure, but this additional averaging can delay changes and alter the location of oscillator pivots.
The calculation is derived from chart OHLCV data. It does not use exchange bid/ask transaction classifications, footprint data, or order-book data.
### Divergence framework
The script compares confirmed pivots in price with confirmed pivots in the cumulative delta oscillator.
It identifies four divergence structures:
* Regular bullish divergence occurs when price forms a lower low while cumulative delta forms a higher low.
* Regular bearish divergence occurs when price forms a higher high while cumulative delta forms a lower high.
* Hidden bullish divergence occurs when price forms a higher low while cumulative delta forms a lower low.
* Hidden bearish divergence occurs when price forms a lower high while cumulative delta forms a higher high.
Regular divergence highlights disagreement between a new price extreme and the cumulative-delta structure.
Hidden divergence highlights a different form of structural disagreement that traders commonly examine within an existing trend.
Neither type establishes what price will do afterward.
### How the modules work together
The script is designed as a cumulative-delta analysis workflow rather than a collection of unrelated indicators.
Divergence provides the primary structural condition by comparing price pivots with cumulative-delta pivots.
The scoring system then evaluates additional characteristics surrounding that divergence, including divergence magnitude, recent delta-momentum change, relative volume, trend alignment, higher-timeframe agreement, and the distance between the compared pivots.
Absorption conditions examine bars where comparatively strong directional volume occurs with limited price progress under the selected volume, range, body, and confluence filters.
Z-score zones identify cumulative-delta readings that are unusually high or low relative to their recent distribution.
Higher-timeframe analysis provides broader confirmed divergence, trend, and volume context.
These components therefore perform different roles within the same analysis process rather than simply duplicating one another.
### How to use the indicator
Apply the indicator to a symbol that provides usable volume data.
The cumulative delta candles appear in a separate pane below the price chart.
A practical workflow is:
1. Review the broader price trend and market structure.
2. Observe whether cumulative delta generally confirms or disagrees with price.
3. Wait for a confirmed regular or hidden divergence condition.
4. Inspect the optional price and oscillator divergence lines to see which pivots were compared.
5. Review the divergence strength score and A+, B, or C category.
6. Check whether confirmed higher-timeframe context agrees with the current structure.
7. Review nearby absorption conditions and Z-score extreme zones.
8. Examine support, resistance, volatility, liquidity, and candle structure separately.
9. Treat all markers as analytical conditions rather than automatic trade instructions.
10. Test settings, alerts, and historical outcome assumptions on the intended symbol and timeframe.
### Regular bullish divergence
Regular bullish divergence is confirmed when:
* price forms a lower confirmed low;
* cumulative delta forms a higher confirmed low.
Price has therefore reached a new lower pivot while the cumulative-delta oscillator has not produced a corresponding lower pivot.
Traders may examine this disagreement together with market structure, support, momentum, cumulative-delta behaviour after confirmation, Z-score context, absorption conditions, and higher-timeframe structure.
The condition can fail, and price can continue lower after confirmation.
### Regular bearish divergence
Regular bearish divergence is confirmed when:
* price forms a higher confirmed high;
* cumulative delta forms a lower confirmed high.
Price has therefore reached a new higher pivot while the cumulative-delta oscillator has not produced a corresponding higher pivot.
Traders may examine this disagreement together with market structure, resistance, momentum, cumulative-delta behaviour after confirmation, Z-score context, absorption conditions, and higher-timeframe structure.
The condition can fail, and price can continue higher after confirmation.
### Hidden bullish divergence
Hidden bullish divergence is confirmed when:
* price forms a higher confirmed low;
* cumulative delta forms a lower confirmed low.
This structure is commonly examined within an existing upward trend because price retains a higher low while cumulative delta makes a deeper retracement.
It does not guarantee that the upward trend will continue.
### Hidden bearish divergence
Hidden bearish divergence is confirmed when:
* price forms a lower confirmed high;
* cumulative delta forms a higher confirmed high.
This structure is commonly examined within an existing downward trend because price retains a lower high while cumulative delta makes a stronger retracement.
It does not guarantee that the downward trend will continue.
### Raw and Heikin-Ashi CDV candles
When Heikin-Ashi CDV candles are disabled, the script uses the raw cumulative delta candle values.
When they are enabled, the script applies an internal Heikin-Ashi transformation to the cumulative delta series.
This affects only the oscillator displayed by the indicator. It does not convert the main TradingView price chart to Heikin-Ashi candles.
The smoothed representation can make broader cumulative-delta structure easier to inspect, but it may also delay short-term changes and alter oscillator pivot locations.
### Pivot settings and confirmation delay
Pivot Left controls how many earlier bars participate in identifying a pivot.
Pivot Right controls how many later bars must pass before that pivot becomes confirmed.
Higher pivot values generally produce fewer pivots, filter more short-term movement, and confirm conditions later.
Lower pivot values generally produce more pivots and react more quickly, but they are also more sensitive to short-term movement.
A pivot-based divergence is not known on the original pivot bar.
The script must wait for the configured number of Pivot Right bars before the pivot can be confirmed.
After confirmation, divergence markers and optional connecting lines are drawn at the original pivot location so users can visually inspect the price-versus-CDV structure.
For example, when Pivot Right is 5, five subsequent bars are required before the pivot is confirmed.
Consequently, a historical divergence marker appears on the earlier pivot bar even though the condition only became known several bars later.
Alerts for pivot-based divergences occur after confirmation, not on the earlier pivot bar.
### Divergence lines
The script can draw oscillator pivot-to-pivot lines in the indicator pane and corresponding price pivot-to-pivot lines on the main chart.
These lines show the exact pair of pivots used for the divergence comparison.
For example, regular bullish divergence connects two price lows where the newer price pivot is lower while the corresponding cumulative-delta pivot is higher.
The lines can be disabled when a cleaner chart is preferred.
### Divergence strength score
The optional divergence strength value measures the relative displacement between the compared price pivots and cumulative-delta pivots.
It is derived from the magnitude of the price movement and the magnitude of the oscillator movement between the compared pivots.
It is not a probability, win rate, or forecast.
The Minimum Divergence Strength setting can suppress conditions whose calculated magnitude is below the selected value.
### Composite scoring
Each confirmed divergence can receive a configurable composite score.
The score combines several measurements:
* divergence strength;
* recent change in smoothed delta momentum;
* volume relative to its recent average;
* alignment with the script's EMA-based trend state;
* agreement with confirmed higher-timeframe divergence context;
* distance between the compared pivots.
Each component performs a different function.
Divergence strength measures the magnitude of the structural disagreement.
Delta momentum examines recent directional change in the smoothed delta series.
Relative volume measures participation around the evaluated pivot.
Trend alignment provides directional price context.
Higher-timeframe agreement measures whether the selected confirmed HTF divergence context supports the same side.
Pivot spacing distinguishes closely grouped pivots from structures developing across a wider interval.
Users can adjust the contribution of these components through the scoring weights.
The active weights are normalized before the final composite value is calculated.
The score organizes conditions according to the selected model. It is not a prediction of future performance.
### Score categories
The script assigns A+, B, or C categories according to the configured score thresholds.
These categories are internal classifications.
They are not probabilities, win rates, accuracy measurements, guarantees, or independently validated performance rankings.
An A+ category means only that the condition reached the highest configured score range.
A B category means that the condition reached the middle configured range.
A C category represents conditions below the B threshold that remain eligible under the selected filter.
The Minimum Grade setting can suppress conditions below the selected category.
### Score transformation
The Score Boost Power applies a nonlinear transformation to the composite score before the A+, B, and C thresholds are evaluated.
Lower values compress scores upward and therefore allow higher categories to occur more frequently.
Higher values keep transformed scores closer to the underlying composite values and make the upper categories more selective.
This setting changes the script's internal classification behaviour. It does not increase the probability that a condition will succeed.
### Adaptive score scaling
When Adaptive Grade Scaling is enabled, the script compares the current raw composite score with the recent distribution of composite scores.
It uses a rolling mean and standard deviation to place the current value in the context of recently observed values before the category thresholds are applied.
When adaptive scaling is disabled, category thresholds are applied to the unscaled composite score.
Because adaptive scaling is relative to recent observations, the same general type of structure can receive different categories under different market conditions.
### Higher-timeframe context
The script can evaluate divergence context from a user-selected higher timeframe.
The HTF module calculates its pivot structure, trend context, and relative-volume component using confirmed data from the requested higher timeframe.
The script uses the last fully closed higher-timeframe information rather than relying on a still-forming HTF candle.
This means higher-timeframe information becomes available only after the required higher-timeframe data has been confirmed.
The HTF module identifies regular bullish, regular bearish, hidden bullish, and hidden bearish cumulative-delta divergence structures.
Its scoring process combines HTF divergence strength with HTF trend context and HTF volume participation.
Higher-timeframe conditions can be displayed separately and can also contribute to the chart-timeframe composite score.
An independent HTF Minimum Grade setting determines which higher-timeframe categories are displayed.
Because confirmed HTF data is used, higher-timeframe conditions can appear later than chart-timeframe conditions.
Higher-timeframe context should therefore be interpreted as broader confirmed information rather than an earlier signal.
### Absorption conditions
The absorption module searches for bars where comparatively large directional delta occurs while price progress remains constrained under the selected filters.
The module evaluates:
* directional delta relative to its recent average;
* volume relative to its recent average;
* candle range relative to its average;
* candle body as a proportion of the complete range;
* an optional close opposing the delta direction;
* optional proximity to a recently graded divergence.
A bullish absorption condition is associated with comparatively strong negative delta while downward price progress remains limited under the configured filters.
A bearish absorption condition is associated with comparatively strong positive delta while upward price progress remains limited under the configured filters.
The module is derived from chart OHLCV information. It does not prove that passive limit orders absorbed aggressive market orders.
The markers should therefore be interpreted as absorption-style analytical conditions rather than direct measurements of order-book behaviour.
### Absorption confluence and filtering
Absorption conditions can be filtered using recent divergence proximity, minimum divergence category, cooldown bars, volume thresholds, delta thresholds, range thresholds, body-to-range limits, and optional opposite-close confirmation.
When divergence confluence is enabled, the absorption condition must occur within the configured number of bars following a qualifying divergence.
The absorption grade displayed with a condition is derived from the nearby qualifying divergence category.
These filters change which conditions are displayed. They do not guarantee a particular subsequent price outcome.
### Z-score extreme zones
The script calculates a Z-score from the cumulative-delta oscillator's rolling mean and standard deviation.
A lower extreme zone appears when the oscillator moves below the selected negative Z-score threshold.
An upper extreme zone appears when the oscillator moves above the selected positive threshold.
These zones identify values that are unusually high or low relative to the oscillator's recent statistical distribution.
The Z-Score Length determines how much history contributes to the rolling mean and standard deviation.
The Z-Score Threshold determines how many standard deviations the oscillator must move from its rolling mean before an extreme zone is displayed.
Higher thresholds produce fewer extreme zones. Lower thresholds produce more frequent zones.
An extreme value does not establish that buying or selling pressure is exhausted and does not establish that price will reverse.
Extreme readings can persist or become more extreme.
### Using divergence, absorption, and Z-score context together
The modules provide different forms of information.
Divergence compares price pivot structure with cumulative-delta pivot structure.
Absorption examines strong directional delta occurring with constrained price progress.
Z-score analysis measures whether cumulative delta is unusually high or low relative to recent values.
Higher-timeframe analysis provides broader confirmed structural context.
Composite scoring organizes divergence conditions according to multiple characteristics of the setup.
The purpose of combining these modules is to provide several related perspectives on price-versus-volume-pressure disagreement without treating any one module as a complete trading system.
Confluence between modules provides additional analytical context but does not automatically validate a condition or guarantee reversal or continuation.
### Timeframe presets
The script contains lower-, medium-, and higher-timeframe preset bundles.
The presets adjust selected settings including:
* pivot lengths;
* score transformation power;
* adaptive score scaling;
* Heikin-Ashi CDV display;
* absorption averaging lengths;
* absorption thresholds;
* absorption confluence lookback.
The presets are intended as starting configurations.
They are not automatically optimized for the active symbol and have not been fitted to guarantee particular historical results.
Users can disable Apply Timeframe Preset to configure the corresponding settings manually.
### Cooldown settings
Independent cooldown controls can reduce repeated conditions of the same type.
Separate cooldown settings are available for regular divergences, hidden divergences, higher-timeframe divergences, absorption conditions, and Z-score extreme conditions.
A value of zero disables the relevant cooldown.
Higher cooldown values reduce repeated same-direction markers but can also suppress nearby structures that would otherwise qualify.
### Historical target/stop outcome tables
Optional tables provide a simplified historical outcome study for confirmed divergence and absorption conditions.
When a condition is confirmed, the script records the confirmation-bar closing price and calculates a fixed percentage target and fixed percentage stop level.
The target and stop percentages are user configurable.
Outcome evaluation begins on the bar after the condition is confirmed.
This prevents price movement that occurred earlier within the confirmation bar from being counted as a subsequent target or stop event.
Each confirmed condition is tracked independently.
If another qualifying condition appears before an earlier condition has resolved, the newer condition does not replace the earlier unresolved condition in the historical study.
For each tracked condition, the script records whether the target or stop is reached first.
If both the target and stop are touched during the same evaluation candle, standard OHLC chart data does not reveal which level was reached first. In this situation the script uses a conservative convention and counts the stop as occurring first.
Separate tables are available for:
* regular bullish divergence;
* regular bearish divergence;
* hidden bullish divergence;
* hidden bearish divergence;
* bullish absorption;
* bearish absorption.
The tables display the number of target-first outcomes, stop-first outcomes, and the resulting target-first percentage for the available chart history.
These tables are intended as a basic chart-based comparison tool.
They are not TradingView Strategy Tester results and are not a complete strategy backtest.
They do not model commissions, slippage, bid/ask spread, realistic order execution, position sizing, portfolio equity, liquidity, partial fills, or complete intrabar price sequencing.
Historical results depend on the symbol, timeframe, available chart history, target and stop distances, filters, indicator settings, and available volume data.
The table percentages describe only the simplified historical study produced under those settings. They do not imply future performance.
### Evaluation target and stop lines
The script can display the fixed target and stop levels associated with the most recently confirmed qualifying condition.
The Target and Stop labels remain anchored at the left side of their respective lines. While the outcome is unresolved, the lines extend to the right. Once either the target or stop is reached, the lines end at the resolution bar and remain visible until a newer qualifying condition replaces them.
These levels use the same configurable percentage distances as the historical outcome study and are provided for visual evaluation rather than as trading recommendations.
Only the most recent Target/Stop pair is displayed to limit chart clutter, while historical conditions continue to be tracked independently by the outcome tables.
### Alerts
Alerts are available for configured divergence, absorption, and exhaustion conditions.
Pivot-based regular and hidden divergence alerts occur only after the required Pivot Right bars have confirmed the pivot.
A+ divergence alerts require the underlying divergence to qualify for the A+ category.
Absorption conditions can depend on values from the current chart bar and can therefore change while that bar is still forming.
Z-score extreme conditions can likewise change as the current chart bar develops.
Users who require closed-bar confirmation should configure their TradingView alert frequency accordingly.
Higher-timeframe divergence context uses confirmed higher-timeframe information.
### What makes the implementation distinct
The script extends a cumulative-delta framework into a broader price-versus-volume-pressure analysis workflow.
Its distinguishing structure includes:
* cumulative delta candle visualization;
* optional internal Heikin-Ashi smoothing;
* regular and hidden pivot-based price/CDV divergence analysis;
* configurable divergence strength filtering;
* multi-factor divergence scoring;
* user-adjustable scoring weights;
* nonlinear score transformation;
* adaptive score scaling;
* A+, B, and C classification and filtering;
* confirmed higher-timeframe divergence analysis;
* higher-timeframe trend and volume context;
* absorption conditions that can be linked to recently graded divergences;
* Z-score extreme analysis;
* timeframe-based parameter presets;
* independent cooldown controls;
* independent tracking of historical target/stop outcomes;
* configurable target and stop evaluation levels;
* divergence, absorption, exhaustion, and grade-based alerts.
The purpose of this combination is to evaluate price-versus-cumulative-delta disagreement using several related measurements within a single workflow.
The divergence module identifies the structural event. The score measures characteristics of that structure and its surrounding context. Higher-timeframe analysis supplies broader confirmed context. Absorption examines directional volume occurring with limited price progress. Z-score analysis identifies statistically unusual oscillator readings. The historical tables provide a simplified way to inspect what happened after past qualifying conditions.
This integration is the reason the components are combined rather than published merely as separate common indicators placed together.
### Limitations
Cumulative delta in this script is derived from candle structure and chart volume rather than exchange bid/ask transaction classifications.
Volume quality and interpretation vary between exchanges, brokers, instruments, and symbols.
Pivot-based divergences are delayed by the selected Pivot Right value.
Confirmed pivot markers and divergence lines are drawn on the earlier pivot location after confirmation, so historical marker placement is earlier than the time at which the condition became known.
Heikin-Ashi smoothing changes the cumulative-delta oscillator structure and can introduce additional delay.
Higher-timeframe analysis waits for confirmed HTF information, which can delay HTF conditions.
Divergence conditions can fail and price can continue in the same direction after a divergence has been confirmed.
Hidden divergence does not guarantee trend continuation.
Absorption conditions are OHLCV-based analytical approximations and do not directly identify passive order-book absorption.
Z-score extremes can persist or become more extreme.
Composite scores and A+, B, and C categories are model outputs, not probabilities, win rates, accuracy measurements, or independently validated performance rankings.
Adaptive scaling can change classifications as the recent score distribution changes.
Lower timeframes can produce more frequent and noisier conditions.
Timeframe presets are starting configurations and are not automatically optimized for a symbol.
Historical target/stop tables are simplified outcome studies and do not represent complete strategy backtests.
Historical target-first percentages depend heavily on the selected target/stop distances, indicator settings, symbol, timeframe, available history, and market conditions.
The indicator does not model commissions, slippage, spread, liquidity, or realistic execution.
No divergence, score category, absorption condition, Z-score reading, target/stop outcome, or combination of these elements guarantees future market behaviour.
The indicator should not be used as the sole basis for a trading decision.
This script is an analytical tool and does not provide financial advice or guaranteed trading outcomes. Indicador

Volume Delta Suite [vault]Volume Delta Suite
Volume Delta Suite is a tool for reading buy and sell pressure from lower-timeframe volume data, showing the real imbalance between buyers and sellers instead of raw volume alone.
How it works
The script pulls data from a selected lower timeframe (LTF Timeframe) using request.security_lower_tf and classifies every intrabar candle as buying (close >= open) or selling (close < open). The volume from each of those intrabar candles is summed separately on the buy side and the sell side. The difference between these two sums (buy volume minus sell volume) becomes the Volume Delta for the current chart bar. This approach gives a more accurate picture of market aggression than standard volume, since it shows which side was actually initiating trades during that period.
Volume Delta is then accumulated over time into CVD (Cumulative Volume Delta), a tool for tracking the longer-term buy/sell pressure trend and spotting divergences against price, for example when price prints a new high while CVD fails to confirm it.
Display modes
- Volume: standard volume shown as columns
- Volume Delta: buy volume minus sell volume, selectable as columns or candles
- CVD (Cumulative Volume Delta): the running total of delta over time, selectable as columns or candles
Delta Spike Detection
A three-tier system for flagging abnormal delta readings, based on the ratio of the current delta to its average over the last N bars (Relative Length). Each of the three thresholds (default 1.5x, 2.5x, 3.5x) has its own independent up and down color, so weak, moderate, and extreme impulses are visually distinguishable at a glance. The calculation mode (Threshold Calculation Type) can be switched between RELATIVE, which measures against the average absolute delta, and ABSOLUTE, which measures standard deviation against the SMA of delta.
Additional settings
- Color Bars: colors the price bars on the main chart according to the current delta spike level
- LTF Timeframe: the lower timeframe used to reconstruct buy/sell microstructure
- Z Length, SMA Length, Relative Length: the statistical parameters used for smoothing and setting the spike thresholds
- Full color customization for positive and negative values, and for each of the three spike tiers
- Built-in Dark, Light, and Custom theme presets
How to use it
Volume Delta and CVD are best used to confirm or question price action. A strong price move accompanied by a strong delta in the same direction shows genuine participation behind the move. A price move on weak or opposing delta can point to exhaustion, absorption, or a low-conviction push that is more likely to fail. Watching CVD against price over a session or a trend leg is a simple way to spot when the move is losing the support of actual buying or selling volume, even while price keeps climbing or falling.
This is not a buy/sell signal generator. It is a volume-flow read intended to be combined with your own structure, levels, and risk management.
Indicador

Delta by Price [SVP Style]🔹 Introduction
This indicator, "Delta by Price", builds a session volume profile where each row shows net signed volume — estimated buying pressure minus estimated selling pressure — instead of total volume traded.
The idea is straightforward. A standard volume profile tells you where the market spent its activity. It cannot tell you who won at those prices. Two rows with identical volume can mean completely opposite things: one where aggressive buyers lifted offers and price left immediately, and one where aggressive buyers hit a wall of resting supply and went nowhere. Total volume is blind to the difference. Net delta is not.
Here is the honest part, stated up front: true delta requires knowing whether each trade executed at the bid or the ask, and TradingView does not expose that data to Pine. Every delta figure this script produces is an estimate derived from intrabar price direction. That estimate is defensible — it is essentially the tick rule, one of the oldest and best-studied trade classification methods in market microstructure — but it is an estimate, and I will be specific throughout about where it degrades.
🔹 The Premise
🔸 Every trade has two sides, but only one initiator
A trade happens when someone crosses the spread. A resting limit order sits passively; a market order comes and takes it. Both parties transact the same volume, but only one of them demanded immediacy. That asymmetry is the entire foundation of order flow analysis.
Delta is the running count of who demanded immediacy. If 10,000 contracts trade at a price and 7,000 of them were buyers lifting offers, delta at that price is +4,000. The other 3,000 buyers were filled passively by sellers who came to them.
Why does this matter? Because aggression that produces movement and aggression that produces nothing are two very different market states.
🔸 A worked example
Assume ES is trading at 5,000.00 and rotating into yesterday's value area low at 4,992.00.
Price arrives at 4,992.00. Over the next fifteen minutes, 40,000 contracts trade in a two-point band around that level. Delta over that window is −22,000 — heavily seller-initiated. Aggressive sellers are hitting the bid relentlessly.
Now ask the only question that matters: where is price?
Case one: price is at 4,986.00. Sellers pressed, and price gave way. The imbalance produced displacement. The level failed. Delta and price agree.
Case two: price is at 4,992.50. Sellers pressed 22,000 contracts of net aggression into that level and price is half a point higher than where they started. Every one of those market sell orders was filled by a passive buyer who was willing to stand there and take the other side. Nobody absorbs 22,000 contracts by accident.
The second case is the interesting one, and total volume cannot see it at all. Both cases print 40,000 contracts at 4,992.00. The volume profile draws an identical row. Only the sign and size of the delta, held against price's failure to move, separates a level that broke from a level that held.
This is the phenomenon usually called absorption, and it is the reason a delta profile exists.
🔸 Why the row matters more than the bar
Most delta tooling on TradingView plots delta per bar — one number per five-minute candle, or a cumulative line. That is useful, but it throws away the location information.
Consider a five-minute bar with a total delta of +200. Unremarkable. Now decompose it: +3,000 of net buying concentrated in the bottom three ticks of the bar's range, and −2,800 spread across the top. That is not a neutral bar. That is buyers being aggressive at the low and sellers being aggressive at the high — a violently two-sided bar that nets to nearly nothing.
Aggregating delta to the bar destroys exactly the information that makes delta actionable, because the level is the whole point. Order flow that is not anchored to a price you care about is noise. Order flow at a mapped level — a value area edge, a prior day's POC, an untested gap — is context.
Delta by Price exists to put the imbalance back where it happened.
🔸 What the research actually says about inferring direction from price
Since the classification is inferred rather than observed, it is worth knowing how good the inference is. This is well-studied.
Lee and Ready (1991) introduced the standard framework for classifying trades as buyer- or seller-initiated when the initiator is not recorded in the data. Ellis, Michaely, and O'Hara (2000) then tested those methods against a proprietary Nasdaq dataset that did record the true initiator, and found the quote rule, the tick rule, and the Lee-Ready rule correctly classified 76.4%, 77.66%, and 81.05% of trades respectively. Finucane (2000), testing the same question independently, found the tick test performed roughly as well as the more elaborate Lee-Ready algorithm — and that both performed worse than researchers had assumed.
So the tick rule lands somewhere in the mid-to-high seventies for accuracy on equities. Not exact. Not noise either.
There is a more pointed finding for futures traders. Andersen and Bondarenko (2015) constructed an accurate trade classification benchmark specifically for E-mini S&P 500 futures, using quote and trade data, and compared it against the bulk-volume classification scheme of Easley, López de Prado, and O'Hara (2012). Two results are relevant here. First, the simple tick rule outperformed bulk-volume classification. Second — and this is the part worth internalizing — rising volatility systematically induces classification errors.
Read that again, because it is the single most important limitation of this tool. The delta estimate is least reliable precisely during the fast, volatile, high-participation moments you most want to read. No amount of code fixes this. It is a property of inferring intent from price when price is moving quickly.
And separately, order imbalance is not a curiosity — it is a documented driver of returns. Chordia, Roll, and Subrahmanyam (2002) found market-wide returns are strongly affected by contemporaneous and lagged order imbalance, and that returns reverse after large negative-imbalance days. Chordia and Subrahmanyam (2004) extended the result to individual names. Chan and Fong (2000) tied order imbalance directly to the volatility-volume relation.
The concept is sound and the measurement is approximate. Both of those things are true at once, and the second one is why this indicator is built as a context tool rather than a signal generator.
🔹 How It Works
🔸 Estimating delta
Show Image
The script requests lower-timeframe OHLCV data for every chart bar — automatically selecting 1-second intrabars on a seconds chart, 1-minute on intraday, and so on, or a timeframe you specify.
Each intrabar is classified by the tick rule: close above open, its volume counts as buy-initiated; close below open, sell-initiated; unchanged, discarded. That signed volume is then dropped into the price row containing the intrabar's close.
There are limitations and assumptions here. The classification is per intrabar, not per trade — a one-minute intrabar containing 4,000 contracts is treated as one directional unit, when in reality it contained thousands of individually classifiable transactions. And the entire intrabar's volume is assigned to a single row, even though the intrabar had a range. On a violent one-minute bar spanning fifteen ticks, that is a real distortion.
Choosing a finer lower timeframe reduces both problems — 1-second intrabars classify and locate far more precisely than 1-minute. The tradeoff is history: finer intrabars exhaust TradingView's intrabar data budget faster, so the profile reaches back over fewer sessions. That is the trade you are making with that setting, and it is worth making deliberately.
🔸 Tick-based rows
Most profile scripts ask for a row count and divide the range by it. That means the row height changes every session — a 40-point day and a 90-point day produce rows of different sizes, and a row never covers the same prices twice.
This one asks for a row size in ticks, and rows sit on a fixed grid anchored to the instrument's tick size. A 4-tick row on ES always spans the same four ticks, session after session. Profiles become directly comparable across days, and rows line up with the price levels you actually mark.
The constraint is Pine's 500-drawing-object ceiling, shared across every profile on screen. The script computes a per-session row budget, and if a session's range needs more rows than its budget allows, rows are merged automatically and the effective size is displayed in the stats table. Nothing is silently dropped — you are told when the resolution you asked for was not available. Fewer sessions displayed means a larger budget each and finer rows.
🔸 Multi-session profiles
Show Image
Each completed session is drawn once at its own anchor and frozen; the developing session redraws live on every tick. Closed sessions are faded so the current one reads clearly against its history, and profile width scales to each session's own bar span.
One structural limitation: historical profiles are constructed bar-by-bar as the script executes, which means they exist only for sessions inside the chart's loaded history. Scroll back far enough and they stop. TradingView's own Session Volume Profile behaves identically — it is a property of the platform, not a defect in the implementation.
🔸 POC and Value Area
The point of control marks the row with the highest concentration, and the value area expands outward from it until the chosen percentage of the session's activity is enclosed — the conventional 70% by default, which comes from treating the distribution as roughly normal and taking one standard deviation.
The POC / VA Source toggle is the interesting setting, and it changes what question the profile answers.
Set to Volume, POC and value area are computed on total volume. This reproduces a conventional volume profile's levels — the prices with the most transaction activity, the ones most traders are watching, the ones that function as reference points precisely because they are widely observed.
Set to Absolute Delta, POC and value area are computed on the magnitude of net imbalance instead. Now the POC marks the price with the largest one-sided commitment, which is not necessarily the price with the most volume. A row can carry enormous volume and near-zero delta — that is two-sided churn, and a volume POC will flag it while a delta POC will not.
When those two levels sit far apart, the session had heavy activity somewhere the participants were evenly matched, and heavy commitment somewhere else. That gap is often more informative than either level alone.
🔸 Reading it
Row length is the magnitude of net imbalance at that price; color is the sign. Long teal rows are net buying, long red rows are net selling, short rows are balance.
A few configurations worth recognising:
Large delta with no displacement. A long row at an extreme of the session, where price then reversed. The aggression was absorbed by passive size. This is the absorption signature from the worked example above.
Large delta with displacement. A long row that price left immediately and did not revisit. The aggression was rewarded — closer to initiative than absorption.
Delta sign flipping at a value area edge. Price retests the edge and the rows there change color from the prior test. Something about who is defending that level changed.
A stack of same-color rows away from the POC. Sustained one-sided commitment away from the balance area — usually where a trend leg was built.
None of these are signals. They are descriptions of what happened at a price, and they are only worth anything when the price already mattered to you before you looked at the profile. A large delta row in the middle of a featureless range is a statistic. The same row at yesterday's value area low, on a retest, in a session where you already had a directional thesis, is context.
🔹 Closing Remarks
Volume tells you where the market was busy. Delta attempts to tell you who was demanding immediacy while it was busy there — and the disagreement between heavy aggression and absent movement is one of the more reliable tells that passive size is defending a price.
That said, everything here rests on an inference. The classification is the tick rule applied to intrabar candles, not observed bid/ask execution data, and the research is clear that this approach is right somewhere in the high seventies percent of the time on individual trades and gets worse as volatility rises. Volume is assigned to rows at intrabar closes rather than at the price of each transaction. Row resolution is bounded by a hard platform limit.
Treat every level this draws as a probabilistic reading of what likely happened, not a record of what did. Large delta clusters do not guarantee that a level will hold, and a POC is not a magnet. Used as a layer of context over levels you mapped independently — and ignored when the profile disagrees with the rest of your read — it earns its place on the chart. Used as a standalone entry trigger, it will disappoint you, and the research above explains exactly why.
If you find configurations that read well on your instrument, or edge cases where the estimate breaks down in an interesting way, I would like to hear about them.
🔹 References
Trade classification and its accuracy
Lee, C. M. C., & Ready, M. J. (1991). Inferring Trade Direction from Intraday Data. The Journal of Finance, 46(2), 733–746.
Ellis, K., Michaely, R., & O'Hara, M. (2000). The Accuracy of Trade Classification Rules: Evidence from Nasdaq. Journal of Financial and Quantitative Analysis, 35(4), 529–551.
Finucane, T. J. (2000). A Direct Test of Methods for Inferring Trade Direction from Intra-Day Data. Journal of Financial and Quantitative Analysis, 35(4), 553–576.
Order flow classification in futures markets
Easley, D., López de Prado, M. M., & O'Hara, M. (2012). Flow Toxicity and Liquidity in a High-Frequency World. The Review of Financial Studies, 25(5), 1457–1493.
Andersen, T. G., & Bondarenko, O. (2015). Assessing Measures of Order Flow Toxicity and Early Warning Signals for Market Turbulence. Review of Finance, 19(1), 1–54.
Order imbalance and returns
Chordia, T., Roll, R., & Subrahmanyam, A. (2002). Order imbalance, liquidity, and market returns. Journal of Financial Economics, 65(1), 111–130.
Chordia, T., & Subrahmanyam, A. (2004). Order imbalance and individual stock returns: Theory and evidence. Journal of Financial Economics, 72(3), 485–518.
Chan, K., & Fong, W.-M. (2000). Trade size, order imbalance, and the volatility-volume relation. Journal of Financial Economics, 57(2), 247–273. Indicador

Fabio Delta Volume Profile🔹 Introduction
This indicator, "Fabio Delta Volume Profile", builds a session volume profile where each row shows net signed volume — estimated buying pressure minus estimated selling pressure — instead of total volume traded.
The idea is straightforward. A standard volume profile tells you where the market spent its activity. It cannot tell you who won at those prices. Two rows with identical volume can mean completely opposite things: one where aggressive buyers lifted offers and price left immediately, and one where aggressive buyers hit a wall of resting supply and went nowhere. Total volume is blind to the difference. Net delta is not.
Here is the honest part, stated up front: true delta requires knowing whether each trade executed at the bid or the ask, and TradingView does not expose that data to Pine. Every delta figure this script produces is an estimate derived from intrabar price direction. That estimate is defensible — it is essentially the tick rule, one of the oldest and best-studied trade classification methods in market microstructure — but it is an estimate, and I will be specific throughout about where it degrades.
🔹 The Premise
🔸 Every trade has two sides, but only one initiator
A trade happens when someone crosses the spread. A resting limit order sits passively; a market order comes and takes it. Both parties transact the same volume, but only one of them demanded immediacy. That asymmetry is the entire foundation of order flow analysis.
Delta is the running count of who demanded immediacy. If 10,000 contracts trade at a price and 7,000 of them were buyers lifting offers, delta at that price is +4,000. The other 3,000 buyers were filled passively by sellers who came to them.
Why does this matter? Because aggression that produces movement and aggression that produces nothing are two very different market states.
🔸 A worked example
Assume ES is trading at 5,000.00 and rotating into yesterday's value area low at 4,992.00.
Price arrives at 4,992.00. Over the next fifteen minutes, 40,000 contracts trade in a two-point band around that level. Delta over that window is −22,000 — heavily seller-initiated. Aggressive sellers are hitting the bid relentlessly.
Now ask the only question that matters: where is price?
Case one: price is at 4,986.00. Sellers pressed, and price gave way. The imbalance produced displacement. The level failed. Delta and price agree.
Case two: price is at 4,992.50. Sellers pressed 22,000 contracts of net aggression into that level and price is half a point higher than where they started. Every one of those market sell orders was filled by a passive buyer who was willing to stand there and take the other side. Nobody absorbs 22,000 contracts by accident.
The second case is the interesting one, and total volume cannot see it at all. Both cases print 40,000 contracts at 4,992.00. The volume profile draws an identical row. Only the sign and size of the delta, held against price's failure to move, separates a level that broke from a level that held.
This is the phenomenon usually called absorption, and it is the reason a delta profile exists.
🔸 Why the row matters more than the bar
Most delta tooling on TradingView plots delta per bar — one number per five-minute candle, or a cumulative line. That is useful, but it throws away the location information.
Consider a five-minute bar with a total delta of +200. Unremarkable. Now decompose it: +3,000 of net buying concentrated in the bottom three ticks of the bar's range, and −2,800 spread across the top. That is not a neutral bar. That is buyers being aggressive at the low and sellers being aggressive at the high — a violently two-sided bar that nets to nearly nothing.
Aggregating delta to the bar destroys exactly the information that makes delta actionable, because the level is the whole point. Order flow that is not anchored to a price you care about is noise. Order flow at a mapped level — a value area edge, a prior day's POC, an untested gap — is context.
Delta by Price exists to put the imbalance back where it happened.
🔸 What the research actually says about inferring direction from price
Since the classification is inferred rather than observed, it is worth knowing how good the inference is. This is well-studied.
Lee and Ready (1991) introduced the standard framework for classifying trades as buyer- or seller-initiated when the initiator is not recorded in the data. Ellis, Michaely, and O'Hara (2000) then tested those methods against a proprietary Nasdaq dataset that did record the true initiator, and found the quote rule, the tick rule, and the Lee-Ready rule correctly classified 76.4%, 77.66%, and 81.05% of trades respectively. Finucane (2000), testing the same question independently, found the tick test performed roughly as well as the more elaborate Lee-Ready algorithm — and that both performed worse than researchers had assumed.
So the tick rule lands somewhere in the mid-to-high seventies for accuracy on equities. Not exact. Not noise either.
There is a more pointed finding for futures traders. Andersen and Bondarenko (2015) constructed an accurate trade classification benchmark specifically for E-mini S&P 500 futures, using quote and trade data, and compared it against the bulk-volume classification scheme of Easley, López de Prado, and O'Hara (2012). Two results are relevant here. First, the simple tick rule outperformed bulk-volume classification. Second — and this is the part worth internalizing — rising volatility systematically induces classification errors.
Read that again, because it is the single most important limitation of this tool. The delta estimate is least reliable precisely during the fast, volatile, high-participation moments you most want to read. No amount of code fixes this. It is a property of inferring intent from price when price is moving quickly.
And separately, order imbalance is not a curiosity — it is a documented driver of returns. Chordia, Roll, and Subrahmanyam (2002) found market-wide returns are strongly affected by contemporaneous and lagged order imbalance, and that returns reverse after large negative-imbalance days. Chordia and Subrahmanyam (2004) extended the result to individual names. Chan and Fong (2000) tied order imbalance directly to the volatility-volume relation.
The concept is sound and the measurement is approximate. Both of those things are true at once, and the second one is why this indicator is built as a context tool rather than a signal generator.
🔹 How It Works
🔸 Estimating delta
Show Image
The script requests lower-timeframe OHLCV data for every chart bar — automatically selecting 1-second intrabars on a seconds chart, 1-minute on intraday, and so on, or a timeframe you specify.
Each intrabar is classified by the tick rule: close above open, its volume counts as buy-initiated; close below open, sell-initiated; unchanged, discarded. That signed volume is then dropped into the price row containing the intrabar's close.
There are limitations and assumptions here. The classification is per intrabar, not per trade — a one-minute intrabar containing 4,000 contracts is treated as one directional unit, when in reality it contained thousands of individually classifiable transactions. And the entire intrabar's volume is assigned to a single row, even though the intrabar had a range. On a violent one-minute bar spanning fifteen ticks, that is a real distortion.
Choosing a finer lower timeframe reduces both problems — 1-second intrabars classify and locate far more precisely than 1-minute. The tradeoff is history: finer intrabars exhaust TradingView's intrabar data budget faster, so the profile reaches back over fewer sessions. That is the trade you are making with that setting, and it is worth making deliberately.
🔸 Tick-based rows
Most profile scripts ask for a row count and divide the range by it. That means the row height changes every session — a 40-point day and a 90-point day produce rows of different sizes, and a row never covers the same prices twice.
This one asks for a row size in ticks, and rows sit on a fixed grid anchored to the instrument's tick size. A 4-tick row on ES always spans the same four ticks, session after session. Profiles become directly comparable across days, and rows line up with the price levels you actually mark.
The constraint is Pine's 500-drawing-object ceiling, shared across every profile on screen. The script computes a per-session row budget, and if a session's range needs more rows than its budget allows, rows are merged automatically and the effective size is displayed in the stats table. Nothing is silently dropped — you are told when the resolution you asked for was not available. Fewer sessions displayed means a larger budget each and finer rows.
🔸 Multi-session profiles
Show Image
Each completed session is drawn once at its own anchor and frozen; the developing session redraws live on every tick. Closed sessions are faded so the current one reads clearly against its history, and profile width scales to each session's own bar span.
One structural limitation: historical profiles are constructed bar-by-bar as the script executes, which means they exist only for sessions inside the chart's loaded history. Scroll back far enough and they stop. TradingView's own Session Volume Profile behaves identically — it is a property of the platform, not a defect in the implementation.
🔸 POC and Value Area
The point of control marks the row with the highest concentration, and the value area expands outward from it until the chosen percentage of the session's activity is enclosed — the conventional 70% by default, which comes from treating the distribution as roughly normal and taking one standard deviation.
The POC / VA Source toggle is the interesting setting, and it changes what question the profile answers.
Set to Volume, POC and value area are computed on total volume. This reproduces a conventional volume profile's levels — the prices with the most transaction activity, the ones most traders are watching, the ones that function as reference points precisely because they are widely observed.
Set to Absolute Delta, POC and value area are computed on the magnitude of net imbalance instead. Now the POC marks the price with the largest one-sided commitment, which is not necessarily the price with the most volume. A row can carry enormous volume and near-zero delta — that is two-sided churn, and a volume POC will flag it while a delta POC will not.
When those two levels sit far apart, the session had heavy activity somewhere the participants were evenly matched, and heavy commitment somewhere else. That gap is often more informative than either level alone.
🔸 Reading it
Row length is the magnitude of net imbalance at that price; color is the sign. Long teal rows are net buying, long red rows are net selling, short rows are balance.
A few configurations worth recognising:
Large delta with no displacement. A long row at an extreme of the session, where price then reversed. The aggression was absorbed by passive size. This is the absorption signature from the worked example above.
Large delta with displacement. A long row that price left immediately and did not revisit. The aggression was rewarded — closer to initiative than absorption.
Delta sign flipping at a value area edge. Price retests the edge and the rows there change color from the prior test. Something about who is defending that level changed.
A stack of same-color rows away from the POC. Sustained one-sided commitment away from the balance area — usually where a trend leg was built.
None of these are signals. They are descriptions of what happened at a price, and they are only worth anything when the price already mattered to you before you looked at the profile. A large delta row in the middle of a featureless range is a statistic. The same row at yesterday's value area low, on a retest, in a session where you already had a directional thesis, is context.
🔹 Closing Remarks
Volume tells you where the market was busy. Delta attempts to tell you who was demanding immediacy while it was busy there — and the disagreement between heavy aggression and absent movement is one of the more reliable tells that passive size is defending a price.
That said, everything here rests on an inference. The classification is the tick rule applied to intrabar candles, not observed bid/ask execution data, and the research is clear that this approach is right somewhere in the high seventies percent of the time on individual trades and gets worse as volatility rises. Volume is assigned to rows at intrabar closes rather than at the price of each transaction. Row resolution is bounded by a hard platform limit.
Treat every level this draws as a probabilistic reading of what likely happened, not a record of what did. Large delta clusters do not guarantee that a level will hold, and a POC is not a magnet. Used as a layer of context over levels you mapped independently — and ignored when the profile disagrees with the rest of your read — it earns its place on the chart. Used as a standalone entry trigger, it will disappoint you, and the research above explains exactly why.
If you find configurations that read well on your instrument, or edge cases where the estimate breaks down in an interesting way, I would like to hear about them.
🔹 References
Trade classification and its accuracy
Lee, C. M. C., & Ready, M. J. (1991). Inferring Trade Direction from Intraday Data. The Journal of Finance, 46(2), 733–746.
Ellis, K., Michaely, R., & O'Hara, M. (2000). The Accuracy of Trade Classification Rules: Evidence from Nasdaq. Journal of Financial and Quantitative Analysis, 35(4), 529–551.
Finucane, T. J. (2000). A Direct Test of Methods for Inferring Trade Direction from Intra-Day Data. Journal of Financial and Quantitative Analysis, 35(4), 553–576.
Order flow classification in futures markets
Easley, D., López de Prado, M. M., & O'Hara, M. (2012). Flow Toxicity and Liquidity in a High-Frequency World. The Review of Financial Studies, 25(5), 1457–1493.
Andersen, T. G., & Bondarenko, O. (2015). Assessing Measures of Order Flow Toxicity and Early Warning Signals for Market Turbulence. Review of Finance, 19(1), 1–54.
Order imbalance and returns
Chordia, T., Roll, R., & Subrahmanyam, A. (2002). Order imbalance, liquidity, and market returns. Journal of Financial Economics, 65(1), 111–130.
Chordia, T., & Subrahmanyam, A. (2004). Order imbalance and individual stock returns: Theory and evidence. Journal of Financial Economics, 72(3), 485–518.
Chan, K., & Fong, W.-M. (2000). Trade size, order imbalance, and the volatility-volume relation. Journal of Financial Economics, 57(2), 247–273. Indicador

Delta Profile Multi-Anchor , Footprint Imbalance & Whale Tiers█ OVERVIEW
Delta Profile draws several order-flow DELTA profiles at once — one per higher-timeframe anchor (session / week / month) — each split buy-vs-sell at every price row, so you can see WHERE aggressive delta transacted across horizons simultaneously and how that footprint is migrating. Where a conventional volume profile is volume-native and shows one anchor at a time, this is delta-native and multi-anchor, and it shows a Delta-POC (where net delta peaks) distinct from the Volume-POC (where volume peaks) — their disagreement locates absorption and trapped flow. It asserts no signal and no win-rate; it is an anatomy view.
█ HOW IT WORKS
Intrabars — one lower-timeframe stream (request.security_lower_tf) supplies intrabar OHLCV for every anchor.
Trade side — each intrabar is split buy vs sell by a selectable classifier: BVC-Normal (normal-CDF of the standardized sub-bar return, default), BVC-Student-t (fatter-tailed, opt-in), Tick (sign of close−open), or Geometry (close position in range). All are OHLCV estimates, not the true tape; the classifier in force is shown.
Concurrent anchors — up to four higher-timeframe anchors each accumulate the same confirmed intrabars into a fixed-tick, price-keyed map (buy / sell / largest-print per level), resetting when their own period rolls. Anchor D can instead anchor once from a date you drag on the chart.
Reads per anchor — Volume-POC and Delta-POC (shown distinctly); the 70% Value Area; HVN / LVN nodes; stacked diagonal-imbalance runs (a row's aggressive buys ≥ R× the resting sells one row below, ≥ N rows stacked); absorption rows (strong volume, near-zero net delta at an extreme); and whale tiers (largest single prints, percentile-ranked 75/90/97, dotted at their row).
Naked Delta-POC magnets — each completed session's Delta-POC is kept until price trades through it; the nearest untested one above and below is drawn on price.
Lean meter, migration, CVD — a per-anchor net-delta lean meter; a migration arrow (is the Delta-POC drifting up or down vs the prior period); an optional session-anchored CVD strip rescaled below price; and CVD pivot-divergence markers (price makes a higher high while CVD makes a lower high = bearish, and the mirror = bullish).
Reject calibration (honesty layer) — naked Delta-POCs are generated from a dedicated Session timeframe (independent of the display anchors). After price tags one, the script forward-tests whether price REJECTS (turns back against the approach by calK·ATR) before CONTINUING through, and compares that to the matched unconditional reject-vs-continue base rate: reject% (n, Wilson 95% lower bound) vs base% → edge. Past-only, non-repaint, no verdict.
█ HOW TO USE
Read the anchors together. Agreement is several horizons showing the same delta colour, the same lean direction and Delta-POC drifting the same way; disagreement between the session and the higher anchor is developing rotation. When the Delta-POC and Volume-POC separate on the same profile, aggressors won at a different price than where the crowd traded — often absorption or a trapped move. Stacked-imbalance zones mark diagonal aggression; naked Delta-POC magnets mark untested levels price may be drawn back to; CVD divergence flags price/flow disagreement at swings. The reaction-calibration line tells you, honestly and past-only, whether naked-dPOC tags have actually preceded larger-than-random moves here — and shows nothing when the sample is small. The dashboard defaults to Compact; switch it to Pro for the per-anchor column detail. This is a study for context and location; it emits no entries.
█ INPUTS
01 · Data & Trade-Side — LTF granularity, classifier, BVC sharpness, ticks-per-level, display rows.
02–05 · Anchors A–D — enable, timeframe, label and Mode for each: HTF (resets each period), Composite (never resets, accumulates over loaded history), or From Date (anchors once at the shared drag timestamp).
06 · Profile — width, gap, offset; POC / Value Area toggle and %, fade-outside-VA, HVN/LVN, lean meter, naked magnets.
07 · Imbalance & Absorption — show, diagonal ratio R, rows-to-stack N, absorption threshold.
08 · Whale Tiers — three percentile thresholds.
09 · Migration & CVD — migration arrow; optional CVD strip and height; CVD pivot-divergence and pivot length.
10 · Microstructure Links (optional) — map an external Toxicity / Fragility export to annotate flow quality (never recomputed).
11 · Display — dashboard detail (Compact default / Pro), position.
12 · Exports — running CVD, POCs, VA, naked levels, migration, reaction edge to the Data Window.
13 · Calibration — reject size (×ATR), horizon, and the Session timeframe that generates naked Delta-POCs (independent of the display anchors).
Style — Auto / Dark / Light theme.
█ HONESTY & LIMITATIONS
Descriptive, not predictive. Profiles summarise where reconstructed aggressive volume transacted on visible history — no execution costs, no backtest, no promise. Trade side is an OHLCV estimate (BVC / tick / geometry), not a Level-2 book; on symbols with no volume it cannot function. The reject calibration is a past-only, first-touch two-barrier (reject-vs-continue) forward test against a matched base rate with a Wilson lower bound; a small sample is discounted automatically and no edge shown means honest, not broken. Non-repaint by construction: intrabars are aggregated only on confirmed bars, profiles are drawn from confirmed history, divergences fire on confirmed pivots, calibration events resolve only after the horizon, and the render recomputes once per confirmed bar. For runtime the script processes the most recent ~5000 bars, and turning off Calibration removes its overhead; very high anchors on a fine lower timeframe (or Composite mode over long history) can still be heavy — raise ticks-per-level, coarsen the LTF granularity, or disable an anchor. It prints no verdict and no win-rate.
█ ORIGINALITY
One coherent object — the aggressive-delta auction viewed across several horizons at once. It is deliberately distinct from a conventional volume profile (this is delta-native and draws multiple anchors concurrently), from a per-bar footprint engine (this is a persistent multi-horizon anatomy that asserts no verdict), and it introduces two reads a plain profile does not: the Delta-POC vs Volume-POC split, and whale-print tiering on the profile. It can optionally consume external toxicity / fragility exports rather than recomputing microstructure, keeping it a single focused tool. Every block was written from scratch; the components feed one view (where did aggressive delta transact, across horizons) rather than being independent indicators stapled together.
█ CREDITS
Market / auction profile (POC / Value Area) — Steidlmayer / Market Profile.
Bulk Volume Classification — Easley, López de Prado & O'Hara.
Trade-side tick rule — Lee & Ready (1991).
Footprint stacked (diagonal) imbalance — order-flow / footprint practice.
Cumulative Volume Delta — order-flow literature.
Wilson score interval — Wilson (1927).
Code written from scratch; no external script reused.
This script is for analysis and education. It is not financial advice. Indicador

Footprint Delta Auction Map [BullByte]Footprint Delta Auction Map is an Auction-Market-Theory analytical framework that measures directional pressure through a 3-Tier Delta Engine (TradingView native volume footprint, lower-timeframe intrabar reconstruction, and single-bar OHLCV proxy), qualifies it against candle conviction and multi-source level confluence (POC, VAH, VAL, session H/L, prior day H/L, weekly H/L, round numbers), classifies the current session as a Trend, Balance or Neutral Day using an Initial Balance regime detector, and only then marks a directional scenario on the chart with a fully sized reference-level map (Entry, Reaction, Extension, Invalidation).
It is designed for discretionary traders who want a single, transparent framework that brings order flow, price structure, key reference levels and session regime into one auditable qualification process.
---
1. WHAT THIS SCRIPT IS
On each confirmed bar with the required data available, the framework evaluates four complementary questions before a directional scenario can qualify:
Q1 - Is there directional pressure right now?
Measured through a 3-tier delta engine (see Section 4). Normalized to a bounded -100 to +100 Unified Auction Pressure reading.
Q2 - Is the candle itself convincing?
Measured through body-to-range ratio and range-to-ATR ratio. A high pressure reading on a doji inside a compressed range does not qualify.
Q3 - Is this happening at a location the market has already respected?
Measured through a weighted Confluence Ladder that scores proximity to POC, VAH, VAL, session high/low, prior day high/low, weekly high/low, and configurable round numbers.
Q4 - What is today's session character?
Measured through an Initial Balance (IB) day-type classifier (Trend / Balance / Neutral Day) that adjusts the qualification threshold and Extension sizing.
Only when all four align, a higher-timeframe EMA trend agrees, and the current session's IB is fully formed does the script mark a directional scenario and draw a full reference-level map on the chart.
---
2. WHAT PROBLEM IT SOLVES
The framework is designed to bring several normally separate forms of market context into one qualification process.
This script is built on the design premise that directional pressure, candle structure, location and session context each answer a different question about the same market event. Rather than treating any one measurement as a standalone trigger, the framework requires these conditions to agree before it marks a directional scenario. The intent is to provide more context around each signal and make the qualification process auditable, not to claim any specific rate of success.
Concretely, it helps with:
- Deliberate selectivity. A three-criterion gate (Pressure, Candle, Confluence) plus a composite score threshold plus HTF alignment plus IB regime plus cooldown means signals are intentionally infrequent and situational.
- Instrument-adaptive sizing. For sizing purposes, the script automatically derives an instrument-specific volatility band from the symbol's own historical ATR-as-percent-of-price distribution, reducing the need to manually retune the basic Sizing Unit for each market.
- Full transparency. A dashboard and a debug panel show which data tier is active, what the composite score is, which qualification criteria passed, what the session regime is, and where the current scenario stands.
- Session-aware context. An Initial Balance day-type verdict (Trend / Balance / Neutral) recalibrates how demanding the signal threshold is and how far Extension targets project.
---
3. HOW THE FRAMEWORK WORKS
Each layer answers a specific question from auction market theory, and the layers are structured in dependency order:
Delta / Auction Pressure - describes what the directional pressure reading says about the current auction. Sourced from TradingView's native volume footprint when available (Tier 3), from lower-timeframe intrabar reconstruction when not (Tier 2), or from a single-bar OHLCV pressure proxy as a universal fallback (Tier 1). Each tier is normalized independently to a common bounded -100 to +100 scale.
Candle Conviction - did the bar actually travel and close with intent. Prevents a strong pressure reading on a wick-heavy doji from qualifying.
Level Confluence - is this happening at a price the market has already marked as significant. Uses a triangular decay proximity kernel across POC, VAH/VAL, session H/L, prior day H/L, weekly H/L and round numbers, with pre-defined relative weights. When native footprint data is active, the true volume-profile references receive the highest weights; when footprint data is unavailable, their proxy weights are reduced so the ladder does not treat session-derived references as genuine volume-profile levels.
IB Regime Classifier - what kind of day is this. Compares today's Initial Balance range against a rolling historical median of prior sessions (today's IB is never included in its own median). Wider than median → Trend Day (raise threshold, widen Extension). Narrower than median → Balance Day (lower threshold, compress Extension). Otherwise Neutral.
HTF EMA Filter - does the larger timeframe agree with the direction. Uses confirmed previous higher-timeframe EMA slope only (non-repainting pattern with barmerge.lookahead_on on a offset).
Each contributes information the others cannot. Removing any one of them changes what the signal means , not just how many signals fire. That dependency structure is what distinguishes this framework from an aggregation of unrelated indicators.
This is not a mashup of separate published indicators or unrelated indicator modules combined for convenience; it is a single framework in which each measurement was selected and integrated for a specific role in the qualification process.
---
4. THE THREE DATA TIERS
The three-tier architecture allows the script to use native footprint data when available and progressively simpler pressure estimates when it is not. The active tier is always shown on the dashboard so the user knows exactly what data is currently feeding the score.
Tier 3 - Native TradingView Footprint (requires Premium or Ultimate plan and footprint-supported symbol)
Uses request.footprint() . TradingView categorizes lower-timeframe volume via intrabar price action to produce buy volume, sell volume and delta. This is the only tier in this script that uses native footprint data. Not raw exchange bid/ask tick data.
Tier 2 - Intrabar Reconstruction (default, no special plan required)
Uses request.security_lower_tf() to decompose each bar into its lower-timeframe sub-bars, then applies the close-in-range volume heuristic to each sub-bar before summing. A lower-timeframe refinement of the single-bar OHLCV pressure estimate that can better distinguish intrabar two-sided movement than a single-OHLC read alone. This is an auction pressure estimate, not native footprint data.
Tier 1 - OHLCV Proxy (universal fallback)
buyPressure = (close − low) / range × volume
sellPressure = (high − close) / range × volume
A single-bar pressure proxy. Used when native footprint data is not active and lower-timeframe reconstruction is unavailable, disabled, or returns no usable intrabar data. Coarsest estimate.
All three tiers are normalized onto a common bounded -100 to +100 scale before entering the composite score. Same scale does not mean identical statistical distribution: Tier 3 footprint delta and Tier 1 OHLCV pressure have different underlying measurement characteristics. The normalization ensures the score is internally self-consistent per tier.
---
5. COMPOSITE SCORE AND QUALIFICATION
When the required calculation data is available, the framework produces a Composite Score between 0 and 100:
Composite Score = Fingerprint Score × 0.60 + Ladder Score × 0.40
Fingerprint Score (60% weight) combines three sub-components on the current bar:
- Auction Pressure conviction - up to 40 points, based on absolute normalized pressure
- Candle body and range structure - up to 35 points (20 points body ratio, 15 points range-to-ATR ratio)
- Volume/pressure balance magnitude - up to 25 points, using the active tier's available pressure representation
Ladder Score (40% weight) provides location context. Each active reference level is scored using a triangular proximity kernel: score = 1 − (distance / tolerance) when distance is within tolerance; otherwise the score is zero. Levels are then weighted using predefined relative weights. When native footprint data is active, the genuine volume-profile references receive the highest weights; when footprint data is unavailable, those reference weights are reduced because the script uses session-derived proxies rather than true volume-profile levels.
The 60/40 weighting reflects the design choice to give greater influence to pressure, candle structure and volume/pressure balance than to location. Location confirms; pressure and structure trigger.
Signal qualification requires all of the following simultaneously:
- Composite Score at or above the effective threshold (default 58, adjusted ±5 by IB day-type)
- Auction Pressure absolute value at or above Criterion 1 minimum (default 35)
- Candle body ratio at or above Criterion 2 minimum (default 0.50)
- Number of level-confluence hits at or above Criterion 3 minimum (default 2)
- HTF EMA slope aligned with signal direction (if HTF filter is enabled)
- Current session's Initial Balance is fully formed and historical IB sample exists
- Current bar's direction (close vs open) aligns with pressure direction
- No active scenario, and cooldown not in effect
---
6. IB REGIME AND HTF CONTEXT
Initial Balance regime detector. The first N bars of each session define today's IB range. That range is compared to the rolling median of prior sessions' IB ranges (today is never included in its own median). If today's IB is 1.25x or wider than the historical median, the classifier labels the session Trend Day, raises the qualification threshold by 5 points, and sets the IB Extension scalar to 1.15x. If today's IB is 0.75x or narrower, it labels Balance Day, lowers the qualification threshold by 5 points, and sets the IB Extension scalar to 0.85x. Otherwise, the session is classified as Neutral Day. The final Extension multiplier is also affected by the volatility scalar and the minimum effective-multiplier floor described in Section 7. This is a heuristic regime signal, not a factual market classification.
The IB layer adjusts only the qualification threshold and the Extension multiplier. It does not change the 60/40 composite weights. Signals are also suppressed until the current session's IB has formed and at least three completed historical IB samples exist.
HTF EMA trend filter. The higher-timeframe EMA slope is evaluated on the confirmed previous HTF bar ( offset with barmerge.lookahead_on ), which is the documented non-repainting pattern for confirmed HTF references. The HTF resolution is validated to be strictly higher than the chart timeframe before the request is made; if not, the script halts with an explicit error rather than silently misbehaving.
---
7. ENTRY / REACTION / EXTENSION / INVALIDATION
When a scenario qualifies, four reference levels are placed on the chart, all sized as multiples of a shared Sizing Unit (not raw ATR).
The Sizing Unit is a percentile-bounded percentage of price. Its min–max band is, by default, auto-derived from this instrument's own historical ATR-as-percent-of-price distribution (10th and 90th percentiles). This means the sizing base scales naturally with the instrument's own volatility character.
Then:
- Entry = signal bar close
- Reaction = Entry ± k1 × Sizing Unit (default k1 = 1.5)
- Extension = Entry ± effective k2 × Sizing Unit, where effective k2 is the larger of (k1 + 0.5) and (k2 base × IB scalar × volatility regime scalar) when Dynamic Extension Sizing is enabled. When dynamic sizing is disabled, the effective multiplier is the larger of (k1 + 0.5) and k2 base (default k2 base = 2.5)
- Invalidation = Entry ± k3 × Sizing Unit (default k3 = 1.5)
Extension scaling combines two factors:
- IB scalar: 1.15x on Trend Day, 0.85x on Balance Day, 1.00x on Neutral Day
- Volatility regime scalar: current ATR divided by baseline ATR, clamped between 0.8x and 1.6x so a single volatility spike cannot produce a runaway Extension
Same-bar resolution disclosure: When a single bar touches both Extension and Invalidation, OHLC data alone cannot establish which was reached first. The script uses a deterministic proximity convention (the level closer to the prior bar's close is assumed to have been reached first). This is a documented convention, not an observation of intrabar order.
---
8. DASHBOARD AND CHART INTERPRETATION
Directional badge on the signal bar
- Bullish-direction badge for LONG scenarios and Bearish-direction badge for SHORT scenarios; the default colors are green and red and are user-configurable.
- Header line: ▲ LONG or ▼ SHORT
- Second line: "FP Delta N" when Tier 3 is active, "Pressure N" when Tier 1 or Tier 2 is active. N is the absolute normalized Auction Pressure reading (0–100), not a percentage of volume.
- Third line: "near " - the highest-weighted level in proximity
- Fourth line: Session character (Trend Day / Balance Day / Neutral Day)
Four horizontal reference lines
- Entry (neutral color, adaptive to chart theme)
- Reaction (orange)
- Extension (purple)
- Invalidation (red)
Right-edge price tags - each of the four levels has a floating tag on the right edge of the chart showing its exact price. Tags are automatically separated vertically to reduce overlap among the four reference-level labels.
Reference level plots
- Prior Day High / Low (orange) - shown in the recent-bars segment
- Weekly High / Low (blue) - shown in the recent-bars segment
- IB High / Low (yellow, dashed)
- Session Reference (purple, dotted) - represents the footprint POC when Tier 3 is active and a session-derived reference when using Tier 1/2
Scenario lifecycle
- Pending - scenario is live; right-edge tags follow the current bar
- Reaction Zone Reached - an alert fires on the first qualifying post-signal touch of the Reaction level; Reaction does not end the scenario.
- Resolved-Extension - Extension reached first; scenario ends, right-edge tags removed, historical lines frozen
- Resolved-Invalidation - Invalidation reached first; same treatment
Main Dashboard (default: Top Right)
- Data Engine - Footprint (Tick), Intrabar (LTF Recon.), or Proxy (Single-Bar)
- Session Character - Trend Day, Balance Day, or Neutral Day
- Composite Score - current bar's score out of 100
- Score Requirement - effective threshold after IB adjustment
- Qualification Criteria - pass/fail status for Pressure, Candle, and Confluence
- Active Scenario - "None" if flat, or "Long/Short - Active (awaiting resolution)" if in progress
- Cooldown - visible only when active
- Reference Sizing (Inv : Ext) - the ratio currently applied
Debug Dashboard (default: Bottom Right, can be turned off)
- Fingerprint Score (60% wt.)
- Ladder Score (40% wt.) - score plus number of levels in proximity
- Nearest Level - the highest-weighted level currently in proximity
- Footprint Delta / Auction Pressure - the normalized -100 to +100 reading, labeled by active tier
- Extension Sizing Factor - the current volatility scalar and IB scalar
- Active Data Tier - full name of the tier plus (for Tier 2) number of intrabars in the current reconstruction
---
9. ILLUSTRATIVE SIGNAL WALKTHROUGH
The following description is illustrative and is included only to demonstrate how the scoring workflow is interpreted. It is not a historical performance result and does not represent past or future outcomes.
Consider a 15-minute chart of a liquid instrument during a session that has been classified as a Trend Day.
Setup context:
- Session Character: Trend Day (today's IB is wider than the historical median)
- Effective Score Requirement: raised by the IB adjustment
- HTF (1H) EMA slope: rising
- Data Engine: Intrabar (LTF Recon.) - user is on a plan without native footprint access
Bar N (signal bar):
- Bar closes with a strong upward body (body/range ratio comfortably above the 0.50 minimum)
- Intrabar reconstruction shows aggregated buy-side pressure over sell-side, producing a Unified Auction Pressure reading well above the Pressure minimum
- Price is trading close to the Prior Day High and near a Round Number, both within Level Tolerance
- Ladder Score registers multiple levels in proximity
- The Composite Score exceeds the effective Trend-Day threshold; Pressure, Candle and Confluence criteria all pass; HTF direction agrees; session is ready
- Signal qualifies. A bullish-direction LONG badge appears with text similar to:
- ▲ LONG
- Pressure (value)
- near Prior Day High
- Trend Day
Level map plotted from the Entry close:
- Entry = close of bar N
- Reaction = Entry + k1 × Sizing Unit (orange)
- Extension = Entry + effective k2 × Sizing Unit, scaled by Trend-Day and volatility factors (purple)
- Invalidation = Entry − k3 × Sizing Unit (red)
- Dashboard "Active Scenario" changes to: Long - Active (awaiting resolution)
Subsequent bars: As price advances into the Reaction Zone, an alert fires ("Reaction Zone reached"). The scenario stays active - Reaction is a first-touch alert, not a resolution. If price then reaches the Extension level, the scenario resolves as Resolved-Extension: right-edge tags are removed, the four reference lines freeze at the resolution bar, the "Active Scenario" cell returns to "None", and a cooldown period begins during which no new signals can fire. If instead price reached the Invalidation level first, the scenario would resolve as Resolved-Invalidation with the same freeze and cooldown behavior. In the rare case where a single bar touches both Extension and Invalidation, the proximity-based tie-breaking convention (Section 7) determines the resolved outcome.
Note on FVGs and Order Blocks: This script does not natively detect Fair Value Gaps or Order Blocks. Traders who use dedicated FVG/OB analysis can treat those structures as external chart context and compare them with the reference-level map produced by this script. For example, a trader may observe a signal near a Prior Day Low or VAL while independently identifying a bullish Order Block or FVG at the same area. The FVG/OB structure is not generated or validated by this script.
Real Chart Example with explanation
Example 1: A short scenario was marked on Gold when Tier‑2 intrabar-reconstructed Auction Pressure hit 98 on a bearish, high-conviction candle sitting inside confluence tolerance of the Prior Day Low pushing the Composite Score above the 58 threshold under a Neutral Day regime. Footprint (Tier 3) was OFF for this example, so the pressure reading came from OHLCV-based intrabar reconstruction, not native footprint delta. Entry locked at that bar's close (4,363.94); price stalled near PDL for ~30 minutes, then broke down through the Reaction level (4,357.72) and into the Extension zone (4,355.12), with the current bar's intrabar low (4,352.76) already trading beyond Extension, though the scenario still shows "Active" since resolution only confirms on bar close.
Example 2: A long scenario was marked on QQQ when native Footprint (Tier 3) delta hit +66 on a bullish candle confluent with POC, under a Balance Day regime that lowered the qualification threshold by 5 (58 → 53) because today's Initial Balance was narrower than the historical median. Entry locked at 729.35; price consolidated near Entry for roughly an hour, then broke out through Reaction (730.25) toward Extension (730.55), with the Balance Day IB scalar (0.85x) compressing the Extension distance compared to a Trend Day setup. Unlike the earlier Gold example, this signal used genuine tick-based footprint data rather than OHLCV reconstruction.
---
10. SETTINGS
Recommended usage:
Designed primarily for intraday analysis on 5m, 15m, 30m and 1H charts, with the exact usefulness depending on the instrument's session structure and liquidity. Works on liquid crypto pairs, index futures and CFDs, liquid FX pairs, and large-cap equities during regular session hours.
Timeframe defaults:
- On 5m–15m charts : default HTF = 60 (1H), Intrabar Reconstruction = 1m
- On 30m–1H charts : consider raising HTF to 240 (4H)
- On 1m charts: leaving Intrabar Reconstruction at the default "1" causes the lower-timeframe request to fall back to Tier 1 because the requested resolution is not lower than the chart timeframe.
- Do not set Intrabar Reconstruction to a seconds-based resolution on 5m or higher charts - this can exceed TradingView's intrabar request cap
Not recommended for very illiquid instruments, daily or higher timeframes (IB is intraday by design), or symbols with no volume data.
Settings you may want to change frequently:
- Composite Score Requirement (default 58) - raise for more selective signals, lower for more frequent
- HTF Resolution (default 60) - align with your own top-down analysis
- Cooldown Period (default 20 bars) - longer for swing style, shorter for scalping
Settings you may want to tune per market:
- Round Number Step - choose a positive price interval appropriate to the instrument
- IB Window (bars from session open) - on a 15-minute chart, the default 6-bar IB window represents 90 minutes; adjust to match the session structure you want to analyze
These settings are intended as general-purpose defaults and usually do not need frequent adjustment:
- All ATR-related inputs (Length, Outlier Filter, Floor)
- Pressure Normalization Lookback
- Sizing Regime Lookback
- Auto Sizing Band Lookback
- Level Tolerance % - controls how close price must be to a reference level for that level to contribute to confluence; the default is 1.2%; users may adjust it to suit the instrument and timeframe
Advanced toggles:
- Enable Footprint Engine (Tier 3) - leave OFF unless you have Premium/Ultimate and your symbol supports footprint data
- Enable Intrabar Reconstruction (Tier 2) - leave ON by default; with the default 1-minute resolution it falls back to Tier 1 on a 1-minute chart because the requested timeframe is not lower than the chart timeframe
- Use Dynamic Extension Sizing - leave ON for auto-scaled Extension by IB and volatility regime
- Auto-Derive Sizing Band - leave ON to get instrument-appropriate SL/TP sizing automatically
- Require Next-Bar Confirmation - turn ON for fewer, more selective signals at the cost of one bar of lag
---
11. ALERTS
Five alert conditions are available in the TradingView alert dialog:
- FDAM - Long Scenario Marked
- FDAM - Short Scenario Marked
- FDAM - Reaction Zone Reached
- FDAM - Extension Zone Reached
- FDAM - Invalidation Level Reached
The script also uses alert() calls for dynamic messages. Those programmatic alerts are issued once per confirmed bar close. The alertcondition() entries are selectable in the TradingView alert dialog; the script raises those conditions only on confirmed bars, while the selected alert frequency is configured in TradingView.
The dynamic alert() messages for Long and Short scenarios include the direction, active-tier pressure reading, nearest qualifying level, and session character (for example: "▲ LONG - Pressure 64 near Prior Day High (Trend Day)").
---
12. LIMITATIONS
- This is a discretionary analytical indicator rather than a built-in strategy backtest. It does not calculate audited P&L, win rate or historical strategy performance.
- The 3-tier delta engine is not equally precise across tiers. Tier 3 uses native TradingView footprint data. Tier 2 uses lower-timeframe OHLCV reconstruction. Tier 1 uses a single-bar OHLCV proxy. Each is normalized to the same -100 to +100 scale, but same scale does not mean same statistical distribution. The dashboard always shows which tier is active.
- The IB day-type classifier is a heuristic, not a factual market classification. "Session" is defined by whatever session context the chart symbol reports via session.isfirstbar - this varies across equities, futures, crypto and FX. The classifier labels a session based on IB-to-historical-median ratio thresholds; it does not identify participant intent.
- The confluence ladder weights are pre-defined analytical weights, not statistically derived reliability scores. They reflect the relative significance of level types in auction market theory as designed by the author.
- Same-bar Extension/Invalidation resolution uses a deterministic proximity convention based on distance from the prior bar's close. OHLC data alone cannot establish actual intrabar sequence. This is disclosed on-chart via the resolution status and in this description.
- Signals are intentionally suppressed until the current IB is formed and at least three completed historical IB samples are available.
- Footprint mode (Tier 3) may behave inconsistently during Bar Replay because of TradingView's footprint data caching. The script displays an on-chart notice when Footprint mode is enabled and recommends disabling it for replay testing.
---
13. DISCLAIMER
This script is a technical analysis tool built for educational and informational purposes only. It does not constitute financial advice, investment advice, trading advice, or a recommendation to buy or sell any security or instrument. Nothing produced by this script - signals, scores, zones, or labels - should be interpreted as a guarantee of future price behavior. Markets are probabilistic, not deterministic; past patterns in auction structure, delta, or volatility regime do not guarantee repeat outcomes. Trading leveraged instruments (crypto, futures, indices) carries substantial risk of loss. You are solely responsible for your own trading decisions, position sizing, and risk management. The author assumes no liability for losses incurred through the use of this script.
Users on plans that do not support volume-footprint data should leave the Footprint Engine toggle OFF. With Footprint mode disabled, the script uses Tier 2 when a usable lower-timeframe reconstruction is available and Tier 1 otherwise.
Published as open-source under the Mozilla Public License 2.0.
- BullByte Indicador

Flow Sate CVD [by Oberlunar]Flow Sate CVD framework combining cumulative volume delta gap and fair-value gap geometry with an adaptive order-flow and market-state model. It maps Absorption, AAA and Exhaustion structures to price while continuously tracking Flow, Response, Structure and Regime states.
The indicator detects two CVD discontinuity models across configurable timeframes: two-bar TimeFixed CVD gaps and same-anchor three-bar CVD FVGs. Detected events are projected onto their corresponding price zones, with opacity determined solely by the relative magnitude of the CVD gap.
An adaptive classifier evaluates signed CVD pressure, flow persistence, price-impact efficiency, resistance, impact decay, ATR regime, EMA fan structure, multi-scale TRIX/RSI momentum, liquidity and price/CVD divergence. Internal thresholds and fast/mid/slow weights adapt to the observed market state automatically.
The resulting structures are classified as Absorption, AAA (Absorption-Acceptance-Aggression) or Exhaustion. Absorption and AAA create persistent, directionally polarised price zones; Exhaustion is displayed as a point event.
Four continuous lanes summarise the underlying model:
FLOW: directional pressure and persistence.
RESPONSE: The Drive, Resistance or Decay pattern.
STRUCTURE: simple EMA/TRIX/RSI alignment adjusted for price/CVD divergence.
REGIME: liquidity and volatility environment.
A Flow State meter provides the same four states in compact form. A separate composite combines FLOW, RESPONSE and STRUCTURE, while REGIME adjusts confidence. Its current state is displayed on the price chart through a colour-coded EMA(7): aqua for bullish consensus, red for bearish consensus and grey when the adaptive threshold is not reached.
The UK, US1, and US2 liquidity windows are shown with adaptive session backgrounds and opening labels and can be independently filtered for structural events.
The script uses confirmed historical information with barmerge.lookahead_off for its MTF requests and does not intentionally access future data.
How to Use
Set TF1 for the displayed CVD and optionally enable additional MTF references. Use TimeFixed GAP CVD, CVD FVG, or both. Read the four lanes and Flow State meter as contextual diagnostics; projected Abs/AAA zones identify persistent price areas associated with classified CVD events, while Exhaustion circles mark decay events.
The EMA(7) is a compact visualisation of the composite state: increasing aqua intensity indicates stronger bullish agreement across the model, increasing red intensity indicates stronger bearish agreement, and grey indicates insufficient consensus.
Some specifications
CVD is derived from the volume data available to TradingView and is not equivalent to full limit-order-book order flow. The FLOW component is therefore a CVD-derived signed-flow proxy, not true exchange-level OFI. Classification is contextual and descriptive; Absorption, AAA, Exhaustion and composite states do not imply future price outcomes. MTF structures may also become available later than lower-timeframe observations because higher-timeframe information must develop and be confirmed.
Enjoy,
Oberlunar 👁★ Indicador

Professional Volume Delta & CVD SuiteEnglish Version
Professional Volume Delta & CVD Suite
Professional Volume Delta & CVD Suite is an all-in-one order flow and volume analysis indicator engineered to deliver institutional-grade market context across any timeframe. By combining Intrabar Volume Delta estimation, Cumulative Volume Delta (CVD), Order Flow Divergences, Volume Climax detection, and a dynamic Real-Time Data Table, this script condenses multiple advanced trading tools into a single, clean workspace.
Key Features & Internal Mechanics
Dual Volume Delta Calculation Engine:
Wick-Based Estimation (Recommended): Evaluates intrabar price action by analyzing high, low, and close prices (volume * (close - low) / (high - low)) to accurately distribute buying and selling volume within each candle.
Color-Based Alternative: Calculates net volume based strictly on candle close vs. open.
Automated Multi-Timeframe Adaptation (Auto-Adjust):
Intraday Mode (1m - 1H): Calculates a Session CVD that resets to 0 at the start of each trading day (00:00 UTC), ideal for tracking day-trading order flow absorption. Divergence lookback is set to 5 bars, Volume MA to 20 periods, and Climax Multiplier to 2.0x.
Daily & Weekly Mode (1D, 1W, 1M): Automatically switches to a Continuous Accumulated CVD (no daily reset) to track multi-week accumulation/distribution cycles. Sets the volume Moving Average to 21 periods (1 trading month) and divergence lookback to 10 bars for high-conviction swing signals.
In-Bar Buyer/Seller Percentage Labels:
Plots exact percentages of buying (%C) and selling (%V) pressure on each individual volume bar.
Fully customizable display: show both percentages, only the winning side, adjust font sizes, toggle % symbols, and control vertical offset distance.
Algorithmic Price vs. Delta Divergence Detection:
Bullish Divergence (Green Arrow): Triggers below the volume histogram when price marks a lower low but Volume Delta forms a higher low (indicates institutional supply absorption).
Bearish Divergence (Red Arrow): Triggers above the volume histogram when price marks a higher high but Volume Delta forms a lower high (indicates demand exhaustion/distribution).
Volume Climax & Trend Filters:
Volume Moving Average (MA): Smoothed volume baseline (default 21 periods for daily charts).
Volume Climax Highlights: Highlights exceptional volume spikes in bright gold when total volume exceeds the moving average by the configured multiplier (e.g., 1.8x or 2.0x), signaling heavy institutional positioning or potential exhaustion.
Dynamic Real-Time Information Table:
Candle Status: Live indicator (Bullish 🟢 / Bearish 🔴).
% Buyer / % Seller: Exact percentage breakdown for the current open candle.
Candle Delta: Net delta percentage of the active bar.
Session CVD / Accumulated CVD: Shows continuous capital flow adapted to the current timeframe.
Volume Activity: Displays current volume activity relative to the MA percentage or alerts CLIMAX ⚡.
Inputs & Customization Settings
Timeframe Configuration: Toggle auto-adaptation or manually enforce Intraday / Daily modes.
Calculations & Display: Choose calculation methods, toggle label modes, change text sizes, and adjust label offsets.
Divergences & MA Filters: Customize MA period, divergence lookback window (bars), and climax thresholds.
Table & Aesthetics: Full control over UI table placement (9 anchor points), table size, row visibility, and custom color palettes for buyers, sellers, climax bars, and divergence shapes.
Versión en Español
Professional Volume Delta & CVD Suite
Professional Volume Delta & CVD Suite es un indicador de análisis de flujo de órdenes (order flow) y volumen todo-en-uno, diseñado para proporcionar contexto de nivel institucional en cualquier marco temporal. Al combinar la estimación de Delta por vela, el Delta Acumulado (CVD), Divergencias de Order Flow, detección de Clímax de Volumen y una Tabla de Datos en Tiempo Real, este script sintetiza múltiples herramientas avanzadas en un único panel limpio y eficiente.
Características Principales y Mecánica Interna
Motor Doble de Cálculo de Volumen Delta:
Estimación por Mechas (Recomendado): Evalúa la acción del precio dentro de la vela analizando máximos, mínimos y cierres (volumen * (cierre - mínimo) / (máximo - mínimo)) para distribuir de manera precisa el volumen comprador y vendedor.
Alternativa por Color de Vela: Calcula el volumen neto basándose estrictamente en el cierre vs. la apertura.
Adaptación Automática según Temporalidad (Auto-Adjust):
Modo Intradía (1m - 1H): Calcula un CVD de Sesión que se reinicia a 0 al inicio de cada jornada (00:00 UTC), ideal para medir la absorción en el day trading. Configura la evaluación de divergencias en 5 velas, la Media Móvil en 20 períodos y el Clímax en 2.0x.
Modo Diario y Semanal (1D, 1W, 1M): Cambia automáticamente a un CVD Acumulado Continuo (sin reseteo diario) para medir ciclos de acumulación y distribución de mediano/largo plazo. Ajusta la Media Móvil de volumen a 21 ruedas (1 mes bursátil) y la evaluación de divergencias a 10 velas para señales swing de alta probabilidad.
Etiquetas de Porcentaje Comprador/Vendedor en Barras:
Muestra en tiempo real los porcentajes exactos de presión compradora (%C) y vendedora (%V) sobre cada barra de volumen.
Personalización visual total: muestra ambos porcentajes, solo el lado ganador, ajusta el tamaño de texto, activa/desactiva el símbolo % y modifica la distancia vertical.
Detección Algorítmica de Divergencias (Precio vs. Delta):
Divergencia Alcista (Flecha Verde): Salta debajo del histograma cuando el precio hace un mínimo más bajo pero el Delta de Volumen hace un mínimo más alto (señal de absorción de oferta institucional).
Divergencia Bajista (Flecha Roja): Salta arriba del histograma cuando el precio marca un máximo más alto pero el Delta de Volumen marca un máximo más bajo (señal de agotamiento de demanda o distribución).
Clímax de Volumen y Filtros de Tendencia:
Media Móvil de Volumen (MA): Línea base del volumen promedio (fijada en 21 ruedas para gráficos diarios).
Resaltado de Clímax: Pinta las barras en color dorado brillante cuando el volumen total supera drásticamente la media móvil según el multiplicador configurado (1.8x o 2.0x), alertando sobre volumen institucional masivo o posible agotamiento.
Tabla Informativa Dinámica en Tiempo Real:
Estado Vela: Indicador en vivo del sesgo actual (ALCISTA 🟢 / BAJISTA 🔴).
% Comprador / % Vendedor: Desglose porcentual exacto de la vela en formación.
Delta Vela: Porcentaje de delta neto de la barra activa.
CVD Sesión / CVD Acumulado: Flujo continuo de dinero adaptado dinámicamente según la temporalidad del gráfico.
Actividad Vol.: Muestra la actividad de volumen respecto a la Media Móvil o la alerta de CLÍMAX ⚡.
Parámetros y Opciones de Configuración
Configuración de Temporalidad: Activa/desactiva la autoconfiguración o fuerza manualmente los modos Intradía o Diario/Semanal.
Cálculos y Visualización: Elección del método de cálculo, formatos de etiqueta, tamaños de texto y distancias en el gráfico.
Divergencias y Filtros de MA: Ajuste de períodos de Media Móvil, rango de velas para divergencias (lookback) y umbrales de clímax.
Estética de la Tabla: Control total sobre la posición de la tabla (9 anclajes), tamaño de celda, visibilidad de filas y paletas de colores totalmente personalizables (compradores, vendedores, clímax y flechas de divergencia).
Indicador

Volume FootprintVolume Footprint
First and foremost, a special thanks to @bassnavy for the direct request and inspiration to build this tool. I truly appreciate your comment!
Disclaimer: This is essentially a simplified script inspired by premium footprint tools (lol). I pay my utmost respect to TradingView and its amazing community!
This indicator is an "Advanced Precision Footprint Visualizer" built strictly on Pine Script v6. Standard footprint charts often struggle with TradingView's rendering limits (max 500 boxes). To overcome this, I engineered a dynamic tick-grouping algorithm that visualizes exact Bid/Ask deltas, volume densities, and Point of Control (POC) with extreme precision, without breaking the platform's constraints.
This tool is designed for highly disciplined traders who rely on verified entry setups. It filters out market noise and visually isolates true liquidity nodes.
Core Mechanics & Calculation Logic:
Tick Grouping (Step Calculation): step = syminfo.mintick * active_ticks
Why: Processing every single minimum tick would instantly exceed the 500-box drawing limit. By grouping ticks based on ATR (Auto Tiers) or a manual input, we compress the data while maintaining visual fidelity.
Output Example: If syminfo.mintick is 0.01 and active_ticks is set to 1, the step size becomes 0.01. If the bar's high is 16.59 and low is 16.26, the engine calculates exactly 34 rows for rendering.
Row Delta Determination: row_delta = Ask Volume - Bid Volume
Why: To accurately gauge whether buyers or sellers absorbed the liquidity at a specific price tier.
Output Example: If Ask volume is 2.5K and Bid volume is 1.0K at a specific row, the row_delta is +1.5K. The text dynamically changes to the "Plus Delta" color (Green).
3-Step Volume Gradient: half_max = max_r_v * 0.5
Why: To create a seamless 3-step color gradient (Low -> Mid -> High). By calculating the 50% threshold of the maximum volume (POC) inside the bar, it intuitively separates high-interest zones from market noise.
Premium Plan TF Downgrade Logic: actual_ltf = (not is_premium and is_sec_tf) ? "1" : ltf_res_input
Why: TradingView restricts seconds-based timeframes (like 1S or 15S) to Premium users and above. Requesting this data on lower plans causes script crashes. This logic automatically downgrades the timeframe to 1 (1-minute) if the Premium toggle is disabled, ensuring stability for all users.
Output Example: If the user inputs 15S and the Premium toggle is false, is_sec_tf evaluates to true. The condition not is_premium is met, so actual_ltf outputs "1" (1-minute). If the toggle is true, it outputs "15S".
Warning: This script operates at the absolute edge of TradingView's rendering capabilities. If you encounter rendering errors, please reduce the "Lookback Bars" or increase the "Lower Timeframe (LTF)" resolution.
Indicador

Volume Footprint: Measuring by Math & GeometryIntroduction
Volume tells you how much traded. A footprint tells you where.
A conventional volume bar compresses all trading activity within a candle into a single total. That total measures participation, but it does not show how the activity was distributed through price. Two candles can carry similar volume and range while containing very different internal structures.
A volume footprint restores this missing dimension. It organizes a bar's volume across price levels and separates buying from selling, so the candle becomes a readable column: where activity concentrated, where one side dominated, and where the two sides met.
This price-level structure is the basis for the measurements and diagnostics used throughout this indicator.
1. The volume footprint
As introduced above, a footprint reveals the role and position of the real participants inside a candle. The diagram below illustrates the structure:
The diagram shows the footprint structure of a single candle: volume is distributed across price levels and separated into sell and buy activity. This makes the internal distribution of participation visible instead of reducing the candle to one total volume figure.
The real challenge in constructing a footprint is how buy and sell volume are derived. TradingView’s native Footprint data provides the highest-fidelity source used by this indicator, but it is available only on Premium and Ultimate plans. To make the concept accessible to users on other plans, we therefore estimate buy and sell volume using the alternative methods described below. These methods are approximations, intended to explain and visualize footprint mechanics—not to claim the same precision as TradingView’s native Footprint data.
Buy/Sell Volume Calculation Engines
The indicator uses three methods as engines for calculating buy and sell volume. These engines are selected from the Engine option in the indicator settings and will be explained individually below.
- Geometric
- Intrabar
- Footprint
A. Geometric Calculation Engine
The Geometric engine estimates buy and sell volume from the position of the candle’s close within its high–low range. A close nearer the high assigns a larger share to buying volume, while a close nearer the low assigns a larger share to selling volume.
As shown in the image, the Geometric engine is an estimation model based on the position of the candle’s close within its high–low range. Buy and sell volume are calculated as:
If the candle has no range, volume is divided equally between buying and selling.
It is important to emphasize that this is an estimated representation of buy and sell activity, not true transaction-side volume. However, it can still provide a useful analytical framework for markets where reported volume is incomplete, fragmented, or not representative of a centralized market-wide feed, such as many cryptocurrency markets and spot gold.
B. Intrabar Calculation Engine
The Intrabar engine derives buy and sell volume from lower-timeframe activity inside each chart bar, using TradingView’s official ta library. Instead of estimating the split from the shape of the parent candle, it aggregates the lower-timeframe up and down volume returned by the library.
Higher intrabar resolution generally provides greater precision, but also reduces the amount of historical coverage available. Tick-level data offers the finest resolution where available, while a 1-minute lower timeframe provides a practical alternative that can also be used on lower TradingView plans. On higher chart timeframes, such as 4-hour or daily charts, the 1-minute series can provide a substantially finer approximation of the internal buy/sell structure than calculations based only on the parent candle.
In practical terms, Intrabar provides the middle ground between simple candle-based estimation and native Footprint data: more granular than Geometric, yet still accessible across a wider range of TradingView plans. Its effectiveness ultimately depends on how much lower-timeframe detail is available for the chart being analyzed.
C. Footprint Calculation Engine
The Footprint engine reads TradingView’s native volume-footprint data directly. Unlike the Geometric and Intrabar engines, buy and sell volume are not inferred from candle geometry or lower-timeframe direction; they are obtained from TradingView’s own price-level footprint structure.
This provides the highest-fidelity volume source used by the indicator and serves as the reference engine for footprint-based measurements. Access to this data requires a TradingView Premium or Ultimate plan.
How are the footprint price rows constructed when native row-level data is available only through TradingView’s Footprint engine on Premium and Ultimate plans?
For the native Footprint engine, each price row is read directly from TradingView together with its buy and sell volume. For the Geometric and Intrabar engines, only bar-level buy and sell totals are available, so these totals must be distributed across the candle’s price range. To accomplish this, the indicator uses a Gaussian distribution model.
What Is the Gaussian Distribution Model?
A Gaussian distribution is a bell-shaped mathematical model in which the greatest weight is concentrated around a central value and progressively decreases as distance from that center increases. In this indicator, it is used as a weighting model to distribute a bar’s total buy and sell volume across its price rows, rather than assigning the same amount of volume to every level.
The simplified diagrams below illustrate the basic idea before we apply it separately to the buy and sell sides of a candle.
Figure 1 — A single bell distributes one total; no volume is created or lost
Figure 2 — Both bells cover the full range; only their centers differ, and each sums back to its own total
As the Volume Engine and its role in the settings menu were explained earlier, we will follow the same approach here for the Footprint structure and Gaussian model. The relevant settings will be introduced alongside these concepts so their practical effect on the indicator can be understood directly.
Ticks Per Row
This setting controls the row size only for TradingView’s native Footprint engine. A value of 1 creates the finest available structure, with each row representing one minimum price increment of the symbol. Higher values group multiple ticks into wider native Footprint rows.
For the Geometric and Intrabar engines, this setting is not used. Their Gaussian price distribution is calculated on the indicator’s fixed one-tick price lattice, where each row corresponds to syminfo.mintick. This keeps their modeled price-level structure at the highest available symbol resolution.
Window Bars
This setting determines how many valid candle columns the footprint table displays. Its default value is 5, and it can be set from 2 to 60.
The important point is that Window Bars does not simply mean the last N consecutive candles. Starting from the current bar, the indicator scans backward and accepts a candle only when:
the active Volume Engine provides valid volume data for that candle,
its total calculated volume is greater than zero, and
its price range overlaps the price area currently displayed by the footprint table.
If a candle does not satisfy these conditions, it is skipped and the search continues farther back until the requested number of columns is collected.
This same selection logic applies to all three engines. The practical difference is only data availability: Geometric normally has data wherever chart volume exists, Intrabar is limited by the lower-timeframe history available to the selected plan, and Footprint requires valid native Footprint data for the candle.
The search can extend up to 5,000 historical bars. Therefore, Window Bars controls the number of qualifying columns displayed, not the chronological lookback period itself.
Ticks Above/Below
This setting defines the vertical price span of the footprint table around the current price. The default value is 5, with an adjustable range from 1 to 50.
A useful way to understand this behavior is to think of an analog aircraft altimeter. The reference point remains centered while the scale moves around it. In the same way, the indicator keeps the current price on the central row while the surrounding price ladder shifts as the market moves.
The selected value determines how many one-tick rows are shown above and below that center:
Visible Rows = (2 × Ticks Above/Below) + 1
For example, a value of 5 displays 11 price rows: five above the current price, five below it, and the central row itself.
This setting applies to all three Volume Engines and controls only the visible price frame. It does not alter the underlying volume calculation or the native row grouping of the Footprint engine. Volume outside the visible frame remains outside the display and is not merged into the boundary rows.
Like an analog altimeter — the needle stays put while the dial turns behind it
Volume Concentration
This setting controls the width of the Gaussian distributions used by the indicator. Its default value is 3.0, with an adjustable range from 1.0 to 10.0 in steps of 0.5.
The relationship is:
σ = (High − Low) / Volume Concentration
Therefore, a higher value produces a smaller σ and concentrates more volume around the center of each bell. A lower value produces a larger σ and spreads the volume more broadly toward the candle’s extremes.
For the footprint table, this setting affects the Gaussian price-row construction used by the Geometric and Intrabar engines. It does not modify the native price rows when the Footprint engine is selected, because those rows are read directly from TradingView.
The same setting is also used later in the indicator’s Volume Profile construction. There, the common Gaussian profile model uses this concentration parameter regardless of which Volume Engine supplied the underlying buy and sell totals—including the Footprint engine.
Figure 1 — Higher concentration → narrower bell → more volume at the center row
Figure 2 — Concentration reshapes the row distribution, never the bar's total volume
Show Table
This setting controls whether the footprint table itself is displayed on the chart. It is enabled by default.
When Show Table is turned on, the price ladder and its candle columns are drawn according to the current footprint settings. Turning it off removes this table from the chart and provides a cleaner visual workspace.
Importantly, this option controls display only. It does not change the selected Volume Engine or the buy/sell volume values calculated by the indicator. Those volume figures remain available in TradingView’s Data Window even when the footprint table is hidden.
Table Text Size & Table Position
Table Text Size controls the font size used inside the footprint table, allowing the display to be adjusted for readability or to accommodate larger tables.
Table Position determines where the footprint table is anchored on the chart by combining its vertical and horizontal placement options.
2. Point of Control (POC)
Now that the footprint structure and the distribution of buy and sell volume across price levels have been established, we can begin examining the information that can be derived from that structure. One of the most important of these concepts is the Point of Control (POC).
What Is the Point of Control?
The Point of Control is the price level at which the greatest total volume has traded within the analyzed distribution.
At each price level, buy and sell volume are combined:
Total Volume at Price = Buy Volume + Sell Volume
The price level with the highest resulting total becomes the POC.
The importance of the POC comes from what it represents: it identifies the price where market participation was most concentrated. In other words, within the analyzed structure, this is the level where the largest amount of business was conducted and therefore where price received the greatest volume-based acceptance.
The POC should not, however, be interpreted as a directional signal by itself. It identifies where the greatest activity occurred, not whether buyers or sellers dominated that activity. Directional information must be derived from the buy/sell composition and other footprint measurements surrounding that level.
Because the POC is calculated from a defined group of price-level data, its location also depends on the period or footprint window being analyzed. As the underlying volume distribution changes, the POC can shift to a different price level.
The POC marks where business concentrated — not which side won it
How the Indicator Uses the POC
Now that the meaning of the POC is clear, we can look one level deeper and see exactly how the indicator uses it. The POC is not treated as a single decorative level; it is calculated separately for the footprint table and the chart profile, then reused in several parts of the indicator.
A. Dashboard POC
Inside the footprint table, the indicator first sums the buy and sell volume of each visible price row across all qualifying Window Bars:
Row Volume = Σ Buy Volume + Σ Sell Volume
The visible price row with the largest combined volume becomes the Dashboard POC. This means the Dashboard POC belongs specifically to the footprint window currently being analyzed, not to the entire chart history.
B. POC marker and color in the table
The selected row is marked with ● POC in the Metrics column.
Its color describes the composition of that same price level:
Buy volume greater than sell volume → Buy color
Sell volume greater than buy volume → Sell color
Equal buy and sell volume → Neutral color
The color does not redefine the POC as bullish or bearish. The POC is still selected only by total volume; the color simply shows which side contributed more volume at that level.
The row information also retains the individual Sell, Buy, and Total volumes so the user can see what produced the POC.
C. Chart POC
The POC drawn beside the Volume Profile is calculated independently from the Dashboard POC.
Across the selected profile period, the indicator evaluates the Buy and Sell profile curves at successive price samples and combines them:
Combined Profile Intensity = Buy Density + Sell Density
The sampled price where this combined profile reaches its maximum becomes the Chart POC.
This distinction is important: the Dashboard POC is derived from the footprint table's visible price rows and Window Bars, while the Chart POC belongs to the separate Volume Profile period and its sampled profile structure. They can therefore appear at different prices without either calculation being incorrect.
D. POC and profile resolution
Because the Chart POC is found from the sampled Volume Profile curve, the profile's resolution determines how finely the indicator searches for its maximum. Increasing profile resolution provides a denser set of price samples and therefore a finer localization of the Chart POC, without changing the underlying volume itself.
E. POC as the starting point of Value Area
POC also has a structural role in the next concept we will discuss: Value Area.
Rather than finding Value Area independently, the indicator begins from the POC and expands outward through neighboring price levels until the selected percentage of volume has been accumulated. In this sense, POC is not only a displayed level; it is also the anchor from which the Value Area structure is built.
F. POC settings
The Point of Control setting determines where the metric is used:
Off
Dashboard
Chart
Dashboard and Chart
The accompanying offset controls how far the Chart POC line extends beyond the Volume Profile before its label is placed. It affects presentation, not the calculated POC price.
G. POC as an output level
The indicator also publishes the Dashboard POC and Chart POC as separate level series. This allows TradingView's standard alert conditions—such as crossing, crossing up, or crossing down—to be applied to either level. We will return to this functionality in the Alerts section.
The key point is that when you see a POC in this indicator, you can identify exactly which dataset produced it, how its price was selected, what its color means, and where that level is used elsewhere in the calculation.
3. Value Area (VAH / VAL)
Once the POC identifies the price where volume is most concentrated, the next question is:
how far does that concentration extend?
The Value Area answers this by defining the price range that contains a selected share of the analyzed volume, commonly 70%.
The calculation begins at the POC and expands outward through neighboring price levels. At each step, the side containing the greater adjacent volume is added first. This process continues until the required percentage of total volume has been included.
The resulting boundaries are:
VAH — Value Area High: the upper boundary of the Value Area.
VAL — Value Area Low: the lower boundary of the Value Area.
Conceptually, the structure can be pictured as:
VAL ← accepted volume ← POC → accepted volume → VAH
The POC marks the center of greatest volume concentration, while VAH and VAL define the broader region around it where most of the analyzed trading activity took place.
Prices inside this range represent the market’s main area of volume acceptance for the selected dataset; prices outside it belong to the lower-volume remainder of the distribution.
POC sits at the peak of the combined curve; VAH and VAL mark its 70% edges
How Value Area Appears in the Indicator
The same Value Area concept is presented in two analytical contexts:
Dashboard:
The calculation uses the volume distribution of the current Footprint Window. Starting from its POC, the indicator expands toward neighboring rows until the selected volume percentage is reached. The resulting boundaries are marked directly in the Metrics column as ▲ VAH and ▼ VAL, so the accepted-volume region can be read against the footprint price ladder.
Chart:
The chart uses the Volume Profile period rather than the Footprint Window. Its own POC becomes the starting reference, and the Value Area is calculated from the profile’s volume distribution. The resulting VAH and VAL are then drawn as horizontal levels around the profile, making the high-volume acceptance range visible directly on the chart.
Because the Dashboard and Chart analyze different datasets, their POC, VAH, and VAL levels do not necessarily have to coincide.
The Value Area setting determines whether these levels are calculated and displayed in the Dashboard, Chart, Dashboard and Chart, or turned Off. The percentage beside it defines the target share of volume, with 70% as the default.
4. Volume Imbalance
Once we know where volume concentrated, the next question is whether one side became unusually dominant at a particular price. Volume Imbalance is designed to identify exactly that condition.
Unlike a simple comparison of Buy and Sell volume on the same row, footprint imbalance is measured diagonally between neighboring price levels:
Buy Imbalance:
Buy volume at a price is compared with Sell volume one row below.
Sell Imbalance:
Sell volume at a price is compared with Buy volume one row above.
With the default threshold of 300%, the dominant side must exceed the opposing diagonal volume by more than three times before the level is classified as imbalanced.
Conceptually:
Buy Imbalance:
Buy(current row) > Sell(row below) × Threshold
Sell Imbalance:
Sell(current row) > Buy(row above) × Threshold
This diagonal comparison is important because it compares opposing activity across the neighboring prices where buyers and sellers effectively meet, rather than treating each row as an isolated number.
How the Indicator Uses Imbalance
Geometric and Intrabar:
The same diagonal rule is applied to the price rows constructed by the indicator.
Footprint:
When the native Footprint engine is selected, the indicator uses TradingView's own per-row Buy and Sell imbalance results. The selected Imbalance percentage is passed directly into the native Footprint request.
Footprint Table:
An imbalanced Buy or Sell cell receives a directional marker and stronger visual emphasis, making individual imbalances visible inside each candle column.
Dashboard Metrics:
The indicator also evaluates the combined Buy and Sell distribution across the complete Footprint Window. Price levels that satisfy the diagonal imbalance rule at the window level are marked in the Metrics column, allowing isolated candle imbalances to be distinguished from imbalance that persists across the broader window.
Chart:
For the Volume Profile period, imbalance is evaluated from the profile's Buy and Sell distribution and qualifying levels are shown as dotted horizontal marks on the chart.
Imbalance Setting
The Imbalance setting enables or disables these measurements, while the percentage beside it controls how strong the diagonal dominance must be. The default is 300%; increasing it requires a stronger imbalance, while decreasing it makes the measurement more sensitive.
The important distinction is that imbalance identifies relative dominance at specific neighboring prices. It does not simply tell us which side has more total volume across the candle or profile.
Figure 1 — Buy vs sell one row below · sell vs buy one row above · threshold 300%
Figure 2 — A buy imbalance needs the buy row to beat the sell row below it by the threshold
Figure 3 — Sell(P) > Buy(P + 1) × threshold · the buy rule flipped upside down
5. Delta and Totals
After identifying where volume is concentrated and where local imbalances appear, the same Buy/Sell data can be summarized through two direct measurements: Total Volume and Delta.
Total Volume shows how much activity occurred:
Total = Buy Volume + Sell Volume
Delta shows the difference between the two sides:
Delta = Buy Volume − Sell Volume
A positive Delta means Buy volume was greater, while a negative Delta means Sell volume was greater. A value near zero indicates that the two sides contributed similar amounts of volume.
The important distinction is that Delta measures volume dominance, not price direction. A candle can rise while having negative Delta, or fall while having positive Delta, because price movement and Buy/Sell volume balance describe different aspects of market activity.
How They Appear in the Dashboard
At the bottom of each Footprint candle column, the indicator displays:
Total: the complete Buy + Sell volume of that candle.
Delta: the Buy − Sell difference for that candle.
Positive Delta is displayed in the Buy color and negative Delta in the Sell color, while Total remains neutral.
The Sum column applies the same calculation to the entire Footprint Window. It combines the Buy and Sell totals of all qualifying Window Bars and reports:
Window Total = Σ Buy + Σ Sell
Window Delta = Σ Buy − Σ Sell
This allows the user to compare the balance of an individual candle with the broader balance of the complete Footprint Window.
Current-Bar Summary
The status bar at the top of the table also provides a live summary of the current candle, including its Total Volume, Sell Volume, Buy Volume, and the side currently leading.
The lead percentage measures how large the Buy/Sell difference is relative to the candle's total volume:
Lead % = |Buy − Sell| / Total × 100
This makes it possible to distinguish between a small numerical advantage and a genuinely meaningful difference in participation.
The background color of this status bar follows the candle's price change, not its Delta. Therefore, price direction and volume dominance remain intentionally separate.
On the Chart
Total and Delta are not drawn as independent horizontal levels on the chart. Instead, their underlying Buy and Sell volumes continue into the Volume Profile calculations, where the distribution and broader balance between the two sides are analyzed in greater detail.
So while Imbalance asks where one side became unusually dominant at specific neighboring prices, Delta answers a broader question:
Which side carried more volume over this candle or window, and by how much?
6. The Volume Profile
The Footprint shows volume inside individual candles. The Volume Profile takes the next step and combines that information across a selected period to show where Buy and Sell activity accumulated through price.
Instead of one conventional profile, the indicator builds two separate distributions:
Buy Profile
Sell Profile
For every bar in the selected period, its Buy and Sell totals are distributed through that bar’s High–Low range using the same Gaussian framework introduced earlier. These individual distributions are then added together to create the two final profile curves.
An important distinction is that this common profile model is used for all three Volume Engines. Even when the Footprint engine is selected, the chart profile is constructed from its bar-level Buy and Sell totals rather than directly reproducing TradingView’s native footprint rows. This gives all engines the same mathematical basis for profile comparison.
How It Appears on the Chart
The profile spans from the lowest Low to the highest High of the selected period and is drawn to the right of the latest candle.
Both curves grow from the same baseline and use the same horizontal scale, so their relative widths remain meaningful:
Wider Buy curve → greater Buy intensity at that price
Wider Sell curve → greater Sell intensity at that price
Where the two filled curves overlap, the chart also makes the shared price territory visually apparent.
This profile becomes the foundation for several measurements already introduced or still to come, including Chart POC, VAH/VAL, profile Imbalances, OVL, Balance Tilt, and the Residual self-check.
Main Profile Settings
Profile Period: number of bars included in the calculation.
Profile Width: horizontal drawing size of the profile.
Profile Resolution: number of price samples used to trace the curves; higher values produce finer visual resolution without changing the underlying volume model.
Buy / Sell visibility, Fill and Colors: control presentation only.
In short, the Footprint answers what happened inside each candle, while the Volume Profile reorganizes the same Buy/Sell information around price across an entire period.
Same horizontal scale on both sides — so relative widths are directly comparable
7. Overlapping Coefficient (OVL) and Balance Tilt
The Buy and Sell profiles tell us where each side was active. The next question is:
how much did they operate at the same prices?
The Overlapping Coefficient (OVL) measures this shared price territory.
Before comparison, the Buy and Sell profiles are normalized so that differences in total volume do not distort their shapes. The indicator then measures the common area between the two distributions.
Conceptually:
OVL = Shared Area of the Normalized Buy and Sell Profiles
Its range is:
0.00 → almost no overlap
1.00 → complete overlap
A high OVL means Buy and Sell activity occurred largely at the same prices. A low OVL means the two sides occupied increasingly different price regions.
How the Indicator Interprets OVL
The indicator uses 0.75 as its balance boundary:
OVL ≥ 0.75 → BALANCED
OVL < 0.75 → OFF BALANCE
But OVL alone tells us only that the distributions have separated; it does not tell us which side carried more total volume. For that, the indicator uses Balance Tilt:
Balance Tilt = (Buy Volume − Sell Volume) / Total Volume × 100
Positive values lean toward Buy, while negative values lean toward Sell.
The Balance Tilt % setting determines how large this difference must be before a direction is named. Its default is 5%.
Therefore, when OVL is below 0.75, the chart can report:
OFF BALANCE TO BUY
OFF BALANCE TO SELL
OFF BALANCE — when the volume difference is too small to assign a direction confidently.
On the Chart
The OVL reading appears at the top of the Volume Profile and reports both the coefficient and its interpretation.
This gives two complementary pieces of information:
OVL → Are Buy and Sell occurring at the same prices?
Tilt → If not, which side carries more total volume?
OVL: how much do buy and sell share the same prices?
Balance Tilt: which side carried more total volume
Two questions, answered in order
OVL asks how much the sides share the same prices; Tilt names the heavier side only when OVL says off balance
OVL measures shared prices · Tilt classifies direction when off balance · together they read the profile's balance
8. Residual Self-Check (RES)
Because the Volume Profile is built mathematically, the indicator also verifies that its own reconstruction has not created or lost meaningful volume.
For each side, it compares the original Buy or Sell total with the volume recovered from the complete profile model—including the Gaussian curves and any zero-range bars represented as point masses.
Conceptually:
Residual = Difference between original volume and reconstructed profile volume
The Buy and Sell errors are combined and expressed in parts per million (PPM). A value close to zero means the profile reproduces its source volume with extremely small numerical error.
How It Appears on the Chart
The RES reading is displayed beneath the Volume Profile:
EXACT — Residual is within the permitted tolerance.
DRIFT — Residual exceeds that tolerance.
The default Residual Tolerance is 1 PPM. Lower values make the self-check stricter; higher values allow more numerical deviation.
RES is therefore not a market signal. It is a diagnostic of the indicator itself: a confirmation that the profile you are analyzing remains mathematically consistent with the volume from which it was constructed.
9. Remaining Settings
Most analytical settings have already been explained alongside the concepts they control. Only a few display-related controls remain:
Balance Tilt % sets the minimum Buy/Sell volume difference required before an off-balance profile is labeled toward Buy or Sell. The default is 5%.
Residual Tolerance PPM defines the maximum RES value still classified as EXACT. The default is 1 PPM.
Label Merge Ticks controls how close chart labels may be before they are combined to prevent overlap. A value of 0 keeps nearby labels separate.
Frame Lines control only the color, thickness, and style of the Volume Profile boundary lines.
The remaining profile visibility, colors, fill opacity, width, and resolution settings affect presentation only and were introduced with the Volume Profile itself.
10. Alerts
The indicator does not impose a predefined trading signal. Instead, it publishes its two POC levels as separate series so they can be used directly inside TradingView’s standard Alert dialog:
Dashboard POC — the POC calculated from the current Footprint Window.
Chart POC — the POC calculated from the Volume Profile period.
After selecting either series as the alert source, TradingView’s normal conditions can be applied, including actions such as:
Crossing · Crossing Up · Crossing Down · Greater Than · Less Than
This keeps the alert logic flexible. The indicator provides the calculated level; the user decides what interaction between price and that level is important for the strategy being monitored.
For example:
Price crosses above Chart POC → Crossing Up
Price crosses below Dashboard POC → Crossing Down
Dashboard POC and Chart POC remain independent, so an alert can be built around either the short footprint window or the broader profile structure.
Publisher’s Note
Volume is one of the fundamental dimensions of market analysis because it reveals the level of participation behind price and helps us understand where trading activity is taking place.
This indicator was created first to make Footprint concepts accessible across TradingView plans. The Geometric and Intrabar engines provide approximate Buy/Sell representations, while the Footprint engine uses TradingView’s official native price-level data where available.
An important part of the project was to place these different data sources inside a common mathematical framework. TradingView’s native Footprint presents its price-level structure directly as footprint rows, while this indicator also uses Gaussian mathematics and price geometry to construct a comparable Buy/Sell Volume Profile from the bar-level totals of all three engines. In this way, different sources can be examined through the same analytical language rather than through unrelated visual forms.
The purpose is not to claim that an approximation is equivalent to native data. It is to make the differences measurable, understandable, and comparable. For users who enjoy investigating how markets are represented—and how different methods arrive at their results—the three engines can themselves become an interesting field of study.
Ultimately, the goal is simple: to move from merely seeing volume to understanding its structure. Indicador

Order Flow Footprint & DeltaOrder Flow Footprint & Delta
OVERVIEW
Order Flow Footprint & Delta is a candle + volume proxy scanner for the Order Flow playbook on TradingView.
It marks three educational setups — OF1 Continuation, OF2 Absorption reversal, and OF3 Break & retest — using structure bias, volume impulse, absorption proxies, and break/retest logic.
Important: TradingView does not provide true bid/ask footprint data for most symbols. This script uses candle and volume proxies. The on-chart dashboard shows Proxy = no footprint.
Built by the Xcelerate Trade team.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
BEST USED WITH
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Works much better together with:
→ “Fluid Liquidity Zones - CHoCH + Mitigation + HTF | Xcelerate Trade”
(or “Fluid Liquidity Zones - CHoCH | Xcelerate Trade”)
Use SUPPLY / DEMAND zones + CHoCH / market structure first, then OF labels as confirmation.
CONCEPT
Order flow tools help traders read aggression and reaction around levels. On TradingView, those ideas are approximated from open/high/low/close and volume.
Use this indicator as confirmation after higher-level context (supply/demand or liquidity zones + market structure), not as a standalone entry system.
GOLDEN RULE
Zone (SUPPLY/DEMAND) + structure first → then OF1/OF2/OF3 as confirmation — never the reverse.
Recommended timeframes: 15m–1h. Lower timeframes (1m/3m) are noisier and produce more false signals.
HOW THE SETUPS WORK
OF1 — CONTINUATION (cyan)
Idea: trend + stacked impulse + pullback + continuation.
Long OF1 when:
1) Bull bias (HH/HL structure + optional HTF up filter)
2) A bullish impulse / stacked strong bars existed
3) Price pulled back into the impulse zone
4) Confirmation (bullish bar / positive delta proxy)
Short OF1 is the mirror for bearish continuation.
OF2 — ABSORPTION REVERSAL (violet)
Idea: sweep of a level + absorption + reclaim.
Long OF2 when:
1) Sweep below a low / level (wick down)
2) Absorption (high volume, little progress)
3) Reclaim above the level with upside aggression
Short OF2 is the mirror after a sweep above a high.
OF3 — BREAK & RETEST (green long / red short)
Idea: volume break → retest → rejection.
Long OF3: break up → retest broken level as support → rejection up.
Short OF3: break down → retest as resistance → rejection down.
FEATURES
• Toggle OF1 / OF2 / OF3 independently
• Structure bias with optional HTF filter for OF1
• Volume / delta / imbalance / absorption proxies
• Optional break level lines
• Live dashboard (bias, delta proxy, stack status, setup wait/active)
• Alerts for each OF1/OF2/OF3 long and short condition
HOW TO USE (WITH FLUID LIQUIDITY ZONES)
1) Read bias / structure (HH HL / LH LL, CHoCH) for higher-level direction
2) Note where price is: DEMAND = long bias area, SUPPLY = short bias area
3) Then use OF labels:
• DEMAND + OF2 or green OF3 → long candidates
• SUPPLY + OF2 or red OF3 → short candidates
• OF1 only with the trend (not counter-trend in a range)
4) Dashboard “wait” means no signal on the current bar; older labels remain on history
SKIP / AVOID
• Bias = RANGE and you are not clearly on a zone
• Labels in the middle of a range with no level
• OF1 against SUPPLY/DEMAND
• Chaotic OF1+OF2+OF3 overlap with no clear level
• Acting on a label alone with no zone/structure context
EXAMPLES
• DEMAND + green OF3 / OF2 → look for LONG after reclaim/confirm
• SUPPLY + red OF3 / OF2 → look for SHORT
• Cyan OF1 in uptrend, pullback into DEMAND → continuation LONG
• Label only, no zone/structure → do not enter
LIMITATIONS
• This is not real footprint / DOM / bid-ask data. Signals are proxies and can be wrong.
• Especially noisy on 1m/3m charts.
• The script does not place trades and does not guarantee results.
• Always combine with your own risk management and market context.
Indicador

Order Flow 3D Delta Profile [LuxAlgo]The Order Flow 3D Delta Profile indicator provides a spatial visualization of volume delta distribution across a specified lookback period, using 3D extrusion to represent market depth and intensity.
🔶 USAGE
The indicator projects a 3D volume profile onto the chart, allowing traders to identify price levels with significant buying or selling pressure. Unlike traditional 2D profiles, this tool uses depth and perspective to highlight the relationship between price, volume, and time.
🔹 Value Area and POC
The script identifies the Point of Control (POC) as the price level with the highest total volume, rendered in a distinct color. The Value Area (VA) highlights the price range where a user-defined percentage of total volume (default 70%) occurred. Bins outside the Value Area are darkened to emphasize the core trading zone.
🔹 Profile Alignment and Placement
Users can customize the spatial arrangement of the profile:
Placement: Choose to overlay the profile directly "On Candles" or position it to the "Right of Price" for a clearer view of current price action.
Alignment: Set the profile to "Center" to see delta split (bullish volume to the right, bearish to the left), or "Left/Right" to see unified volume bars.
🔹 3D Perspective
The "3D Options" allow for full control over the visual tilt. Adjusting the X and Y Extrusion Depths changes the angle of the "blocks," providing a pseudo-3D effect that can help distinguish overlapping price levels.
🔹 Volume Anomaly Highlights
When enabled, the indicator identifies individual candles with abnormally high volume (based on a multiplier of the average). These candles are highlighted with a glowing effect and a "3D Laser Beam" that connects the candle directly to its corresponding price level in the profile.
🔶 DETAILS
The script calculates volume distribution by dividing the high-low range of the lookback period into "Buckets." Each candle's volume within the period is assigned to a bucket based on its median price.
The 3D effect is constructed using polylines to create front, side, and top faces for every volume bin. The drawing order is dynamically managed based on the Y-tilt (drawing bottom-to-top or top-to-bottom) to ensure correct visual layering and occlusion.
🔶 SETTINGS
🔹 General
Length: The number of historical bars included in the profile calculation.
Buckets: The number of price rows (bins) used to divide the vertical range.
Value Area %: The percentage of total volume used to calculate the Value Area.
🔹 Profile Setup
Profile Alignment: Determines if volume is centered or pinned to a side.
Profile Placement: Determines the horizontal location of the profile.
Profile Width Scale: Controls the maximum horizontal width of the volume bins.
🔹 3D Options
Extrusion Depth X/Y: Controls the horizontal and vertical tilt of the 3D perspective.
Show Bounding Box: Draws a 3D wireframe around the range of the profile.
🔹 Visuals
Highlight High Vol Candles: Enables the glow and connection beams for volume anomalies.
Anomaly Threshold: The multiplier applied to average volume to identify an anomaly.
🔹 Style
POC Color: Color used for the Point of Control.
Bull/Bear Colors: Colors representing positive and negative volume delta.
Border Color: The color of the 3D block edges and bounding box.
Indicador

Orderflow Suite [martineye15]Orderflow Suite — four order-flow tools in one indicator: Cumulative Volume Delta, footprint bars, imbalance / absorption signals, and a volume profile. Each module toggles independently, so you can run the full suite or just the part you need. CVD gets its own pane; the footprint, signals and profile draw directly on the price chart, so no second script is required.
MODULES
- Cumulative Volume Delta (CVD): running buy-minus-sell volume, with Session / Day / Week / None reset anchoring and a Line, Columns or Candle display (candles show open = previous CVD, close = new CVD, wicks from the intrabar delta extremes). Optional price-CVD divergence: bearish when price makes a higher high while CVD makes a lower high, bullish when price makes a lower low while CVD makes a higher low.
- Footprint bars: the most recent bars are split into price bins, each showing aggregated buy x sell volume, shaded by its net delta, with the bar's highest-volume bin (VPOC) framed.
- Imbalance & absorption: delta-imbalance triangles when |delta| / volume passes a threshold, stacked-imbalance zones when several same-direction imbalance bars line up, plus absorption labels (heavy volume in a tight range near a swing) and exhaustion labels (a new swing high on negative delta, or a new swing low on positive delta).
- Volume profile: a volume-at-price histogram over a lookback window with POC, value-area high / low and the 70% value area, in total-volume or delta-coloured mode.
DELTA ENGINE (please read)
TradingView does not provide a true bid/ask tick feed, so delta here is an approximation, not exchange order flow. Historical delta is estimated from lower-timeframe intrabars: an intrabar counts as buy volume when it closes above its open, sell volume when below, and is split evenly on an unchanged close. On the live bar you can optionally accumulate tick-based delta instead (uptick = buy, downtick = sell). Because TradingView does not store ticks, realtime values built this way can differ from what the same bar shows after a chart refresh. Treat every delta value as an estimate.
ALERTS
Ten conditions: CVD bullish / bearish divergence, bullish / bearish imbalance, stacked bullish / bearish imbalance, absorption at highs / lows, and exhaustion top / bottom.
HOW TO USE
Add it to a symbol that has volume (crypto, futures or stocks — spot forex usually has no real volume, and the tool will tell you so). Intraday timeframes from about 1 minute to 1 hour work best. Turn on the modules you want, set the delta engine (lower-timeframe auto / manual, and optional realtime tick mode), and adjust the per-module thresholds and sizes. Use CVD and its divergences for momentum and non-confirmation, the footprint and profile to see where volume actually traded, and the imbalance / absorption / exhaustion signals as context around swings. Set alerts on any of the ten conditions.
WHAT MAKES IT DIFFERENT
It combines CVD, footprint, imbalance / absorption and a volume profile in a single indicator, sharing one delta engine and drawing the price-chart modules through force_overlay from a lower pane — a combined order-flow view without stacking several scripts. Drawing counts are budgeted internally so the modules together stay within TradingView's object limits.
REPAINTING & LIMITATIONS
Confirmed-bar behaviour is stable: footprints are built on closed bars, CVD divergences use confirmed pivots (so they appear a few bars after the pivot — normal pivot lag, not repainting), and the profile is computed over completed bars. The delta approximation is the main caveat: the live bar's delta is an estimate, and if you enable realtime tick mode, the live values will not match the same bar's historical lower-timeframe values after a refresh — this is inherent to how TradingView exposes data and is noted in the input tooltips. One-second intrabars need a plan with seconds data; without it the tool uses a one-minute fallback, and very old bars beyond the intrabar budget fall back to whole-bar classification. A symbol with no volume cannot produce delta and will show a notice instead.
This is a visual, decision-support tool. It is not a strategy, it places no orders and reports no performance statistics, and it is not financial advice. Indicador

Burst Size Flow Divergence Large vs Small CVDOverview
A single cumulative-delta line tells you net buying or selling, but hides who is doing the pushing. Burst-Size Flow Divergence splits the flow inside each bar by the size of each volume burst — small / medium / large sub-intervals — and runs a separate signed delta on each tier. The signal is the divergence between the large-burst delta and the small-burst delta: concentrated bursts leaning one way while trickle flow leans the other. It is a flow-structure read, not a signal to trade alone.
What this is — and is NOT (read this before using)
This measures activity-burst size, not per-trade size. Pine cannot see individual trades — it sees a bar's volume and, via lower-timeframe requests, the volume of each sub-interval within the bar. "Large" here means a sub-interval that printed a lot of volume relative to normal — not a large single trade, and not "institutional." Institutions deliberately slice big orders into many small child-orders, so burst size is a proxy, not proof of who is behind the flow. The classification is honest about this, and the built-in harness is there precisely to test whether the divergence carries any information rather than to assert that it does.
Why these components are ONE tool (mashup justification)
Each stage exists because the previous one is ambiguous on its own:
Intrabar bucketing. Each lower-timeframe sub-bar is classed small/medium/large by its volume against an adaptive average, so "large" means large for this symbol and session, not a fixed lot count. A fixed threshold would misclassify on every instrument and every volatility regime.
Per-tier directional imbalance. Each tier gets its own signed delta (up sub-bar → +volume, down → −volume), expressed as net ÷ gross in — what fraction of that tier was net buying versus selling. Normalising this way lets the tiers' directions be compared apples-to-apples even though the large tier moves far less total volume than the small one.
The divergence. The large-minus-small spread is the object. Three separate delta lines would just be clutter to eyeball; the disagreement between the concentrated and the trickle flow is the actual read, so the tool computes it directly.
The calibration harness. "Concentrated bursts are informed" is a hypothesis, not a law — so when the spread is strong, the harness checks forward whether price actually followed the large tier more than the unconditional base rate, and reports Hit / Base / Edge on confirmed bars. That's what turns the divergence from a story into something you can verify on your instrument.
How it works
For each chart bar the finest available sub-bars are requested. Each is signed by close-versus-open (a tick-rule aggressor proxy) and bucketed by volume against the adaptive average. Per-tier signed volume becomes a net÷gross imbalance in , the large-minus-small spread is smoothed into the oscillator, and a strong gated spread is the divergence signal.
How to use it
Read the histogram (the large-minus-small spread): green means large bursts are accumulating while small flow lags or sells; red means large bursts are distributing. The bold line is the large-tier imbalance, the faint line the small tier. A gated turn in the spread suggests concentrated flow is leading, and is marked in the pane and — optionally — on the price chart. Always check the Coverage row (how much real sub-bar resolution the current bar received) and the Edge row (whether the divergence has actually led on this instrument). It is never a standalone trigger.
Plan-adaptive & data note
Sub-bar precision auto-selects the finest your plan serves (seconds on Premium+, else 1-minute). Lower-timeframe data exists only for recent bars, so older bars fall back to whole-bar flow and the coverage read shows it. The tool needs an instrument with real volume — a cash index reports none, so use the futures. The adaptive average and the calibration harness advance only on confirmed bars, so they never drift or inflate intrabar. Edge is in-sample, no costs — a study aid, not a backtest.
Originality
The parts are public: cumulative volume delta, the close-vs-open (tick-rule) aggressor proxy, and the general idea of size-partitioned / flow-toxicity order flow. What's assembled here is the specific construction — the adaptive intrabar size-tiering, the net÷gross per-tier imbalance that makes tiers of very different volume directly comparable, the large-minus-small divergence as the headline object, and the forward-calibration harness that scores it against the base rate. This is a clean-room implementation; no third-party Pine code is reused.
Concept credits
Cumulative Volume Delta — standard order-flow technique.
Close-vs-open (tick-rule) aggressor classification — after the classic trade-sign literature (Lee & Ready).
Size-partitioned / flow-toxicity order flow (VPIN) — Easley, López de Prado & O'Hara.
Disclaimer
Research and educational tool only. Not financial advice, no recommendation, no guarantee of results. Burst size is not trade size and does not identify institutions versus retail; the up/down sign is a close-vs-open proxy for the aggressor, not the true tape. Indicators describe past behaviour; they do not predict the future. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability. Indicador

Footprint Master Pane [ZynAlgo]Overview
ZynAlgo Footprint Master Pane is an order-flow and footprint-style volume analysis indicator designed to help traders study micro-liquidity behavior inside each candlestick.
The tool displays intrabar volume-side activity as a matrix-style Footprint Profile in a separate pane. Instead of only observing open, high, low, and close movement, traders can study where buying and selling pressure appears across different price levels inside recent candles.
This can help users evaluate:
Intrabar volume concentration
Buy-side and sell-side pressure
Delta behavior inside each candle
Point of Control placement
Liquidity concentration at candle highs and lows
Potential absorption or exhaustion behavior
Chart example:
How to Read the Footprint Matrix
Each data block on the chart is displayed in this format:
Bid | Ask
Price Level
The price level represented by that row of the footprint matrix.
Bid - Left Number
Represents sell-side volume activity classified by the script for that price level.
Ask - Right Number
Represents buy-side volume activity classified by the script for that price level.
Background Color - Heatmap
The higher the volume at a price level, the stronger the heatmap intensity.
Default color logic:
Cyan: buy-side activity is dominant at that price level.
Pink: sell-side activity is dominant at that price level.
Gray: low or inactive liquidity area.
Key Highlights
POC - Point of Control
The Point of Control is the price level with the highest total trading volume within the selected candlestick.
It is displayed as the gold zone and represents the main volume concentration area for that candle.
Footer Metrics
The bottom of each footprint column displays summary data for the candle.
Delta
Delta represents the net difference between buy-side and sell-side volume activity.
A positive delta indicates that buy-side pressure is dominant. A negative delta indicates that sell-side pressure is dominant.
Total Volume
Total volume represents the combined volume activity for the entire candlestick.
Configuration Settings
1. Order Flow Engine
Intrabar Timeframe
Defines the lower timeframe used by the tool to extract intrabar volume information.
Lower intrabar timeframes can provide more detailed footprint construction, while higher intrabar timeframes may produce a smoother and lighter display.
Stack Levels - Height
Controls how many price levels each candlestick is divided into.
Higher values:
Show more footprint detail
Create a finer price-level breakdown
May increase chart processing load
Lower values:
Create a simpler footprint view
Reduce visual density
May run more smoothly on slower charts
Auto Detect Asset - Smart Grid
When enabled, the system attempts to measure the current asset's volatility and calculate an appropriate grid size automatically.
This is useful when switching between markets such as gold, crypto, forex, indices, or stocks.
Manual Tick Size
When Auto Detect Asset is disabled, users can manually define the tick or grid size.
This can be useful when a symbol requires a custom footprint scale.
2. Pane Visuals
Recent Bars to Render
Controls how many recent candles are displayed in detailed footprint form.
Limiting the number of rendered candles can help keep the chart responsive on TradingView.
Color Customization
Users can customize the colors for:
Buy-side activity
Sell-side activity
Point of Control zone
Heatmap display
This allows the footprint pane to match different chart themes and visual preferences.
Basic Analytical Applications
1. Absorption Observation
When price approaches a key support or resistance area, footprint data can help traders study whether one side of the market is being absorbed.
For example, if a bearish candle shows positive delta and large volume near the lower part of the candle, it may suggest that sell pressure is being absorbed by buy-side participation.
2. POC Migration
Point of Control migration can help traders evaluate where value is shifting across consecutive candles.
In an uptrend, POC zones that continue to migrate higher may suggest that market participation is accepting higher prices.
3. Liquidity at Highs and Lows
Traders can inspect volume activity near candle highs and lows to study exhaustion behavior.
For example, if price reaches a new high but the top levels show very low participation, that may indicate weaker continuation pressure.
How to Use
Add the indicator to the chart.
Choose an intrabar timeframe suitable for the chart timeframe and market.
Adjust stack levels to control footprint detail.
Use the heatmap to identify price levels with stronger participation.
Monitor the POC to study where volume concentration forms inside each candle.
Compare delta and total volume to evaluate buy-side or sell-side pressure.
Combine footprint observations with market structure, support and resistance, liquidity zones, and risk planning.
Best Use Cases
This indicator may be useful for:
Order-flow style analysis
Footprint chart reading
Intrabar volume analysis
Delta observation
Point of Control tracking
Absorption study
Exhaustion analysis
Liquidity-zone confirmation
Limitations
Footprint values depend on the intrabar data available from TradingView for the selected symbol and timeframe.
The Bid and Ask display is based on the script's volume-side classification logic and should be interpreted as analytical volume-side data.
Lower intrabar timeframes may provide more detail but can increase processing load.
A footprint imbalance does not guarantee price continuation or reversal.
The indicator does not provide automatic trade entries, exits, or position management.
Past order-flow or footprint behavior does not guarantee future results.
Important Note
This indicator is an analysis tool only. It does not provide financial advice, investment advice, or guaranteed trading results. Users are responsible for their own trading decisions and risk management.
Indicador

Indicador

Order Aggression Heatmap (Asymmetrical Volume Visualizer)Order Aggression Heatmap is a footprint-based visualization tool designed to highlight high-volume aggressive and/or asymmetrical buy/sell activity at individual price rows.
User-defined filters allow you to eliminate noise and only show the highest volume heat blocks.
Using TradingView’s footprint data, the indicator analyzes volume at individual price rows and identifies areas where one side demonstrates a meaningful advantage over the other. Qualifying rows are displayed as heatmap blocks, with or without text, allowing traders to quickly spot volume concentrations, directional pressure, and potential areas of market response.
The indicator is intended as a supplemental order-flow visualization and can be used alongside price action, support/resistance levels, supply-demand zones, volume profiles, or other market structure tools.
How It Works
For each footprint price row, the script evaluates:
Total traded volume
Buy volume
Sell volume
Delta (buy volume minus sell volume)
Relative dominance between buyers and sellers
Rows are displayed only when user-defined thresholds are met.
The filtering process allows traders to focus on meaningful participation while reducing visual noise from lower-volume activity.
Available Filters
Minimum Row Volume
Requires a footprint row to contain at least the specified amount of traded volume before it can be displayed.
Increasing this value reduces noise and emphasizes higher-activity areas.
Minimum Absolute Delta
Requires a minimum difference between buy and sell volume.
Higher values focus on stronger directional pressure.
Aggression Ratio
Measures how dominant one side is relative to the other.
Example:
Ratio = 2.0
Buy Volume = 100
Sell Volume = 50
The row qualifies because buyers traded at least twice the volume of sellers.
Aggressive Rows Only
When enabled, only rows meeting the aggression ratio requirement are displayed.
When disabled, rows may still qualify through volume and delta thresholds alone.
Visual Features
•Heatmap-style overlays
•Custom buy and sell colors
•Optional footprint Point of Control (POC) highlighting
•Adjustable historical display window
•Adjustable heatmap persistence
•Optional row volume and delta labels
•Heat intensity can be customized through the selected color and opacity settings.
Suggested Applications
This indicator may be useful for:
•Identifying areas of concentrated participation
•Monitoring directional pressure within a move
•Comparing buyer and seller dominance at specific price levels
•Studying footprint behavior around support and resistance
•Evaluating activity near supply and demand zones
•Visualizing market response after large directional candles
Notes
This indicator uses TradingView footprint data.
It does not use Level 2, DOM, or market-by-order data.
It does not identify individual trades or individual order sizes.
Results may vary depending on symbol, exchange data, and footprint resolution settings.
The snapshots above show the heatblocks hidden by the candles, but in use they appear in front of the candles. Indicador

Indicador

Adaptive Structural Trail Order Flow, Imbalance & RegimeAdaptive Structural Trail — Order Flow, Imbalance & Regime
What it is
Adaptive Structural Trail is a single, self-contained market-structure framework that re-clocks the chart by participation instead of time, marks the imbalances that real activity leaves behind, lets order flow decide which of those levels still matter, asks a regime filter whether trending behaviour can be trusted right now, and trails the strongest surviving level as an adaptive stop — all summarised in a plain-language dashboard that tells you, at a glance, whether the picture says ride, wait, or stand aside.
It is designed to be market-agnostic: every raw input (price, volume, and the volatility-index reference) is user-selectable, so the same logic runs on index futures, equities, FX, crypto or commodities without touching the code. Defaults are set for NIFTY index futures; change the volatility symbol and (if needed) the volume source for other instruments.
Why the components are combined (this is one tool, not a bundle)
Each layer measures a different facet of one process — activity creating structure, structure decaying or being defended, and a regime deciding whether to act. They are not independent indicators stacked for visual effect; remove any one and the others lose their meaning:
Delta clock (the substrate). A virtual bar closes only when cumulative signed volume becomes statistically significant (σ × a multiplier). Every downstream reading is therefore spaced by participation, not by the clock — a quiet 10 minutes and a violent 10 seconds are treated differently, which is the whole point.
Imbalance / fair-value-gap detection runs on those virtual bars, so a level is recorded only where genuine activity gapped price, not on arbitrary time bars.
Order-flow lifecycle (charge → decay → breaker/dead). When price returns to a level, delta adjudicates the outcome: absorbed-and-defended levels are reborn as breakers; levels that are surged through are killed. Flow decides what structure survives.
Regime gate (efficiency ratio + volatility burst). This routes everything. The trail is shown and signals arm only where trend behaviour is statistically credible; in range/transition/high-volatility states the tool deliberately stands aside.
Confidence fusion. Structure strength, cumulative-delta slope and flow toxicity (VPIN) are blended into one confidence number, which the dashboard converts into a plain instruction.
That coupling — a volume-significance clock feeding imbalance detection whose survival is adjudicated by order flow and gated by regime, fused into a single trailing level and a decision read-out — is the original contribution here.
How to use it
Add it to any liquid instrument. It is built for intraday timeframes (1–15 min is the sweet spot on index futures).
Read the dashboard top-down: the ACTION banner is the headline (e.g. LONG · ride the trail, RANGE · stand aside). Below it: bias + confidence, market state, the actual trail-stop price, order flow, flow toxicity, volatility context, and a plain "what to do" line.
Treat the coloured trail as a structure-based stop while the market state is a trend; when the state leaves trend, the trail disappears by design.
The imbalance zones show where unfilled activity sits; fresh, tapped and breaker levels are colour-coded (see the on-chart legend).
Edge-calibration panel (bottom-right): for transparency it scores past signals against a regime-matched base rate and reports EDGE = Hit − Base with a 95% confidence interval. Read the Edge column, not the raw hit-rate. This is descriptive of the past on your symbol — not a backtest and not a forward guarantee.
Key-info panel (top-left): instrument, timeframe, the live data source (see honesty note), threshold, ATR and level counts.
Honest note on data (please read)
TradingView exposes no true tick-by-tick aggressor delta and cannot build custom bars, so delta here is a proxy: signed intrabar volume taken from the finest lower timeframe your data plan returns — 1-second where available, otherwise 1-minute — falling back to bar-shape when no lower-timeframe data exists. The live source is shown as "Delta source" in the Key-info panel, so you always know which mode is active. Non-repaint: the delta clock advances and structure/regime/signals resolve only on confirmed bars; the trail line itself updates within the forming bar as a current estimate.
Originality
The novelty is the synthesis and coupling, not any single classical block. A participation clock is used to gate imbalance detection; order flow is used to adjudicate level survival; regime is used to route the entire read; and the whole thing collapses into one trailing level plus a decision dashboard and a self-calibration panel. Every raw input is user-selectable so the framework generalises across markets.
Concept credits
This tool synthesises well-established, publicly documented ideas; credit to their originators:
Information / volume-driven bars & VPIN flow toxicity — Marcos López de Prado; Easley, López de Prado & O'Hara.
Efficiency Ratio (trend vs. noise) — Perry J. Kaufman.
Trade-side classification (tick rule) — Lee & Ready.
Market impact & absorption (square-root law) — Almgren; Tóth & Bouchaud.
Wilson score interval (small-sample proportion CI) — E. B. Wilson.
Imbalance / fair-value-gap and trailing-stop concepts are long-standing, widely used market-structure ideas. The synthesis and the Pine implementation are the author's own.
Exported outputs (for use in other scripts)
Available via input.source() in any other indicator, with clean generic names: Bias Score (signed conviction, ±10), Trail Stop, Trail Direction, Regime State, Confidence, Leading Strength, CVD Slope, Flow Toxicity, Cumulative Delta, Volatility ROC, Volatility Bias.
Disclaimer
For research and education only. This is an analytical tool — not financial advice, not a signal service, and not a guarantee of future results. No indicator has an inherent edge; validate with your own testing, apply realistic costs, and manage risk. You are solely responsible for your trading decisions. Indicador

ORDER BOOKorder book vp
order book vp is a visual trading tool designed to read volume, buy pressure, sell pressure, and important price zones directly on the chart.
it combines a visual order book panel, a volume profile, an intrabar buy / sell engine, delta tracking, poc, value area, hvn / lvn zones, quantity labels on candles, and a compact dashboard.
the goal is simple: help the trader see where volume is building, where price is reacting, where buyers dominate, where sellers dominate, and which price zones can become important decision areas.
important: pine script does not have access to real level 2 order book data or resting limit orders. this tool does not display real exchange depth. it builds an order book style view from traded volume, volume-at-price, and intrabar analysis.
this gives a clean reading of traded flow, not a promise of real exchange order book depth.
---
main features
order book panel
shows a price ladder with levels around the current price. levels above price represent ask / sell pressure. levels below price represent bid / buy pressure.
fast order book effect
adds a fast reactive effect to the panel. the panel reacts to current buy / sell pressure, volume, candle body, and close position inside the candle.
volume profile
displays traded volume by price level. this helps identify where the market has exchanged the most volume.
poc
the point of control shows the price level with the highest volume inside the selected lookback window. it is often an equilibrium, reaction, or decision zone.
vah and val
vah is the upper boundary of the value area.
val is the lower boundary of the value area.
these levels help define the main area where the market built volume.
hvn and lvn
hvn means high volume node.
lvn means low volume node.
hvn zones can act as acceptance areas. lvn zones can act as rejection areas, acceleration zones, or liquidity gaps.
quantity labels
shows traded quantity on recent candles, with delta if enabled. green labels show buy dominance. red labels show sell dominance.
delta candle coloring
colors candles based on buy / sell delta dominance.
dashboard
summarizes important data: poc, vah, val, current candle buy / sell, delta, cvd, pressure, and intrabar source.
---
inputs guide
intrabar timeframe
lower timeframe used to estimate buy and sell volume. the lower the timeframe, the more detailed the reading. for example, on a 15 minute chart, using 1 minute gives a finer intrabar view.
lookback
number of candles used to build the volume profile. a higher value gives a broader view. a lower value makes the profile more reactive.
price levels
number of rows used in the volume profile. more rows give more precision, but also use more resources.
show order book panel
turns the order book panel on or off.
visible levels
number of price levels displayed inside the order book panel.
depth bar length
visual length of the depth bars inside the order book panel.
panel position
sets the position of the order book panel on the chart.
detect walls
enables detection of large volume levels.
wall multiplier
defines when a level is considered a wall compared to average level volume.
fast order book effect
turns on the fast reactive order book effect.
fast effect power
makes the order book effect more or less aggressive. higher values make the panel react faster.
fast level decay
controls how far the fast pressure effect spreads around the current price.
flash active levels
highlights active levels when buy or sell pressure is strong.
show volume profile
turns the volume profile on or off.
split buy / sell
splits the profile into buy volume and sell volume.
profile width
sets the visual width of the volume profile.
profile offset
sets the visual offset used for profile elements.
show poc
shows the point of control.
show value area
shows vah and val.
value area percent
sets the percentage used to calculate the value area.
mark hvn / lvn
shows high volume nodes and low volume nodes.
hvn multiplier
sets the threshold for high volume nodes.
lvn multiplier
sets the threshold for low volume nodes.
vp buy opacity
controls the opacity of the buy side of the volume profile.
vp sell opacity
controls the opacity of the sell side of the volume profile.
show quantity labels
turns quantity labels on or off.
on last n candles
defines how many recent candles display quantity labels.
show delta
shows buy minus sell delta inside the quantity labels.
quantity label spacing
increases or decreases the distance between candle labels and candles.
color candles by delta
colors candles based on delta dominance.
show dashboard
turns the small information panel on or off.
dashboard position
sets the position of the dashboard.
strong bar ratio
sets the threshold used for strong buy or strong sell alerts.
bid / buy
sets the buy side color.
ask / sell
sets the sell side color.
poc / accent
sets the poc and main accent color.
neutral
sets the neutral color.
---
how to use order book vp
start by choosing the asset and timeframe that match your trading style.
for scalping, use 1 minute, 3 minutes, 5 minutes, or 15 minutes.
for intraday trading, use 15 minutes, 30 minutes, or 1 hour.
for swing trading, use 4 hours or daily.
turn on the volume profile and watch the poc.
when price stays around the poc, the market is often balanced.
when price moves far away from the poc, the market may be in a displacement phase.
watch vah and val.
between vah and val, price is inside the main value area.
above vah, the market may be in bullish expansion or excess.
below val, the market may be in bearish expansion or excess.
watch hvn zones.
an hvn is a zone where a lot of volume was traded. price can return to this area because it represents acceptance.
watch lvn zones.
an lvn is a zone where little volume was traded. price can move quickly through these areas because there is less acceptance.
watch the order book panel.
if buy levels become stronger below price, it can show buying pressure.
if sell levels become stronger above price, it can show selling pressure.
watch the candle quantity labels.
positive delta means more buy volume.
negative delta means more sell volume.
if price rises with positive delta, buyers are supporting the move.
if price rises while delta turns negative, it can show weakness or absorption.
watch cvd inside the dashboard.
rising cvd shows cumulative buy pressure.
falling cvd shows cumulative sell pressure.
---
simple beginner workflow
1. find the poc.
2. find vah and val.
3. check if price is inside or outside the value area.
4. check if the order book panel shows more buy pressure or sell pressure.
5. confirm with the quantity labels on candles.
6. look for reactions around poc, vah, val, hvn, or lvn.
7. always use a stop loss and risk management.
---
scalping example
on a lower timeframe, order book vp can help identify fast reaction zones.
example:
price comes into val.
the order book panel shows buy pressure.
candle labels show positive delta.
price rejects val.
this can become a long scalp observation zone if market structure confirms.
another example:
price comes into vah.
the order book panel shows sell pressure.
candle labels turn red.
price rejects vah.
this can become a short scalp observation zone if market structure confirms.
---
intraday example
on a medium timeframe, the tool helps identify important volume zones.
if price returns to the poc, it may react because this level is the center of traded volume.
if price breaks above vah with buy pressure, continuation can become possible.
if price breaks below val with sell pressure, bearish continuation can become possible.
---
swing trading example
on higher timeframes, the volume profile helps identify major acceptance and rejection zones.
hvn zones can act as return zones.
lvn zones can act as acceleration zones.
the poc can act as a major equilibrium level.
---
beginner settings
intrabar timeframe: 1
lookback: 300
price levels: 80
visible levels: 16
show order book panel: on
fast order book effect: on
show volume profile: on
split buy / sell: on
show poc: on
show value area: on
mark hvn / lvn: on
vp buy opacity: 25
vp sell opacity: 25
show quantity labels: on
show delta: on
color candles by delta: off
show dashboard: on
this setup keeps the chart complete while staying readable.
---
important notes
do not take a trade only because the panel turns green or red.
use the panel as pressure confirmation, not as a standalone signal.
the most important levels to watch are usually poc, vah, val, hvn, and lvn.
a clean reaction on a level with matching delta is more useful than an isolated signal.
the larger the volume window, the more important the level can become.
order book vp is built to give a clear view of traded flow, volume by price, and buy / sell pressure, so the chart becomes a decision map instead of a random price display.
Indicador

Indicador

Heisenberg Uncertainty Bands [JOAT]HEISENBERG UNCERTAINTY BANDS
A novel band-and-state engine inspired by the Heisenberg uncertainty principle: the recognition that for a market, just as for a quantum particle, you cannot simultaneously be certain about both position (where price is) and momentum (how fast it is moving). Heisenberg Uncertainty Bands measures both uncertainties, tracks their empirical floor, classifies the current market into one of three quantum-inspired states — pure position |x⟩, pure momentum |p⟩, or mixed |ψ⟩ — and projects bands around price accordingly.
The principle, translated
In quantum mechanics, Δx · Δp ≥ ℏ/2 — the product of the position uncertainty and the momentum uncertainty cannot fall below a constant called Planck's reduced. For markets the analogue is:
Δx — the rolling standard deviation of price over a configurable window. The uncertainty in where price is sitting.
Δp — the rolling standard deviation of returns (log or arithmetic, configurable) over a separate window. The uncertainty in how fast price is moving.
ℏ̂ (hbar-hat) — the EMA-smoothed long-run product Δx · Δp. The script's empirical estimate of the market-specific lower bound.
Just like in physics, when the market is certain about position (price has been stable), it becomes uncertain about momentum (next direction is unknown) — and vice versa. The script measures both, computes the product, compares it to the empirical floor, and uses the ratio Δx/Δp as the state classifier.
Three quantum states
Pure Position State |x⟩ — Δx/Δp below the position threshold (default 0.40). Price is constrained to a tight band; the next directional move is uncertain. Yellow palette.
Pure Momentum State |p⟩ — Δp/Δx below the momentum threshold (default 0.40). Direction is committed; the range is widening. Magenta palette.
Mixed State |ψ⟩ — neither pure state condition holds. Violet palette.
The state badge on the right of the chart shows the bra-ket glyph (Unicode |x⟩ / |p⟩ / |ψ⟩ by default; can fall back to plain POS / MOM / MIX if your font lacks the brackets). A state cooldown (default 3 bars) debounces flicker.
Band projection
Two band families are projected around the live mid price:
Position bands — mid ± k × Δx. Solid by default. The classic "how wide is price ranging right now" envelope.
Momentum bands — mid ± k × (Δp scaled to the price axis). Dashed by default (configurable: Dashed / Dotted / Solid). Projected so their visual range matches the position bands.
When the two families are far apart in width, the state is decisive (|x⟩ if position is much tighter, |p⟩ if momentum is much tighter). When they are similar, the state is mixed.
Optional uncertainty-score candle tint
A toggleable layer recolours each candle based on how far the current Δx · Δp product deviates from the empirical floor ℏ̂. When the product is at the floor, the market is at its quantum-mechanical minimum — the most decisive setup; further from the floor means the market is "spending uncertainty" on both axes simultaneously.
Visual system
Position bands (solid, gradient fill optional).
Momentum bands (dashed / dotted / solid).
Mid line (style configurable).
State badge (right-side floating, configurable offset and size).
Background tint by state (configurable transparency, institutional default).
Optional candle re-tint by uncertainty score.
A locked Plasma palette (yellow position / magenta momentum / violet mixed on a deep-void ground) gives the chart a distinctive physics-inspired identity.
Dashboard
Monospaced table, positionable to any of nine corners, optional compact-no-header mode. Surfaces:
Current Δx and Δp values.
Δx · Δp product and its ratio to the ℏ̂ floor.
Δx / Δp ratio (drives the state).
Current state (|x⟩ / |p⟩ / |ψ⟩) with bar age.
Last state change with bars-ago.
Return mode (Log / Arithmetic) in use.
Alerts
Three alert conditions:
Pure Position State entry
Pure Momentum State entry
Mixed State return
How to read it
Two reads, in order of conviction:
Pure Momentum State |p⟩ entry is the script's directional commitment signal. Momentum has decisively exceeded position uncertainty — the move is real. Trend-following tools and breakout entries become high-conviction.
Pure Position State |x⟩ is the coil. Range has clamped down, direction is undecided. Reversion tools become high-conviction inside the band; the next state transition (back to |ψ⟩ or jumping to |p⟩) often produces a decisive breakout.
When Δx · Δp is close to ℏ̂ (the empirical floor) the market is at its most efficient — there is no slack in either axis to spare. These bars often coincide with the cleanest reversals and breakouts; the candle-tint layer is there specifically to highlight them.
Suggested settings
Defaults (position window 20, momentum window 20, hbar smoothing 100, k = 2.0, state threshold 0.40) are tuned for 15m–4H on liquid markets. For lower timeframes drop both windows to 10–14. For HTF (4H+) raise both to 30–50. Log returns are the theoretically-correct mode and the recommended default; switch to Arithmetic only if your instrument has trivially small price scale.
Originality
The implementation — the Δx / Δp dual-uncertainty pipeline, the EMA-smoothed empirical ℏ̂ floor, the three-state quantum-inspired classifier with bra-ket labelling, the dual-band projection with auto-scale, the uncertainty-score candle tint, the cooldown-debounced state machine, and the plasma palette — is JOAT-original. No third-party code reused. The Heisenberg principle is fundamental physics; the financial-market analogue and its implementation here are original work.
Limitations
The Heisenberg analogy is structural, not literal — markets do not obey the quantum-mechanical commutator relation; the script uses the concept of an inviolable joint-uncertainty floor as a market-regime classifier. The empirical floor ℏ̂ is estimated by EMA over a long window (default 100 bars) — on instruments with very short history the floor is approximate. State classification can flicker across the threshold; the cooldown is there to suppress this and is tunable.
—
-made with passion by jackofalltrades
Indicador

Flow-Efficiency OscillatorFlow-Efficiency Oscillator
Overview
How much order flow did it cost to move price one tick? It measures signed volume (delta) consumed per tick of travel, then percentile-ranks that cost into a 0–100 read. High = expensive / heavy (lots of delta, little movement — the signature of absorption). Low = cheap / efficient (little delta, large movement — thin, frictionless travel). A study of effort-versus-result in the tape — not a directional signal.
Why these parts are ONE tool (mashup rationale)
A CVD line shows net flow; a volume study shows size; neither expresses the exchange rate between flow and price — and that ratio is where absorption hides. This chains: lower-timeframe delta reconstructs intrabar effort → a cost ratio divides effort by tick travel → percentile ranking makes it universal (0–100) → an absorption flag fires only when cost is high and flow leaned hard one way yet price stalled → the harness tests whether price then moves against the absorbed aggressor. Effort alone is just volume; the ratio without ranking isn't comparable; the flag without calibration is folklore.
How it works
Inside each bar, lower-timeframe bars are signed by the tick rule and summed into a bar delta; their absolute volume is total aggression. Cost = |delta| / max(tick travel, floor), smoothed, then percentile-ranked over a lookback (50 = median cost). Absorption arms when cost is in the high band while net delta is strongly one-sided. The harness logs each event and checks a ≥ k×ATR move against the aggressor a fixed horizon later.
How to use
High band (above the upper guide) = absorption / heavy tape, where a strong push is being eaten and reversals have context; low band = efficient tape, where moves travel freely and continuation is favoured. The absorption dots mark high-cost, one-sided stalls. Then read the Edge row. Context, never a standalone trigger.
Originality
CVD and the tick rule are public; the original work is the cost-per-tick exchange rate, its percentile normalisation, the absorption logic, and the forward calibration of absorption→reversal. No third-party code is reused.
Concept credit
Tick-rule trade sign — Lee & Ready (1991). Flow-toxicity / cost-of-trading framing draws on Easley, López de Prado & O'Hara. The ratio, percentile read and harness are this script's own.
Honesty / limitations
The buy/sell split is a tick-rule estimate from lower-timeframe bars, not true bid/ask data — delta is approximate. This is an intraday tool: it needs a timeframe below the chart's, warms up slowly, and is heavier than a single-series oscillator; on daily+ or volume-less feeds the read degrades. Edge figures are in-sample, no costs — context, not a backtest.
Disclaimer
Research / educational only. NOT financial advice; no guarantee of profitability. Trading carries risk of loss. Test out-of-sample. The author accepts no liability. Indicador
