Singular and Cumulative Volume Delta (SVD+CVD)This a Volume Delta indicator with Cumulative Volume Delta.
I have been studying Volume Delta and CVD trading strategies and indicator styles.
This implementation was developed to test a basic trailing window / oscillator approach.
Script has been republished as public and searchable.
Changelog from private era follows.
Jun 9 (2022)
Release Notes:
Added option to use EMA/SMA based cumulation. This will not scale well with singular data, so default view is still SUM.
Jun 9 (2022)
Release Notes:
Outdated comment correction.
Jun 9 (2022)
Release Notes:
Added default option to normalilze visual scale of MA cumulation types. The averaging creates a singular value sized results, instead of a range-sums. This multiples that candle result by the range length to get a range-sum sized result.
Added option to scale the cumulation size relative to the volume size. 1-to-1 scaling creates singular deltas that can be hard to see with all options on. This allows you to beef them up for visual or weighting purposes.
Jun 15 (2022)
Release Notes: * Added break even level for current delta. Tells where current delta must land for cumulative delta to stay flat.
* Added comparison of historical cumulative levels to current level. The historical levels are the initial values going into current accumulation window.
* Changed title of indicator to be more generic, clear, and searchable.
Jun 15 (2022)
Release Notes: * Added option to have the cumulation cutoff line AFTER or OVER the end of the cumulation window. This change is to ensure the indicator clearly documents it's behavior and avoids confusion on this / last cumulation window semantics.
* Bugfix: Initial levels were pulled from cumulation line which was AFTER end of window. This has been changed to the initial values INSIDE the cumulation window.
* Code cleanup.
June 17th (2022)
Release Notes: Marked as beta because TV confirmed they no longer allow private scripts to be changed to public. (Despite lingering documentation that says otherwise.
June 17th (2022)
Re-published as public.
Recherche dans les scripts pour "VOLUME DELTA"
Tape [LucF]█ OVERVIEW
This script prints an ersatz of a trading console's "tape" section to the right of your chart. It displays the time, price and volume of each update of the chart's feed. It also calculates volume delta for the bar. As it calculates from realtime information, it will not display information on historical bars.
█ FEATURES
Calculations
Each new line in the tape displays the last price/volume update from the TradingView feed that's building your chart. These updates do not necessarily correspond to ticks from the originating broker/exchange's matching engine. Multiple broker/exchange ticks are often aggregated in one chart update.
The script first determines if price has moved up or down since the last update. The polarity of the price change, in turn, determines the polarity of the volume for that specific update. If price does not move between consecutive updates, then the last known polarity is used. Using this method, we can calculate a running volume delta accumulation for the bar, which becomes the bar's final volume delta value when the bar closes (you can inspect values of elapsed realtime bars in the Data Window or the indicator's values). Note that these values will all reset if the script re-executes because of a change in inputs or a chart refresh.
While this method of calculating volume delta is not perfect, it is currently the most precise way of calculating volume delta available on TradingView at the moment. Calculating more precise results would require scripts to have access to bid/ask levels from any chart timeframe. Charts at seconds timeframes do use exchange/broker ticks when the feeds you are using allow for it, and this indicator will run on them, but tick data is not yet available from higher timeframes, for now. Also note that the method used in this script is far superior to the intrabar inspection technique used on historical bars in my other "Delta Volume" indicators. This is because volume delta here is calculated from many more realtime updates than the available intrabars in history.
Inputs
You can use the script's inputs to configure:
• The number of lines displayed in the tape.
• If new lines appear at the top or bottom.
• If you want to hide lines with low volume.
• The precision of volume values.
• The size of the text and the colors used to highlight either the tape's text or background.
• The position where you want the tape on your chart.
• Conditions triggering three different markers.
Display
Deltas are shown at the bottom of the tape. They are reset on each bar. Time delta displays the time elapsed since the beginning of the bar, on intraday timeframes only. Contrary to the price change display by TradingView at the top left of charts, which is calculated from the close of the previous bar, the price delta in the tape is calculated from the bar's open, because that's the information used in the calculation of volume delta. The time will become orange when volume delta's polarity diverges from that of the bar. The volume delta value represents the current, cumulative value for the bar. Its color reflects its polarity.
When new realtime bars appear on the chart, a ↻ symbol will appear before the volume value in tape lines.
Markers
There are three types of markers you can choose to display:
• Marker 1 on volume bumps. A bump is defined as two consecutive and increasing/decreasing plus/minus delta volume values,
when no divergence between the polarity of delta volume and the bar occurs on the second bar.
• Marker 2 on volume delta for the bar exceeding a limit of your choice when there is no divergence between the polarity of delta volume and the bar. These trigger at the bar's close.
• Marker 3 on tape lines with volume exceeding a threshold. These trigger in realtime. Be sure to set a threshold high enough so that it doesn't generate too many alerts.
These markers will only display briefly under the bar, but another marker appears next to the relevant line in the tape.
The marker conditions are used to trigger alerts configured on the script. Alert messages will mention the marker(s) that triggered the specific alert event, along with the relevant volume value that triggered the marker. If more than one marker triggers a single alert, they will overprint under the bar, which can make it difficult to distinguish them.
For more detailed on-chart analysis of realtime volume delta, see my Delta Volume Realtime Action .
█ NOTES FOR CODERS
This script showcases two new Pine features:
• Tables, which allow Pine programmers to display tabular information in fixed locations of the chart. The tape uses this feature.
See the Pine User Manual's page on Tables for more information.
• varip -type variables which we can use to save values between realtime updates.
See the " Using `varip` variables " publication by PineCoders for more information.
Trailing Cumulative Volume DeltaShort Description:
A dynamic volume delta indicator that calculates a trailing sum of net buying/selling pressure over a user-defined number of recent bars, offering a more adaptive view of order flow momentum compared to fixed-anchor CVD.
Overview:
The Trailing Cumulative Volume Delta (TCVD) indicator provides a powerful way to analyze market sentiment by tracking the net difference between buying and selling volume. Unlike traditional Cumulative Volume Delta (CVD) indicators that typically reset at fixed intervals (e.g., daily, weekly), the TCVD calculates a rolling sum of volume delta over a specified number of recent bars. This "trailing" approach offers a more fluid and responsive measure of recent order flow dynamics.
How it Works:
Per-Bar Delta Calculation: For each bar on your chart, the indicator first calculates the net Volume Delta. This is done by looking at a finer, user-configurable Lower Timeframe (e.g., 1-minute data for a 15-minute chart bar) to determine the aggressive buying vs. selling volume within that bar.
Trailing Sum: The indicator then sums these individual per-bar net deltas over a user-defined Trailing Bars lookback period. For example, if "Trailing Bars" is set to 20, the TCVD value will represent the cumulative net delta of the last 20 bars.
Visualization:
The TCVD is plotted in a "MACD-Columns-Style" in a separate pane.
Teal: When the TCVD value is increasing (suggesting growing net buying pressure or diminishing net selling pressure over the trailing period).
Red: When the TCVD value is decreasing (suggesting growing net selling pressure or diminishing net buying pressure over the trailing period).
White: When it is returning to the mean.
How to Interpret and Use TCVD:
Trend Strength & Momentum:
A rising TCVD suggests that, on average over the trailing period, buying pressure is dominant or strengthening. This can confirm bullish price action or indicate underlying strength.
A falling TCVD suggests that selling pressure is dominant or strengthening, potentially confirming bearish price action or indicating weakness.
Divergences:
Unlike other Divergences, the CVD has two different types of Divergences: a) Absorption and b) Exhaustion. You only want to trade the Absorption pattern.
Zero Line Crossovers:
TCVD crossing above the zero line can indicate a shift towards net positive buying pressure over the lookback period.
TCVD crossing below the zero line can indicate a shift towards net positive selling pressure.
Confirmation: Use TCVD to confirm breakouts or breakdowns. A price breakout accompanied by a strongly rising TCVD is generally more reliable.
Key Settings:
Trailing Bars: (Default: 10)
Determines the number of recent bars to include in the cumulative delta sum.
Shorter periods make the TCVD more responsive to immediate changes.
Longer periods provide a smoother, longer-term view of order flow.
Use custom timeframe: (Checkbox, Default: false)
Allows you to override the automatic selection of the lower timeframe for delta calculation.
Timeframe for Delta Calculation: (Default: "1" - 1 minute)
Specifies the lower timeframe data used to calculate the volume delta for each individual chart bar.
Choosing a very fine timeframe (e.g., seconds) can provide high precision but may be limited by data availability or processing load.
If "Use custom timeframe" is unchecked, the script attempts to choose a sensible default based on your chart's timeframe (e.g., "1S" for second charts, "1" for intraday, "5" for daily, "60" for weekly+).
Examples:
Confirming Breakout Strength:
Price breaks out above a significant resistance level.
If the TCVD is also sharply rising and has perhaps crossed above its zero line, it provides confirmation that strong buying interest is fueling the breakout, increasing confidence in its validity.
Important Notes:
This indicator requires reliable volume data from your broker/data feed to function correctly. If your chart does not have volume, or if the volume data is unreliable, the TCVD will not be accurate.
Like all indicators, TCVD is best used as part of a comprehensive trading strategy, in conjunction with price action analysis and other indicators or tools.
Experiment with the Trailing Bars and Timeframe for Delta Calculation settings to find what best suits your trading style, the asset you are analyzing, and the chart timeframe you are using.
Feel free to modify this, add your personal touch, or include specific screenshots when you publish!
CVD - Cumulative Volume Delta Candles█ OVERVIEW
This indicator displays cumulative volume delta in candle form. It uses intrabar information to obtain more precise volume delta information than methods using only the chart's timeframe.
█ CONCEPTS
Bar polarity
By bar polarity , we mean the direction of a bar, which is determined by looking at the bar's close vs its open .
Intrabars
Intrabars are chart bars at a lower timeframe than the chart's. Each 1H chart bar of a 24x7 market will, for example, usually contain 60 bars at the lower timeframe of 1min, provided there was market activity during each minute of the hour. Mining information from intrabars can be useful in that it offers traders visibility on the activity inside a chart bar.
Lower timeframes (LTFs)
A lower timeframe is a timeframe that is smaller than the chart's timeframe. This script uses a LTF to access intrabars. The lower the LTF, the more intrabars are analyzed, but the less chart bars can display CVD information because there is a limit to the total number of intrabars that can be analyzed.
Volume delta
The volume delta concept divides a bar's volume in "up" and "down" volumes. The delta is calculated by subtracting down volume from up volume. Many calculation techniques exist to isolate up and down volume within a bar. The simplest techniques use the polarity of interbar price changes to assign their volume to up or down slots, e.g., On Balance Volume or the Klinger Oscillator . Others such as Chaikin Money Flow use assumptions based on a bar's OHLC values. The most precise calculation method uses tick data and assigns the volume of each tick to the up or down slot depending on whether the transaction occurs at the bid or ask price. While this technique is ideal, it requires huge amounts of data on historical bars, which usually limits the historical depth of charts and the number of symbols for which tick data is available.
This indicator uses intrabar analysis to achieve a compromise between the simplest and most precise methods of calculating volume delta. In the context where historical tick data is not yet available on TradingView, intrabar analysis is the most precise technique to calculate volume delta on historical bars on our charts. Our Volume Profile indicators use it. Other volume delta indicators in our Community Scripts such as the Realtime 5D Profile use realtime chart updates to achieve more precise volume delta calculations, but that method cannot be used on historical bars, so those indicators only work in real time.
This is the logic we use to assign intrabar volume to up or down slots:
• If the intrabar's open and close values are different, their relative position is used.
• If the intrabar's open and close values are the same, the difference between the intrabar's close and the previous intrabar's close is used.
• As a last resort, when there is no movement during an intrabar and it closes at the same price as the previous intrabar, the last known polarity is used.
Once all intrabars making up a chart bar have been analyzed and the up or down property of each intrabar's volume determined, the up volumes are added and the down volumes subtracted. The resulting value is volume delta for that chart bar.
█ FEATURES
CVD Candles
Cumulative Volume Delta Candles present volume delta information as it evolves during a period of time.
This is how each candle's levels are calculated:
• open : Each candle's' open level is the cumulative volume delta for the current period at the start of the bar.
This value becomes zero on the first candle following a CVD reset.
The candles after the first one always open where the previous candle closed.
The candle's high, low and close levels are then calculated by adding or subtracting a volume value to the open.
• high : The highest volume delta value found in intrabars. If it is not higher than the volume delta for the bar, then that candle will have no upper wick.
• low : The lowest volume delta value found in intrabars. If it is not lower than the volume delta for the bar, then that candle will have no lower wick.
• close : The aggregated volume delta for all intrabars. If volume delta is positive for the chart bar, then the candle's close will be higher than its open, and vice versa.
The candles are plotted in one of two configurable colors, depending on the polarity of volume delta for the bar.
CVD resets
The "cumulative" part of the indicator's name stems from the fact that calculations accumulate during a period of time. This allows you to analyze the progression of volume delta across manageable chunks, which is often more useful than looking at volume delta cumulated from the beginning of a chart's history.
You can configure the reset period using the "CVD Resets" input, which offers the following selections:
• None : Calculations do not reset.
• On a fixed higher timeframe : Calculations reset on the higher timeframe you select in the "Fixed higher timeframe" field.
• At a fixed time that you specify.
• At the beginning of the regular session .
• On a stepped higher timeframe : Calculations reset on a higher timeframe automatically stepped using the chart's timeframe and following these rules:
Chart TF HTF
< 1min 1H
< 3H 1D
<= 12H 1W
< 1W 1M
>= 1W 1Y
The indicator's background shows where resets occur.
Intrabar precision
The precision of calculations increases with the number of intrabars analyzed for each chart bar. It is controlled through the script's "Intrabar precision" input, which offers the following selections:
• Least precise, covering many chart bars
• Less precise, covering some chart bars
• More precise, covering less chart bars
• Most precise, 1min intrabars
As there is a limit to the number of intrabars that can be analyzed by a script, a tradeoff occurs between the number of intrabars analyzed per chart bar and the chart bars for which calculations are possible.
Total volume candles
You can choose to display candles showing the total intrabar volume for the chart bar. This provides you with more context to evaluate a bar's volume delta by showing it relative to the sum of intrabar volume. Note that because of the reasons explained in the "NOTES" section further down, the total volume is the sum of all intrabar volume rather than the volume of the bar at the chart's timeframe.
Total volume candles can be configured with their own up and down colors. You can also control the opacity of their bodies to make them more or less prominent. This publication's chart shows the indicator with total volume candles. They are turned off by default, so you will need to choose to display them in the script's inputs for them to plot.
Divergences
Divergences occur when the polarity of volume delta does not match that of the chart bar. You can identify divergences by coloring the CVD candles differently for them, or by coloring the indicator's background.
Information box
An information box in the lower-left corner of the indicator displays the HTF used for resets, the LTF used for intrabars, and the average quantity of intrabars per chart bar. You can hide the box using the script's inputs.
█ INTERPRETATION
The first thing to look at when analyzing CVD candles is the side of the zero line they are on, as this tells you if CVD is generally bullish or bearish. Next, one should consider the relative position of successive candles, just as you would with a price chart. Are successive candles trending up, down, or stagnating? Keep in mind that whatever trend you identify must be considered in the context of where it appears with regards to the zero line; an uptrend in a negative CVD (below the zero line) may not be as powerful as one taking place in positive CVD values, but it may also predate a movement into positive CVD territory. The same goes with stagnation; a trader in a long position will find stagnation in positive CVD territory less worrisome than stagnation under the zero line.
After consideration of the bigger picture, one can drill down into the details. Exactly what you are looking for in markets will, of course, depend on your trading methodology, but you may find it useful to:
• Evaluate volume delta for the bar in relation to price movement for that bar.
• Evaluate the proportion that volume delta represents of total volume.
• Notice divergences and if the chart's candle shape confirms a hesitation point, as a Doji would.
• Evaluate if the progress of CVD candles correlates with that of chart bars.
• Analyze the wicks. As with price candles, long wicks tend to indicate weakness.
Always keep in mind that unless you have chosen not to reset it, your CVD resets for each period, whether it is fixed or automatically stepped. Consequently, any trend from the preceding period must re-establish itself in the next.
█ NOTES
Know your volume
Traders using volume information should understand the volume data they are using: where it originates and what transactions it includes, as this can vary with instruments, sectors, exchanges, timeframes, and between historical and realtime bars. The information used to build a chart's bars and display volume comes from data providers (exchanges, brokers, etc.) who often maintain distinct feeds for intraday and end-of-day (EOD) timeframes. How volume data is assembled for the two feeds depends on how instruments are traded in that sector and/or the volume reporting policy for each feed. Instruments from crypto and forex markets, for example, will often display similar volume on both feeds. Stocks will often display variations because block trades or other types of trades may not be included in their intraday volume data. Futures will also typically display variations.
Note that as intraday vs EOD variations exist for historical bars on some instruments, differences may also exist between the realtime feeds used on intraday vs 1D or greater timeframes for those same assets. Realtime reporting rules will often be different from historical feed reporting rules, so variations between realtime feeds will often be different from the variations between historical feeds for the same instrument. The Volume X-ray indicator can help you analyze differences between intraday and EOD volumes for the instruments you trade.
If every unit of volume is both bought by a buyer and sold by a seller, how can volume delta make sense?
Traders who do not understand the mechanics of matching engines (the exchange software that matches orders from buyers and sellers) sometimes argue that the concept of volume delta is flawed, as every unit of volume is both bought and sold. While they are rigorously correct in stating that every unit of volume is both bought and sold, they overlook the fact that information can be mined by analyzing variations in the price of successive ticks, or in our case, intrabars.
Our calculations model the situation where, in fully automated order handling, market orders are generally matched to limit orders sitting in the order book. Buy market orders are matched to quotes at the ask level and sell market orders are matched to quotes at the bid level. As explained earlier, we use the same logic when comparing intrabar prices. While using intrabar analysis does not produce results as precise as when individual transactions — or ticks — are analyzed, results are much more precise than those of methods using only chart prices.
Not only does the concept underlying volume delta make sense, it provides a window on an oft-overlooked variable which, with price and time, is the only basic information representing market activity. Furthermore, because the calculation of volume delta also uses price and time variations, one could conceivably surmise that it can provide a more complete model than ones using price and time only. Whether or not volume delta can be useful in your trading practice, as usual, is for you to decide, as each trader's methodology is different.
For Pine Script™ coders
As our latest Polarity Divergences publication, this script uses the recently released request.security_lower_tf() Pine Script™ function discussed in this blog post . It works differently from the usual request.security() in that it can only be used at LTFs, and it returns an array containing one value per intrabar. This makes it much easier for programmers to access intrabar information.
Look first. Then leap.
Delta Volume Columns Pro [LucF]█ OVERVIEW
This indicator displays volume delta information calculated with intrabar inspection on historical bars, and feed updates when running in realtime. It is designed to run in a pane and can display either stacked buy/sell volume columns or a signal line which can be calculated and displayed in many different ways.
Five different models are offered to reveal different characteristics of the calculated volume delta information. Many options are offered to visualize the calculations, giving you much leeway in morphing the indicator's visuals to suit your needs. If you value delta volume information, I hope you will find the time required to master Delta Volume Columns Pro well worth the investment. I am confident that if you combine a proper understanding of the indicator's information with an intimate knowledge of the volume idiosyncrasies on the markets you trade, you can extract useful market intelligence using this tool.
█ WARNINGS
1. The indicator only works on markets where volume information is available,
Please validate that your symbol's feed carries volume information before asking me why the indicator doesn't plot values.
2. When you refresh your chart or re-execute the script on the chart, the indicator will repaint because elapsed realtime bars will then recalculate as historical bars.
3. Because the indicator uses different modes of calculation on historical and realtime bars, it's critical that you understand the differences between them. Details are provided further down.
4. Calculations using intrabar inspection on historical bars can only be done from some chart timeframes. See further down for a list of supported timeframes.
If the chart's timeframe is not supported, no historical volume delta will display.
█ CONCEPTS
Chart bars
Three different types of bars are used in charts:
1. Historical bars are bars that have already closed when the script executes on them.
2. The realtime bar is the current, incomplete bar where a script is running on an open market. There is only one active realtime bar on your chart at any given time.
The realtime bar is where alerts trigger.
3. Elapsed realtime bars are bars that were calculated when they were realtime bars but have since closed.
When a script re-executes on a chart because the browser tab is refreshed or some of its inputs are changed, elapsed realtime bars are recalculated as historical bars.
Why does this indicator use two modes of calculation?
Historical bars on TradingView charts contain OHLCV data only, which is insufficient to calculate volume delta on them with any level of precision. To mine more detailed information from those bars we look at intrabars , i.e., bars from a smaller timeframe (we call it the intrabar timeframe ) that are contained in one chart bar. If your chart Is running at 1D on a 24x7 market for example, most 1D chart bars will contain 24 underlying 1H bars in their dilation. On historical bars, this indicator looks at those intrabars to amass volume delta information. If the intrabar is up, its volume goes in the Buy bin, and inversely for the Sell bin. When price does not move on an intrabar, the polarity of the last known movement is used to determine in which bin its volume goes.
In realtime, we have access to price and volume change for each update of the chart. Because a 1D chart bar can be updated tens of thousands of times during the day, volume delta calculations on those updates is much more precise. This precision, however, comes at a price:
— The script must be running on the chart for it to keep calculating in realtime.
— If you refresh your chart you will lose all accumulated realtime calculations on elapsed realtime bars, and the realtime bar.
Elapsed realtime bars will recalculate as historical bars, i.e., using intrabar inspection, and the realtime bar's calculations will reset.
When the script recalculates elapsed realtime bars as historical bars, the values on those bars will change, which means the script repaints in those conditions.
— When the indicator first calculates on a chart containing an incomplete realtime bar, it will count ALL the existing volume on the bar as Buy or Sell volume,
depending on the polarity of the bar at that point. This will skew calculations for that first bar. Scripts have no access to the history of a realtime bar's previous updates,
and intrabar inspection cannot be used on realtime bars, so this is the only to go about this.
— Even if alerts only trigger upon confirmation of their conditions after the realtime bar closes, they are repainting alerts
because they would perhaps not have calculated the same way using intrabar inspection.
— On markets like stocks that often have different EOD and intraday feeds and volume information,
the volume's scale may not be the same for the realtime bar if your chart is at 1D, for example,
and the indicator is using an intraday timeframe to calculate on historical bars.
— Any chart timeframe can be used in realtime mode, but plots that include moving averages in their calculations may require many elapsed realtime bars before they can calculate.
You might prefer drastically reducing the periods of the moving averages, or using the volume columns mode, which displays instant values, instead of the line.
Volume Delta Balances
This indicator uses a variety of methods to evaluate five volume delta balances and derive other values from those balances. The five balances are:
1 — On Bar Balance : This is the only balance using instant values; it is simply the subtraction of the Sell volume from the Buy volume on the bar.
2 — Average Balance : Calculates a distinct EMA for both the Buy and Sell volumes, and subtracts the Sell EMA from the Buy EMA.
3 — Momentum Balance : Starts by calculating, separately for both Buy and Sell volumes, the difference between the same EMAs used in "Average Balance" and
an SMA of double the period used for the "Average Balance" EMAs. The difference for the Sell side is subtracted from the difference for the Buy side,
and an RSI of that value is calculated and brought over the −50/+50 scale.
4 — Relative Balance : The reference values used in the calculation are the Buy and Sell EMAs used in the "Average Balance".
From those, we calculate two intermediate values using how much the instant Buy and Sell volumes on the bar exceed their respective EMA — but with a twist.
If the bar's Buy volume does not exceed the EMA of Buy volume, a zero value is used. The same goes for the Sell volume with the EMA of Sell volume.
Once we have our two intermediate values for the Buy and Sell volumes exceeding their respective MA, we subtract them. The final "Relative Balance" value is an ALMA of that subtraction.
The rationale behind using zero values when the bar's Buy/Sell volume does not exceed its EMA is to only take into account the more significant volume.
If both instant volume values exceed their MA, then the difference between the two is the signal's value.
The signal is called "relative" because the intermediate values are the difference between the instant Buy/Sell volumes and their respective MA.
This balance flatlines when the bar's Buy/Sell volumes do not exceed their EMAs, which makes it useful to spot areas where trader interest dwindles, such as consolidations.
The smaller the period of the final value's ALMA, the more easily you will see the balance flatline. These flat zones should be considered no-trade zones.
5 — Percent Balance : This balance is the ALMA of the ratio of the "On Bar Balance" value, i.e., the volume delta balance on the bar (which can be positive or negative),
over the total volume for that bar.
From the balances and marker conditions, two more values are calculated:
1 — Marker Bias : It sums the up/down (+1/‒1) occurrences of the markers 1 to 4 over a period you define, so it ranges from −4 to +4, times the period.
Its calculation will depend on the modes used to calculate markers 3 and 4.
2 — Combined Balances : This is the sum of the bull/bear (+1/−1) states of each of the five balances, so it ranges from −5 to +5.
█ FEATURES
The indicator has two main modes of operation: Columns and Line .
Columns
• In Columns mode you can display stacked Buy/Sell volume columns.
• The buy section always appears above the centerline, the sell section below.
• The top and bottom sections can be colored independently using eight different methods.
• The EMAs of the Buy/Sell values can be displayed (these are the same EMAs used to calculate the "Average Balance").
Line
• Displays one of seven signals: the five balances or one of two complementary values, i.e., the "Marker Bias" or the "Combined Balances".
• You can color the line and its fill using independent calculation modes to pack more information in the display.
You can thus appraise the state of 3 different values using the line itself, its color and the color of its fill.
• A "Divergence Levels" feature will use the line to automatically draw expanding levels on divergence events.
Default settings
Using the indicator's default settings, this is the information displayed:
• The line is calculated on the "Average Balance".
• The line's color is determined by the bull/bear state of the "Percent Balance".
• The line's fill gradient is determined by the advances/declines of the "Momentum Balance".
• The orange divergence dots are calculated using discrepancies between the polarity of the "On Bar Balance" and the chart's bar.
• The divergence levels are determined using the line's level when a divergence occurs.
• The background's fill gradient is calculated on advances/declines of the "Marker Bias".
• The chart bars are colored using advances/declines of the "Relative Balance". Divergences are shown in orange.
• The intrabar timeframe is automatically determined from the chart's timeframe so that a minimum of 50 intrabars are used to calculate volume delta on historical bars.
Alerts
The configuration of the marker conditions explained further is what determines the conditions that will trigger alerts created from this script. Note that simply selecting the display of markers does not create alerts. To create an alert on this script, you must use ALT-A from the chart. You can create multiple alerts triggering on different conditions from this same script; simply configure the markers so they define the trigger conditions for each alert before creating the alert. The configuration of the script's inputs is saved with the alert, so from then on you can change them without affecting the alert. Alert messages will mention the marker(s) that triggered the specific alert event. Keep in mind, when creating alerts on small chart timeframes, that discrepancies between alert triggers and markers displayed on your chart are to be expected. This is because the alert and your chart are running two distinct instances of the indicator on different servers and different feeds. Also keep in mind that while alerts only trigger on confirmed conditions, they are calculated using realtime calculation mode, which entails that if you refresh your chart and elapsed realtime bars recalculate as historical bars using intrabar inspection, markers will not appear in the same places they appeared in realtime. So it's important to understand that even though the alert conditions are confirmed when they trigger, these alerts will repaint.
Let's go through the sections of the script's inputs.
Columns
The size of the Buy/Sell columns always represents their respective importance on the bar, but the coloring mode for tops and bottoms is independent. The default setup uses a standard coloring mode where the Buy/Sell columns are always in the bull/bear color with a higher intensity for the winning side. Seven other coloring modes allow you to pack more information in the columns. When choosing to color the top columns using a bull/bear gradient on "Average Balance", for example, you will have bull/bear colored tops. In order for the color of the bottom columns to continue to show the instant bar balance, you can then choose the "On Bar Balance — Dual Solid Colors" coloring mode to make those bars the color of the winning side for that bar. You can display the averages of the Buy and Sell columns. If you do, its coloring is controlled through the "Line" and "Line fill" sections below.
Line and Line fill
You can select the calculation mode and the thickness of the line, and independent calculations to determine the line's color and fill.
Zero Line
The zero line can display dots when all five balances are bull/bear.
Divergences
You first select the detection mode. Divergences occur whenever the up/down direction of the signal does not match the up/down polarity of the bar. Divergences are used in three components of the indicator's visuals: the orange dot, colored chart bars, and to calculate the divergence levels on the line. The divergence levels are dynamic levels that automatically build from the line's values on divergence events. On consecutive divergences, the levels will expand, creating a channel. This implementation of the divergence levels corresponds to my view that divergences indicate anomalies, hesitations, points of uncertainty if you will. It precludes any attempt to identify a directional bias to divergences. Accordingly, the levels merely take note of divergence events and mark those points in time with levels. Traders then have a reference point from which they can evaluate further movement. The bull/bear/neutral colors used to plot the levels are also congruent with this view in that they are determined by the line's position relative to the levels, which is how I think divergences can be put to the most effective use. One of the coloring modes for the line's fill uses advances/declines in the line after divergence events.
Background
The background can show a bull/bear gradient on six different calculations. As with other gradients, you can adjust its brightness to make its importance proportional to how you use it in your analysis.
Chart bars
Chart bars can be colored using seven different methods. You have the option of emptying the body of bars where volume does not increase, as does my TLD indicator, and you can choose whether you want to show divergences.
Intrabar Timeframe
This is the intrabar timeframe that will be used to calculate volume delta using intrabar inspection on historical bars. You can choose between four modes. The three "Auto-steps" modes calculate, from the chart's timeframe, the intrabar timeframe where the said number of intrabars will make up the dilation of chart bars. Adjustments are made for non-24x7 markets. "Fixed" mode allows you to select the intrabar timeframe you want. Checking the "Show TF" box will display in the lower-right corner the intrabar timeframe used at any given moment. The proper selection of the intrabar timeframe is important. It must achieve maximal granularity to produce precise results while not unduly slowing down calculations, or worse, causing runtime errors. Note that historical depth will vary with the intrabar timeframe. The smaller the timeframe, the shallower historical plots you will be.
Markers
Markers appear when the required condition has been confirmed on a closed bar. The configuration of the markers when you create an alert is what determines when the alert will trigger. Five markers are available:
• Balances Agreement : All five balances are either bullish or bearish.
• Double Bumps : A double bump is two consecutive up/down bars with +/‒ volume delta, and rising Buy/Sell volume above its average.
• Divergence confirmations : A divergence is confirmed up/down when the chosen balance is up/down on the previous bar when that bar was down/up, and this bar is up/down.
• Balance Shifts : These are bull/bear transitions of the selected signal.
• Marker Bias Shifts : Marker bias shifts occur when it crosses into bull/bear territory.
Periods
Allows control over the periods of the different moving averages used to calculate the balances.
Volume Discrepancies
Stock exchanges do not report the same volume for intraday and daily (or higher) resolutions. Other variations in how volume information is reported can also occur in other markets, namely Forex, where volume irregularities can even occur between different intraday timeframes. This will cause discrepancies between the total volume on the bar at the chart's timeframe, and the total volume calculated by adding the volume of the intrabars in that bar's dilation. This does not necessarily invalidate the volume delta information calculated from intrabars, but it tells us that we are using partial volume data. A mechanism to detect chart vs intrabar timeframe volume discrepancies is provided. It allows you to define a threshold percentage above which the background will indicate a difference has been detected.
Other Settings
You can control here the display of the gray dot reminder on realtime bars, and the display of error messages if you are using a chart timeframe that is not greater than the fixed intrabar timeframe, when you use that mode. Disabling the message can be useful if you only use realtime mode at chart timeframes that do not support intrabar inspection.
█ RAMBLINGS
On Volume Delta
Volume is arguably the best complement to interpret price action, and I consider volume delta to be the most effective way of processing volume information. In periods of low-volatility price consolidations, volume will typically also be lower than normal, but slight imbalances in the trend of the buy/sell volume balance can sometimes help put early odds on the direction of the break from consolidation. Additionally, the progression of the volume imbalance can help determine the proximity of the breakout. I also find volume delta and the number of divergences very useful to evaluate the strength of trends. In trends, I am looking for "slow and steady", i.e., relatively low volatility and pauses where price action doesn't look like world affairs are being reassessed. In my personal mythology, this type of trend is often more resilient than high-volatility breakouts, especially when volume balance confirms the general agreement of traders signaled by the low-volatility usually accompanying this type of trend. The volume action on pauses will often help me decide between aggressively taking profits, tightening a stop or going for a longer-term movement. As for reversals, they generally occur in high-volatility areas where entering trades is more expensive and riskier. While the identification of counter-trend reversals fascinates many traders to no end, they represent poor opportunities in my view. Volume imbalances often precede reversals, but I prefer to use volume delta information to identify the areas following reversals where I can confirm them and make relatively low-cost entries with better odds.
On "Buy/Sell" Volume
Buying or selling volume are misnomers, as every unit of volume transacted is both bought and sold by two different traders. While this does not keep me from using the terms, there is no such thing as “buy only” or “sell only” volume. Trader lingo is riddled with peculiarities.
Divergences
The divergence detection method used here relies on a difference between the direction of a signal and the polarity (up/down) of a chart bar. When using the default "On Bar Balance" to detect divergences, however, only the bar's volume delta is used. You may wonder how there can be divergences between buying/selling volume information and price movement on one bar. This will sometimes be due to the calculation's shortcomings, but divergences may also occur in instances where because of order book structure, it takes less volume to increase the price of an asset than it takes to decrease it. As usual, divergences are points of interest because they reveal imbalances, which may or may not become turning points. To your pattern-hungry brain, the divergences displayed by this indicator will — as they do on other indicators — appear to often indicate turnarounds. My opinion is that reality is generally quite sobering and I have no reliable information that would tend to prove otherwise. Exercise caution when using them. Consequently, I do not share the overwhelming enthusiasm of traders in identifying bullish/bearish divergences. For me, the best course of action when a divergence occurs is to wait and see what happens from there. That is the rationale underlying how my divergence levels work; they take note of a signal's level when a divergence occurs, and it's the signal's behavior from that point on that determines if the post-divergence action is bullish/bearish.
Superfluity
In "The Bed of Procrustes", Nassim Nicholas Taleb writes: To bankrupt a fool, give him information . This indicator can display lots of information. While learning to use a new indicator inevitably requires an adaptation period where we put it through its paces and try out all its options, once you have become used to it and decide to adopt it, rigorously eliminate the components you don't use and configure the remaining ones so their visual prominence reflects their relative importance in your analysis. I tried to provide flexible options for traders to control this indicator's visuals for that exact reason — not for window dressing.
█ LIMITATIONS
• This script uses a special characteristic of the `security()` function allowing the inspection of intrabars — which is not officially supported by TradingView.
It has the advantage of permitting a more robust calculation of volume delta than other methods on historical bars, but also has its limits.
• Intrabar inspection only works on some chart timeframes: 3, 5, 10, 15 and 30 minutes, 1, 2, 3, 4, 6, and 12 hours, 1 day, 1 week and 1 month.
The script’s code can be modified to run on other resolutions.
• When the difference between the chart’s timeframe and the intrabar timeframe is too great, runtime errors will occur. The Auto-Steps selection mechanisms should avoid this.
• All volume is not created equally. Its source, components, quality and reliability will vary considerably with sectors and instruments.
The higher the quality, the more reliably volume delta information can be used to guide your decisions.
You should make it your responsibility to understand the volume information provided in the data feeds you use. It will help you make the most of volume delta.
█ NOTES
For traders
• The Data Window shows key values for the indicator.
• While this indicator displays some of the same information calculated in my Delta Volume Columns ,
I have elected to make it a separate publication so that traders continue to have a simpler alternative available to them. Both code bases will continue to evolve separately.
• All gradients used in this indicator determine their brightness intensities using advances/declines in the signal—not their relative position in a pre-determined scale.
• Volume delta being relative, by nature, it is particularly well-suited to Forex markets, as it filters out quite elegantly the cyclical volume data characterizing the sector.
If you are interested in volume delta, consider having a look at my other "Delta Volume" indicators:
• Delta Volume Realtime Action displays realtime volume delta and tick information on the chart.
• Delta Volume Candles builds volume delta candles on the chart.
• Delta Volume Columns is a simpler version of this indicator.
For coders
• I use the `f_c_gradientRelativePro()` from the PineCoders Color Gradient Framework to build my gradients.
This function has the advantage of allowing begin/end colors for both the bull and bear colors. It also allows us to define the number of steps allowed for each gradient.
I use this to modulate the gradients so they perform optimally on the combination of the signal used to calculate advances/declines,
but also the nature of the visual component the gradient applies to. I use fewer steps for choppy signals and when the gradient is used on discrete visual components
such as volume columns or chart bars.
• I use the PineCoders Coding Conventions for Pine to write my scripts.
• I used functions modified from the PineCoders MTF Selection Framework for the selection of timeframes.
█ THANKS TO:
— The devs from TradingView's Pine and other teams, and the PineCoders who collaborate with them. They are doing amazing work,
and much of what this indicator does could not be done without their recent improvements to Pine.
— A guy called Kuan who commented on a Backtest Rookies presentation of their Volume Profile indicator using a `for` loop.
This indicator started from the intrabar inspection technique illustrated in Kuan's snippet.
— theheirophant , my partner in the exploration of the sometimes weird abysses of `security()`’s behavior at intrabar timeframes.
— midtownsk8rguy , my brilliant companion in mining the depths of Pine graphics.
CVD - Cumulative Volume Delta (Chart)█ OVERVIEW
This indicator displays cumulative volume delta (CVD) as an on-chart oscillator. It uses intrabar analysis to obtain more precise volume delta information compared to methods that only use the chart's timeframe.
The core concepts in this script come from our first CVD indicator , which displays CVD values as plot candles in a separate indicator pane. In this script, CVD values are scaled according to price ranges and represented on the main chart pane.
█ CONCEPTS
Bar polarity
Bar polarity refers to the position of the close price relative to the open price. In other words, bar polarity is the direction of price change.
Intrabars
Intrabars are chart bars at a lower timeframe than the chart's. Each 1H chart bar of a 24x7 market will, for example, usually contain 60 bars at the lower timeframe of 1min, provided there was market activity during each minute of the hour. Mining information from intrabars can be useful in that it offers traders visibility on the activity inside a chart bar.
Lower timeframes (LTFs)
A lower timeframe is a timeframe that is smaller than the chart's timeframe. This script utilizes a LTF to analyze intrabars, or price changes within a chart bar. The lower the LTF, the more intrabars are analyzed, but the less chart bars can display information due to the limited number of intrabars that can be analyzed.
Volume delta
Volume delta is a measure that separates volume into "up" and "down" parts, then takes the difference to estimate the net demand for the asset. This approach gives traders a more detailed insight when analyzing volume and market sentiment. There are several methods for determining whether an asset's volume belongs in the "up" or "down" category. Some indicators, such as On Balance Volume and the Klinger Oscillator , use the change in price between bars to assign volume values to the appropriate category. Others, such as Chaikin Money Flow , make assumptions based on open, high, low, and close prices. The most accurate method involves using tick data to determine whether each transaction occurred at the bid or ask price and assigning the volume value to the appropriate category accordingly. However, this method requires a large amount of data on historical bars, which can limit the historical depth of charts and the number of symbols for which tick data is available.
In the context where historical tick data is not yet available on TradingView, intrabar analysis is the most precise technique to calculate volume delta on historical bars on our charts. This indicator uses intrabar analysis to achieve a compromise between simplicity and accuracy in calculating volume delta on historical bars. Our Volume Profile indicators use it as well. Other volume delta indicators in our Community Scripts , such as the Realtime 5D Profile , use real-time chart updates to achieve more precise volume delta calculations. However, these indicators aren't suitable for analyzing historical bars since they only work for real-time analysis.
This is the logic we use to assign intrabar volume to the "up" or "down" category:
• If the intrabar's open and close values are different, their relative position is used.
• If the intrabar's open and close values are the same, the difference between the intrabar's close and the previous intrabar's close is used.
• As a last resort, when there is no movement during an intrabar and it closes at the same price as the previous intrabar, the last known polarity is used.
Once all intrabars comprising a chart bar are analyzed, we calculate the net difference between "up" and "down" intrabar volume to produce the volume delta for the chart bar.
█ FEATURES
CVD resets
The "cumulative" part of the indicator's name stems from the fact that calculations accumulate during a period of time. By periodically resetting the volume delta accumulation, we can analyze the progression of volume delta across manageable chunks, which is often more useful than looking at volume delta accumulated from the beginning of a chart's history.
You can configure the reset period using the "CVD Resets" input, which offers the following selections:
• None : Calculations do not reset.
• On a fixed higher timeframe : Calculations reset on the higher timeframe you select in the "Fixed higher timeframe" field.
• At a fixed time that you specify.
• At the beginning of the regular session .
• On trend changes : Calculations reset on the direction change of either the Aroon indicator, Parabolic SAR , or Supertrend .
• On a stepped higher timeframe : Calculations reset on a higher timeframe automatically stepped using the chart's timeframe and following these rules:
Chart TF HTF
< 1min 1H
< 3H 1D
<= 12H 1W
< 1W 1M
>= 1W 1Y
Specifying intrabar precision
Ten options are included in the script to control the number of intrabars used per chart bar for calculations. The greater the number of intrabars per chart bar, the fewer chart bars can be analyzed.
The first five options allow users to specify the approximate amount of chart bars to be covered:
• Least Precise (Most chart bars) : Covers all chart bars by dividing the current timeframe by four.
This ensures the highest level of intrabar precision while achieving complete coverage for the dataset.
• Less Precise (Some chart bars) & More Precise (Less chart bars) : These options calculate a stepped LTF in relation to the current chart's timeframe.
• Very precise (2min intrabars) : Uses the second highest quantity of intrabars possible with the 2min LTF.
• Most precise (1min intrabars) : Uses the maximum quantity of intrabars possible with the 1min LTF.
The stepped lower timeframe for "Less Precise" and "More Precise" options is calculated from the current chart's timeframe as follows:
Chart Timeframe Lower Timeframe
Less Precise More Precise
< 1hr 1min 1min
< 1D 15min 1min
< 1W 2hr 30min
> 1W 1D 60min
The last five options allow users to specify an approximate fixed number of intrabars to analyze per chart bar. The available choices are 12, 24, 50, 100, and 250. The script will calculate the LTF which most closely approximates the specified number of intrabars per chart bar. Keep in mind that due to factors such as the length of a ticker's sessions and rounding of the LTF, it is not always possible to produce the exact number specified. However, the script will do its best to get as close to the value as possible.
As there is a limit to the number of intrabars that can be analyzed by a script, a tradeoff occurs between the number of intrabars analyzed per chart bar and the chart bars for which calculations are possible.
Display
This script displays raw or cumulative volume delta values on the chart as either line or histogram oscillator zones scaled according to the price chart, allowing traders to visualize volume activity on each bar or cumulatively over time. The indicator's background shows where CVD resets occur, demarcating the beginning of new zones. The vertical axis of each oscillator zone is scaled relative to the one with the highest price range, and the oscillator values are scaled relative to the highest volume delta. A vertical offset is applied to each oscillator zone so that the highest oscillator value aligns with the lowest price. This method ensures an accurate, intuitive visual comparison of volume activity within zones, as the scale is consistent across the chart, and oscillator values sit below prices. The vertical scale of oscillator zones can be adjusted using the "Zone Height" input in the script settings.
This script displays labels at the highest and lowest oscillator values in each zone, which can be enabled using the "Hi/Lo Labels" input in the "Visuals" section of the script settings. Additionally, the oscillator's value on a chart bar is displayed as a tooltip when a user hovers over the bar, which can be enabled using the "Value Tooltips" input.
Divergences occur when the polarity of volume delta does not match that of the chart bar. The script displays divergences as bar colors and background colors that can be enabled using the "Color bars on divergences" and "Color background on divergences" inputs.
An information box in the lower-left corner of the indicator displays the HTF used for resets, the LTF used for intrabars, the average quantity of intrabars per chart bar, and the number of chart bars for which there is LTF data. This is enabled using the "Show information box" input in the "Visuals" section of the script settings.
FOR Pine Script™ CODERS
• This script utilizes `ltf()` and `ltfStats()` from the lower_tf library.
The `ltf()` function determines the appropriate lower timeframe from the selected calculation mode and chart timeframe, and returns it in a format that can be used with request.security_lower_tf() .
The `ltfStats()` function, on the other hand, is used to compute and display statistical information about the lower timeframe in an information box.
• The script utilizes display.data_window and display.status_line to restrict the display of certain plots.
These new built-ins allow coders to fine-tune where a script’s plot values are displayed.
• The newly added session.isfirstbar_regular built-in allows for resetting the CVD segments at the start of the regular session.
• The VisibleChart library developed by our resident PineCoders team leverages the chart.left_visible_bar_time and chart.right_visible_bar_time variables to optimize the performance of this script.
These variables identify the opening time of the leftmost and rightmost visible bars on the chart, allowing the script to recalculate and draw objects only within the range of visible bars as the user scrolls.
This functionality also enables the scaling of the oscillator zones.
These variables are just a couple of the many new built-ins available in the chart.* namespace.
For more information, check out this blog post or look them up by typing "chart." in the Pine Script™ Reference Manual .
• Our ta library has undergone significant updates recently, including the incorporation of the `aroon()` indicator used as a method for resetting CVD segments within this script.
Revisit the library to see more of the newly added content!
Look first. Then leap.
Cumulative Volume Delta (HA Option)# **📘 Ultimate Guide to Trading With CVD Heikin Ashi (CVD+)**
## **🔍 What This Indicator Shows**
This tool plots **Cumulative Volume Delta (CVD)** as candlesticks—optionally transformed into **Heikin Ashi CVD candles**.
Instead of price, each candle represents the *battle between buyers and sellers* within your chosen timeframe.
**Volume Delta = Buying Volume – Selling Volume**
CVD takes all deltas and stacks them cumulatively, showing who is controlling the auction *over time*.
With Heikin Ashi smoothing layered on top, trend detection becomes cleaner, letting you see the “true pressure” behind price moves.
---
# **💡 Why CVD Is a Game Changer**
Most traders only see price.
Serious traders watch **pressure**.
CVD exposes what price hides:
* Absorption
* Hidden accumulation
* Seller exhaustion
* Fake breakouts
* True reversals
* Momentum strength / weakness
* Smart money footprint
When combined with Heikin-Ashi smoothing, you get delta trends with way less noise and fewer fake flips.
---
# **📈 How to Actually Use It (The Edge)**
## **1. Spot True Trend vs. Fake Trend**
If **price goes up** but **CVD goes down**, that’s:
* Passive sellers absorbing
* A weak rally
* High probability of reversal
If **price pulls back** but **CVD keeps rising**, that’s:
* Secret accumulation
* A continuation setup
* Great dip-buy opportunity
**Rule of thumb:**
🔹 *Follow the CVD trend, not the price noise.*
---
## **2. Catch Reversals Early**
Watch for:
### **🔻 Bearish Reversal Signals**
* CVD makes a **lower high**
* Heikin Ashi CVD prints **red bodies with rising upper shadows**
* Price makes one final push up on low delta
This is classic distribution → the drop usually follows fast.
### **🔹 Bullish Reversal Signals**
* CVD forms a **higher low**
* HA CVD flips from red to green with full bodies
* Price still looks weak = bottom forming
This is exactly how pros catch bottoms early.
---
## **3. Identify Absorption Levels**
If price hits a level multiple times but CVD keeps climbing (or falling), that level is being defended.
Example:
* Price stalls at support
* CVD keeps rising
= **Buyers absorbing sells → high-probability bounce**
Opposite works for resistance.
---
## **4. Validate Breakouts**
A breakout with *weak or negative CVD* is usually a trap.
A breakout with **strong, rising HA CVD** is real.
If CVD diverges from the breakout direction → fade it.
If CVD confirms → ride it.
---
## **5. Use Heikin Ashi to Stay in Trends**
HA smoothing removes the nasty chop of raw delta data.
Look for:
* Consecutive **full-body teal candles = strong buying wave**
* Consecutive **full-body red candles = strong selling wave**
* Small-bodied candles after a trend = momentum dying
This keeps you in winners longer and cuts losers faster.
---
# **🎯 Practical Trading Playbook**
### **A) Long Setup**
1. Price pullback into support
2. CVD stays bullish or makes a higher low
3. HA CVD flips green or prints a strong body
4. Enter long
5. Stop under CVD structural low
### **B) Short Setup**
1. Price pushes into resistance
2. CVD forms bearish divergence
3. HA CVD prints red bodies
4. Enter short
5. Stop above CVD swing high
### **C) Chop Filter**
No clear HA CVD trend = avoid trading → stop donating money to the market.
---
# **🧠 Tips for Mastery**
* Use lower timeframe delta (1m–5m) for scalping entries
* Use a higher anchor timeframe (1D) to define direction
* When price trends but CVD is flat → expect a fakeout
* When CVD trends but price is flat → expect a breakout
* Trade WITH delta, fade AGAINST delta
---
# **⚠️ Important Notes**
* Crypto = full tick-by-tick volume → CVD is extremely accurate
* Stocks = depends on your broker/data vendor
* Futures = best signal-to-noise ratio
* If your symbol has no volume → indicator will warn you
---
# **📥 Recommended Settings**
* **Anchor timeframe**: 1D or 4H
* **Lower timeframe**: 1m, 3m, or 5m
* **Heikin Ashi**: ON for trend filtering, OFF for raw delta
---
# **🔥 Final Word**
Price can lie.
Delta usually doesn’t.
CVD + Heikin Ashi gives you the closest thing to reading the market’s heartbeat in real time.
Use it to confirm breakouts, detect reversals early, identify real trend strength, and avoid getting caught in manipulation.
If you learn to read CVD well…
you stop trading price, and start trading the **intent** behind the price.
Cumulative Volume Delta (SB-1) 2.0
📈 Cumulative Volume Delta (CVD) — Stair-Step + Threshold Alerts
🔍 Overview
This Cumulative Volume Delta (CVD) tool visualizes aggressive buying and selling pressure in the market by plotting candlestick-style bars based on volume delta. It helps traders understand which side — buyers or sellers — is exerting more control on lower timeframes and highlights momentum shifts through stair-step patterns and delta threshold breaks. Resets to zero at EOD
Ideal for futures traders, scalpers, and intraday strategists looking for orderflow-based confirmation.
🧠 What Is CVD?
CVD (Cumulative Volume Delta) measures the difference between market buys and sells over a specific timeframe. When the delta is rising, it suggests buyers are being more aggressive. Falling delta suggests seller dominance.
This script aggregates volume delta from a lower timeframe and plots it in a higher timeframe context, allowing you to track microstructure shifts within larger candles.
📊 Features
✅ CVD Candlesticks
Each bar represents volume delta as an OHLC-style candle using:
Open: Delta at the start of the bar
High/Low: Peak delta range
Close: Final delta value at bar close
Teal candles = Net buying pressure
Red candles = Net selling pressure
✅ Threshold Levels (Key Visual Zones)
The script includes horizontal dashed lines at:
+5,000 and +10,000 → Signify strong buying pressure
-5,000 and -10,000 → Signify strong selling pressure
0 line → Neutrality line (no net pressure)
These levels act as volume-based support/resistance zones and breakout confirmation tools. For example:
A CVD cross above +5,000 shows buyers taking control
A CVD cross above +10,000 implies strong bullish momentum
A CVD cross below -5,000 or -10,000 signals intense selling pressure
📈 Stair-Step Pattern Detection
Detects two specific volume-based continuation setups:
Bullish Stair-Step: Both the high and low of the CVD candle are higher than the previous candle
Bearish Stair-Step: Both the high and low of the CVD candle are lower than the previous candle
These patterns often appear during trending moves and serve as confirmation of strength or continuation.
Visual markers:
🟢 Green triangles below bars = Bullish stair-step
🔴 Red triangles above bars = Bearish stair-step
🔔 Alert Conditions
Get real-time alerts when:
Bullish Stair-Step is detected
Bearish Stair-Step is detected
CVD crosses above +5,000
CVD crosses below -5,000
📢 Alerts only trigger on crossover, not every time CVD remains above or below. This avoids repetitive notifications.
⚙️ Inputs & Customization
Anchor Timeframe: The higher timeframe to which CVD data is applied (default: 1D)
Lower Timeframe: The timeframe used to calculate the CVD delta (default: 5 minutes)
Optional Override: Use custom timeframe toggle to force your own micro timeframe
📌 How to Use This CVD Indicator (Step-by-Step Guide)
✅ 1. Confirm Bias Using the Zero Line
The zero line (0 CVD) represents neutral pressure — neither buyers nor sellers are dominating.
Use it as your first filter:
🔼 If CVD is above 0 and rising → Buyer control
🔽 If CVD is below 0 and falling → Seller control
🧠 Tip: CVD rising while price is consolidating may signal hidden buyer interest.
✅ 2. Watch for Crosses of Key Levels: +5,000 and +10,000
These levels act as momentum thresholds:
Level Signal Type What It Means
+5,000 Buyer breakout Buyers are starting to dominate
+10,000 Strong bull bias Strong institutional or algorithmic buying flow
-5,000 Seller breakout Sellers are taking control
-10,000 Strong bear bias Heavy selling pressure is entering the market
Wait for CVD to cross above +5K or below -5K to confirm the active side.
Use these crossovers as entry triggers, breakout confirmations, or trade filters.
🔔 Alerts fire only when the level is first crossed, not every bar above/below.
✅ 3. Use Stair-Step Patterns for Continuation Confirmation
The indicator shows stair-step patterns using triangle signals:
🟢 Green triangle below bar = Bullish stair-step
Suggests a higher high and higher low in delta → buyers stepping up
🔴 Red triangle above bar = Bearish stair-step
Suggests lower highs and lower lows in delta → selling pressure building
Use stair-step signals:
To confirm a continuation of trend
As an entry or add-on signal
Especially after a threshold breakout
🧠 Example: If CVD breaks above +5K and forms bullish stairs → confirms strong trend, ideal for momentum entries.
✅ 4. Combine with Price Action or Structure
CVD works best when used with price, not in isolation. For example:
📉 Price makes a new low but CVD doesn’t → potential bullish divergence
📈 CVD surges while price lags → buyers are absorbing, breakout likely
Use it with:
VWAP
Orderblocks
Liquidity sweeps
Break of market structure/MSS/BOS
✅ 5.
Set Anchor Timeframe = Daily
Set Lower Timeframe = 5 minutes (default)
This lets you:
See intraday flow inside daily bars
Confirm whether a daily candle is being built on net buying or selling
🧠 You’re essentially seeing intra-bar aggression within a bigger time structure.
🧭 Example Trading Setup
Bullish Scenario:
CVD is rising and above 0
CVD crosses above +5,000 → alert fires
Green stair-step appears
Price breaks local resistance or liquidity sweep completes
✅ Consider long entry with structure and CVD alignment
🎯 Place stops below last stair-step or structural low
📌 Final Notes
This tool does not repaint and is designed to work in real-time across all futures, crypto, and equity instruments that support volume data. If your symbol does not provide volume, the script will notify you.
Use it in confluence with VWAP, liquidity zones, or structure breaks for high-confidence trades.
Cumulative Volume Delta📊 Indicator Name:
Cumulative Volume Delta (CVD) + Candle Divergence (Color DIfference)
📌 Purpose:
This indicator visualizes volume delta over a user-defined time anchor and highlights divergence between volume-based momentum and price movement. It's especially useful for identifying potential reversals, fakeouts, or hidden buying/selling pressure.
🔍 How It Works:
1. Volume Delta Calculation (CVD Candles):
The script uses ta.requestVolumeDelta() to approximate volume delta data over a chosen anchor period (e.g., 1D).
Volume delta = Buy Volume – Sell Volume
Each candle on the CVD chart represents changes in cumulative volume delta, with OHLC-style values:
openVolume: cumulative delta at the start of the bar
lastVolume: cumulative delta at the end of the bar
maxVolume, minVolume: intra-bar high and low
2. Visual Representation (CVD Candles):
Green/Teal candle: Delta is increasing (buying pressure dominates)
Red candle: Delta is decreasing (selling pressure dominates)
3. Divergence Detection:
The script compares the direction of the price candle with the direction of the CVD candle:
Price Up + CVD Down → Possible hidden selling (bearish divergence)
Price Down + CVD Up → Possible hidden buying (bullish divergence)
4. Color Highlighting:
Orange candle on the CVD chart signals divergence between price and volume delta.
This color override helps you quickly spot potential discrepancies between price movement and underlying volume pressure.
5. Alerting:
An alertcondition is added so you can receive a notification whenever a divergence occurs.
⚙️ User Inputs:
Anchor period (e.g., 1D): Timeframe over which the CVD is anchored.
Use custom timeframe: Allows you to override and define the internal lower timeframe used for volume estimation (e.g., 1-min).
📈 How to Use It:
✅ Bullish Divergence (Price down, CVD up)
This may indicate:
Buyers absorbing selling pressure.
A potential reversal to the upside.
Hidden accumulation.
🚫 Bearish Divergence (Price up, CVD down)
This may indicate:
Sellers stepping in despite upward price.
A potential reversal to the downside.
Hidden distribution.
🧠 Trading Insights:
CVD is often used by order flow traders or those analyzing market depth and volume imbalances.
This version lets you visually align price action with underlying volume, improving decision-making.
The divergence signal can be combined with other technical tools like support/resistance, candlestick patterns, or trendlines for confirmation.
Cumulative Volume Delta (MTF)Cumulative Volume Delta (CVD) Indicator
The Cumulative Volume Delta (CVD) indicator is a powerful analytical tool used to understand the behavior and dynamics of market participants through volume analysis. It tracks the net difference between buying and selling pressure, providing insights into market trends and potential reversals. Here's a detailed description of this indicator and its components:
The Cumulative Volume Delta (CVD) indicator calculates the cumulative net difference between buying and selling volume over a specified period. By analyzing this net difference, traders can gain insights into the underlying strength or weakness of a price movement, helping to identify trends, reversals, and potential breakout points.
Key Components:
Bull & Bear Power Calculation:
Bull Power: Represents the strength of buyers in the market. It is calculated based on the relationship between the current and previous price bars. A higher Bull Power indicates stronger buying pressure.
Bear Power: Represents the strength of sellers in the market. It is also calculated based on the relationship between the current and previous price bars. A higher Bear Power indicates stronger selling pressure.
Bull & Bear Volume Calculation:
Bull Volume: The volume attributed to buying pressure. It is calculated by taking the proportion of Bull Power relative to the total of Bull Power and Bear Power, multiplied by the total volume.
Bear Volume: The volume attributed to selling pressure. It is calculated similarly to Bull Volume but using Bear Power.
Delta Calculation:
Delta: The net difference between Bull Volume and Bear Volume for each bar. A positive Delta indicates more buying pressure, while a negative Delta indicates more selling pressure.
Cumulative Volume Delta (CVD):
CVD: The running total of the Delta values over time. It accumulates the net buying and selling pressure to provide a visual representation of the market's cumulative sentiment.
Moving Average of CVD (CVD MA):
CVD MA: A simple moving average of the CVD, used to smooth out fluctuations and help identify the overall trend. It provides a baseline to compare the current CVD value against, highlighting divergences or convergences.
Multi-Timeframe Functionality:
The enhanced version of the CVD indicator includes multi-timeframe (MTF) capabilities, allowing users to select and analyze data from different timeframes. This feature enhances the versatility of the indicator by providing a broader perspective on market dynamics across various time intervals.
Practical Applications:
Trend Identification: By tracking the CVD and its moving average, traders can identify the prevailing trend. An upward-sloping CVD indicates sustained buying pressure, while a downward-sloping CVD indicates sustained selling pressure.
Divergences: Divergences between the CVD and price can signal potential reversals. For example, if the price is making new highs but the CVD is not, it may indicate weakening buying pressure and a potential reversal.
Breakout Confirmation: Significant changes in the CVD can confirm breakouts. A sharp increase in the CVD during a price breakout indicates strong buying support, adding confidence to the breakout.
Support and Resistance Levels: The CVD can help identify significant support and resistance levels based on changes in volume dynamics. For instance, a notable increase in buying volume at a support level can reinforce its strength.
Cumulative Volume Delta LineThis script is a refined version of TradingView's Cumulative Volume Delta (CVD) indicator. It features a CVD line for lower time frames and automatically switches to a Simple Moving Average (SMA) line on daily time frames and higher. This functionality makes it easier to spot Volume Delta divergences on daily charts while maintaining utility on intraday time frames.
Key Features:
Line Chart and Oscillator Configuration: Unlike TradingView's standard CVD, this script can be configured as a line chart or an oscillator, enhancing flexibility and usability.
Line chart for easier divergence spotting: The line chart format is preferred for spotting divergences, providing a clearer visual representation compared to other formats.
Accurate Calculations: Many older community CVD scripts use approximate calculations that can be inaccurate. This script leverages TradingView's own calculations, which are the most accurate available without tick data feeds.
Intraday and Daily Adaptation: The Traditional CVD script is a per bar volume delta on Daily and higher timeframes and cumulative volume delta for intraday session timeframes which makes it very hard to spot divergences on higher timeframes. This script resolves that by using an SMA on daily time frames and higher.
Auto-Switching Feature: The script intelligently switches between the CVD line and the SMA line based on the active time frame. This feature can be toggled off if you prefer to use the CVD on all time frames or the SMA on all time frames.
Customizable Settings: Building on TradingView's CVD script, this version includes all the same settings in addition to the new auto-switch, SMA length etc.
About Volume Delta and Cumulative Volume Delta:
Volume Delta is the difference between the buying and selling volume within a specified period. It helps traders understand the net buying or selling pressure in the market. A positive volume delta indicates more buying activity, while a negative volume delta indicates more selling activity.
Cumulative Volume Delta (CVD) aggregates the volume delta over time to provide a running total. This cumulative approach helps traders see the overall buying and selling pressure trends, making it easier to identify potential reversals or continuations in the market trend.
Delta Volume by SiddWolfDelta Volume is Difference between Buying Volume and Selling Volume. This indicator gives the Delta Volume based on Lower TimeFrame Candles. It utilizes security_lower_tf() function, a function that provides Lower TF candle data in Higher TF Chart.
security_lower_tf() is a new function provided by TradingView yesterday. If you are a PineScript Programmer, I suggest you to read about it, as it is a very powerful function that can extremely improve your trading strategy.
How this indicator works:
This indicator checks volume data on lower TimeFrame Candles and Shows it's delta in the current Chart Timeframe. For example: If you open 4 hours chart, this indicator checks volume of 1 minute chart and separates Buying-Selling volume. Then it subtracts Candle's Selling volume from Candle's Buying volume, finally calculating the Delta Volume.
This indicator also provides a Smooth Delta Volume, which is moving average of Delta Volume. As Delta Volume changes a lot, Smooth Delta Volume can be very helpful for identifying Trends . Goto settings and in "Show" section select "Smooth Delta Volume" to lay it on the chart.
Settings is the Key:
Settings are key to all of my indicators. Play around with it a bit. You can change what to show on the chart from settings. Smooth Delta Volume moving average length can be changed from the settings. You can also select "Show as Percentage", which shows Delta Volume as Percentage of Overall Candle's Volume. If you use Weekly or Monthly Timeframe, change increase lower timeframe from settings. Read the tooltips to understand what each settings mean. Tooltips are the (i) button in-front of each settings.
FAQs:
Q. Does the indicator Repaint ?
--- No. None of my indicators repaints. What you see now is what's drawn in real time.
Q. What TimeFrame is Best for this Indicator ?
--- It can be used on timeframes from 5 minutes to higher. But I would prefer to use it from timeframes higher than 30 minutes, as it gathers data from 1 minute TF.
Q. Indicator doesn't show anything ?
--- This indicator only works on security with Volume data. Also use it from higher timeframe than specified in Settings, because Volume Delta is calculated using Data from Lower TimeFrame.
Q. Delta volume is not provided by TradingView, So how exactly does this indicator work?
--- This indicator takes advantage of new pinescript function security_lower_tf(), and calculates volume for smaller timeframe data and calculates delta on higher timeframe.
Q. Does this indicator give financial advice?
--- No. Nope. Nein. Não. नहीं.
Conclusion:
This indicator is very basic but if used correctly it can be very powerful. If you have any questions or suggestions feel free to comment below. I'd love to connect with you. Thank you.
~ @SiddWolf
PVSRA Volume Suite with Volume DeltaPVSRA Volume Suite with Volume Delta
🔹 Overview
This indicator is a Volume Suite that enhances PVSRA (Price, Volume, Support, Resistance Analysis) by incorporating Volume Delta and AI-driven predictive alerts. It is designed to help traders analyze volume pressure, market trends, and price movements with color-coded visualizations.
📌 Key Features
PVSRA Volume Color Coding – Highlights vector candles based on extreme volume/spread conditions.
Volume Delta Analysis – Tracks buying/selling pressure using up/down volume data.
AI-Powered Predictive Alerts – Identifies potential trend shifts based on volume and trend context.
Volatility-Adjusted Thresholds – Dynamically adapts volume conditions based on ATR (Average True Range).
Customizable MA & Symbol Overrides – Allows traders to tweak settings for personalized market insights.
Debug & Diagnostic Labels – Shows statistical z-scores, thresholds, and volume dynamics.
How It Works
PVSRA Color Coding – The script classifies candles into four categories based on volume and spread analysis:
🔴 Red Vector → Extreme bearish volume/spread
🟢 Green Vector → Extreme bullish volume/spread
🟣 Violet Vector → Above-average bearish volume
🔵 Blue Vector → Above-average bullish volume
Volume Delta Calculation – Uses lower timeframe volume analysis to estimate up/down volume differentials.
Trend & Predictive Alerts – Combines EMA crossovers with statistical volume analysis to detect potential trend shifts.
Volatility Adaptation – Adjusts volume thresholds based on ATR, making signals more reliable in changing market conditions.
Custom Symbol Override – Fetches PVSRA data from a different instrument, useful for index-based volume analysis.
Customizable Inputs
PVSRA Color Settings – Modify candle color schemes for better visual clarity.
Volume Delta Colors – Customize delta volume body, wick, and border colors.
AI Settings – Tune z-score thresholds, lookback periods, and enable predictive alerts.
Symbol Overrides – Analyze volume from a different market or asset.
Moving Average (MA) Settings – Display a volume-based moving average for trend confirmation.
Important Notes
Works best on intraday timeframes where volume data is reliable.
Lower timeframe volume delta estimates might not be precise for all assets.
No guarantees of accuracy – Use alongside other confluence tools for decision-making.
Credits & Open-Source Notice
This script is based on PVSRA methodologies and integrates Volume Delta analysis. Special thanks to Traders Reality and TradingView for their contributions to volume-based analysis.
Trend, Momentum, Volume Delta Ratings Emoji RatingsThis indicator provides a visual summary of three key market conditions - Trend, Momentum, and Volume Delta - to help traders quickly assess the current state of the market. The goal is to offer a concise, at-a-glance view of these important technical factors.
Trend (HMA): The indicator uses a Hull Moving Average (HMA) to assess the overall trend direction. If the current price is above the HMA, the trend is considered "Good" or bullish (represented by a 😀 emoji). If the price is below the HMA, the trend is "Bad" or bearish (🤮). If the price is equal to the HMA, the trend is considered "Neutral" (😐).
Momentum (ROC): The Rate of Change (ROC) is used to measure the momentum of the market. A positive ROC indicates "Good" or bullish momentum (😀), a negative ROC indicates "Bad" or bearish momentum (🤮), and a zero ROC is considered "Neutral" (😐).
Volume Delta: The indicator calculates the difference between the current trading volume and a simple moving average of the volume (Volume Delta). If the Volume Delta is above a user-defined threshold, it is considered "Good" or bullish (😀). If the Volume Delta is below the negative of the threshold, it is "Bad" or bearish (🤮). Values within the threshold are considered "Neutral" (😐).
The indicator displays these three ratings in a compact table format in the top-right corner of the chart. The table uses color-coding to quickly convey the overall market conditions - green for "Good", red for "Bad", and gray for "Neutral".
This indicator can be useful for traders who want a concise, at-a-glance view of the current market trend, momentum, and volume activity. By combining these three technical factors, traders can get a more well-rounded understanding of the market conditions and potentially identify opportunities or areas of concern more easily.
The user can customize the indicator by adjusting the lengths of the HMA, ROC, and Volume moving average, as well as the Volume Delta threshold. The colors used in the table can also be customized to suit the trader's preferences.
Cumulative Volume Delta Divergence [TradingFinder] Periodic EMA🔵 Introduction
The Cumulative Volume Delta (CVD) is a powerful tool in technical analysis that is derived from market volume or trading activity. The Cumulative Volume Delta Divergence Detector Indicator helps traders identify Cumulative Volume Delta Divergences (CVD Divergence), which can provide reliable trading signals.
These divergences, such as bullish and bearish CVD divergences, act as key indicators of potential trend reversals in financial markets. By analyzing CVD divergences, traders can gain insights into the strength of buying and selling pressure and make more informed predictions about price trends.
The CVD indicator is particularly effective for traders who engage in day trading and scalping, as it helps identify price reversal points by analyzing volume and price behavior.
Using the CVD indicator in combination with other technical tools such as support and resistance levels and candlestick patterns allows for a more accurate market analysis.
🔵 How to Use
Divergences are one of the most important technical analysis signals that indicate the current strength of a price move may not be sustainable.
Cumulative Volume Delta Divergence helps traders identify potential trading opportunities that may not be visible on the price chart alone.
This type of divergence examines the relationship between buying and selling volume and price, enabling traders to better understand price trends.
🟣 Bullish CVD Divergence
A bullish CVD divergence occurs when the price makes a lower low, but the CVD indicator shows a higher low. This indicates increasing buying pressure in the market, even though the price is declining. In other words, despite the price dropping, buyers are gradually gaining strength, which could signal a price reversal and the start of a bullish trend.
How to use this signal : In this scenario, traders looking to go long can use this signal as a favorable opportunity to enter the market. After a bullish divergence, the market typically tends to move upward.
To reduce risk, traders can wait for further confirmation from the price chart. For example, if the price breaks through the previous high after the divergence or breaks a resistance level, this could be a more reliable signal for entering the market.
🟣 Bearish CVD Divergence
A bearish CVD divergence is the opposite of a bullish divergence. In this type of divergence, the price makes a higher high, but the CVD indicator shows a lower high. This indicates decreasing buying pressure and weakening momentum in the current bullish trend. A bearish divergence often serves as a warning of a potential market reversal to the downside.
How to use this signal : Traders can use this divergence as an opportunity to exit long positions or enter short positions. When the CVD indicator makes a lower high compared to the price, it signals weakness in buyer strength.
If traders receive further confirmation from the price chart, such as a break of key support levels or an increase in selling volume, this can serve as a stronger signal for the beginning of a bearish trend.
🟣 How to Build a Trading Strategy with Cumulative Volume Delta Divergence
Using CVD divergence alone may not be sufficient. Traders should combine this tool with other technical analysis techniques and indicators to have more confidence in their decisions. For example, when observing a CVD divergence, traders can also analyze volume, trend lines, or candlestick patterns to get a more accurate market analysis.
Additionally, risk management should always be a priority. Using stop-loss orders and properly sizing trades can help traders minimize their losses if they make a mistake.
🔵 Setting
Divergence Fractal Period : Determines the period of swings. The minimum and default value is 2.
CVD Period : You can set the period of " Periodic " and " EMA " modes.
Cumulative Mode : It has three modes "Periodic" and "EMA". In "Periodic" mode, it accumulates the volume periodically and in "EMA" mode, it calculates the moving average of the volume.
Market Ultra Data : If you turn on this feature, 26 large brokers will be included in the calculation of the trading volume. The advantage of this capability is to have more reliable volume data. You should be careful to specify the market you are in, FOREX brokers and Crypto brokers are different.
🔵 Conclusion
The Cumulative Volume Delta (CVD) indicator is a powerful tool in technical analysis, helping traders better identify price trends and make more accurate market predictions. By identifying CVD divergences, traders can anticipate price reversals and time their market entries and exits accordingly.
Bullish and bearish CVD divergences each provide valuable signals that can help traders identify the best entry and exit points in the market. A bullish CVD divergence signals strength in buying that will likely lead to a price increase, while a bearish CVD divergence indicates weakness in the bullish trend and the potential for the beginning of a bearish trend.
Overall, combining CVD with other technical analysis tools and employing risk management strategies can help traders make better trading decisions and capitalize on available market opportunities.
Cumulative Volume Delta [Aggregated]This Indicator is known as Cumulative Volume Delta (CVD), and it represents the total difference between buying and selling pressure.
This indicator use intrabar analysis to strike a balance between the most straightforward and accurate approaches of computing volume delta.
Intrabar analysis is the most accurate method to determine volume delta on historical bars on our charts when TradingView does not currently have historical tick data available.
What is included in the indicator:
Candle Type CVD
Line Type CVD
Aggregated Data which is derived from different exchanges
● Binance
● Bybit
● OKX
● Delta
● WooNetwork
You can choose between Aggregated Data or Single Data by choice.
Aggregated Data - Gathered Data from multiple exchanges which is summarize and became one.
Single Data - Data on your current chart.
Aggregated Data for CVD is still limited to BTC pair as of the moment. The indicator automatically switches to Single Data Type if the opened chart is not a BTC pair.
Candle Colors are fully customizable just like the Tradingview candle settings.
This indicator is mostly compatible to all Crypto.
NOTE: Most code is derived from my library to keep everything neat and clean.
Cumulative Volume Delta Z Score [BackQuant]Cumulative Volume Delta Z Score
The Cumulative Volume Delta Z Score indicator is a sophisticated tool that combines the cumulative volume delta (CVD) with Z-Score normalization to provide traders with a clearer view of market dynamics. By analyzing volume imbalances and standardizing them through a Z-Score, this tool helps identify significant price movements and market trends while filtering out noise.
Core Concept of Cumulative Volume Delta (CVD)
Cumulative Volume Delta (CVD) is a popular indicator that tracks the net difference between buying and selling volume over time. CVD helps traders understand whether buying or selling pressure is dominating the market. Positive CVD signals buying pressure, while negative CVD indicates selling pressure.
The addition of Z-Score normalization to CVD makes it easier to evaluate whether current volume imbalances are unusual compared to past behavior. Z-Score helps in detecting extreme conditions by showing how far the current CVD is from its historical mean in terms of standard deviations.
Key Features
Cumulative Volume Delta (CVD): Tracks the net buying vs. selling volume, allowing traders to gauge the overall market sentiment.
Z-Score Normalization: Converts CVD into a standardized value to highlight extreme movements in volume that are statistically significant.
Divergence Detection: The indicator can spot bullish and bearish divergences between price and CVD, which can signal potential trend reversals.
Pivot-Based Divergence: Identifies price and CVD pivots, highlighting divergence patterns that are crucial for predicting price changes.
Trend Analysis: Colors bars according to trend direction, providing a visual indication of bullish or bearish conditions based on Z-Score.
How It Works
Cumulative Volume Delta (CVD): The CVD is calculated by summing the difference between buying and selling volume for each bar. It represents the net buying or selling pressure, giving insights into market sentiment.
Z-Score Normalization: The Z-Score is applied to the CVD to normalize its values, making it easier to compare current conditions with historical averages. A Z-Score greater than 0 indicates a bullish market, while a Z-Score less than 0 signals a bearish market.
Divergence Detection: The indicator detects regular and hidden bullish and bearish divergences between price and CVD. These divergences often precede trend reversals, offering traders a potential entry point.
Pivot-Based Analysis: The indicator uses pivot highs and lows in both price and CVD to identify divergence patterns. A bullish divergence occurs when price makes a lower low, but CVD fails to follow, suggesting weakening selling pressure. Conversely, a bearish divergence happens when price makes a higher high, but CVD doesn't confirm the move, indicating potential selling pressure.
Trend Coloring: The bars are colored based on the trend direction. Green bars indicate an uptrend (CVD is positive), and red bars indicate a downtrend (CVD is negative). This provides an easy-to-read visualization of market conditions.
Standard Deviation Levels: The indicator plots ±1σ, ±2σ, and ±3σ levels to indicate the degree of deviation from the average CVD. These levels act as thresholds for identifying extreme buying or selling pressure.
Customization Options
Anchor Timeframe: The user can define an anchor timeframe to aggregate the CVD, which can be customized based on the trader’s needs (e.g., daily, weekly, custom lower timeframes).
Z-Score Period: The period for calculating the Z-Score can be adjusted, allowing traders to fine-tune the indicator's sensitivity.
Divergence Detection: The tool offers controls to enable or disable divergence detection, with the ability to adjust the lookback periods for pivot detection.
Trend Coloring and Visuals: Traders can choose whether to color bars based on trend direction, display standard deviation levels, or visualize the data as a histogram or line plot.
Display Options: The indicator also allows for various display options, including showing the Z-Score values and divergence signals, with customizable colors and line widths.
Alerts and Signals
The Cumulative Volume Delta Z Score comes with pre-configured alert conditions for:
Z-Score Crossovers: Alerts are triggered when the Z-Score crosses the 0 line, indicating a potential trend reversal.
Shifting Trend: Alerts for when the Z-Score shifts direction, signaling a change in market sentiment.
Divergence Detection: Alerts for both regular and hidden bullish and bearish divergences, offering potential reversal signals.
Extreme Imbalances: Alerts when the Z-Score reaches extreme positive or negative levels, indicating overbought or oversold market conditions.
Applications in Trading
Trend Identification: Use the Z-Score to confirm bullish or bearish trends based on cumulative volume data, filtering out noise and false signals.
Reversal Signals: Divergences between price and CVD can help identify potential trend reversals, making it a powerful tool for swing traders.
Volume-Based Confirmation: The Z-Score allows traders to confirm price movements with volume data, providing more reliable signals compared to price action alone.
Divergence Strategy: Use the divergence signals to identify potential points of entry, particularly when regular or hidden divergences appear.
Volatility and Market Sentiment: The Z-Score provides insights into market volatility by measuring the deviation of CVD from its historical mean, helping to predict price movement strength.
The Cumulative Volume Delta Z Score is a powerful tool that combines volume analysis with statistical normalization. By focusing on volume imbalances and applying Z-Score normalization, this indicator provides clear, reliable signals for trend identification and potential reversals. It is especially useful for filtering out market noise and ensuring that trades are based on significant price movements driven by substantial volume changes.
This indicator is perfect for traders looking to add volume-based analysis to their strategy, offering a more robust and accurate way to gauge market sentiment and trend strength.
Cumulative Volume Delta Profile and Heatmap [BackQuant]Cumulative Volume Delta Profile and Heatmap
A multi-view CVD workstation that measures buying vs selling pressure, renders a price-aligned CVD profile with Point of Control, paints an optional heatmap of delta intensity, and detects classical CVD divergences using pivot logic. Built for reading who is in control, where participation clustered, and when effort is failing to produce result.
What is CVD
Cumulative Volume Delta accumulates the difference between aggressive buys and aggressive sells over time. When CVD rises, buyers are lifting the offer more than sellers are hitting the bid. When CVD falls, the opposite is true. Plotting CVD alongside price helps you judge whether price moves are supported by real participation or are running on fumes.
Core Features
Visual Analysis Components
CVD Columns - Plot of cumulative delta, colored by side, for quick read of participation bias.
CVD Profile - Price-aligned histogram of CVD accumulation using user-set bins. Shows where net initiative clustered.
Split Buy and Sell CVD - Optional two-sided profile that separates positive and negative CVD into distinct wings.
POC - Point of Control - The price level with the highest absolute CVD accumulation, labeled and line-marked.
Heatmap - Semi-transparent blocks behind price that encode CVD intensity across the last N bars.
Divergence Engine - Pivot-based detection of Bearish and Bullish CVD divergences with optional lines and labels.
Stats Panel - Top level metrics: Total CVD, Buy and Sell totals with percentages, Delta Ratio, and current POC price.
How it works
Delta source and sampling
You select an Anchor Timeframe that defines the higher time aggregation for reading the trend of CVD.
The script pulls lower timeframe volume delta and aggregates it to the anchor window. You can let it auto-select the lower timeframe or force a custom one.
CVD is then accumulated bar by bar to form a running total. This plot shows the direction and persistence of initiative.
Profile construction
The recent price range is split into Profile Granularity bins.
As price traverses a bin, the current delta contribution is added to that bin.
If Split Buy and Sell CVD is enabled, positive CVD goes to the right wing and negative CVD to the left wing.
Widths are scaled by each side’s maximum so you can compare distribution shape at a glance.
The Point of Control is the bin with the highest absolute CVD. This marks where initiative concentrated the most.
Heatmap
For each bin, the script computes intensity as absolute CVD relative to the maximum bin value.
Color is derived from the side in control in that bin and shaded by intensity.
Heatmap Length sets how far back the panels extend, highlighting recurring participation zones.
Divergence model
You define pivot sensitivity with Pivot Left and Right .
Bearish divergence triggers when price confirms a higher high while CVD fails to make a higher high within a configurable Delta Tolerance .
Bullish divergence triggers when price confirms a lower low while CVD fails to make a lower low.
On trigger, optional link lines and labels are drawn at the pivots for immediate context.
Key Settings
Delta Source
Anchor Timeframe - Higher TF for the CVD narrative.
Custom Lower TF and Lower Timeframe - Force the sampling TF if desired.
Pivot Logic
Pivot Left and Right - Bars to each side for swing confirmation.
Delta Tolerance - Small allowance to avoid near-miss false positives.
CVD Profile
Show CVD Profile - Toggle profile rendering.
Split Buy and Sell CVD - Two-sided profile for clearer side attribution.
Show Heatmap - Project intensity panels behind price.
Show POC and POC Color - Mark the dominant CVD node.
Profile Granularity - Number of bins across the visible price range.
Profile Offset and Profile Width - Position and scale the profile.
Profile Position - Right, Left, or Current bar alignment.
Visuals
Bullish Div Color and Bearish Div Color - Colors for divergence artifacts.
Show Divergence Lines and Labels - Visualize pivots and annotations.
Plot CVD - Column plot of total CVD.
Show Statistics and Position - Toggle and place the summary table.
Reading the display
CVD columns
Rising CVD confirms buyers are in control. Falling CVD confirms sellers.
Flat or choppy CVD during wide price moves hints at passive or exhausted participation.
CVD profile wings
Thick right wing near a price zone implies heavy buy initiative accumulated there.
Thick left wing implies heavy sell initiative.
POC marks the strongest initiative node. Expect reactions on first touch and rotations around this level when the tape is balanced.
Heatmap
Brighter blocks indicate stronger historical net initiative at that price.
Stacked bright bands form CVD high volume nodes. These often behave like magnets or shelves for future trade.
Divergences
Bearish - Price prints a higher high while CVD fails to do so. Effort is not producing result. Potential fade or pause.
Bullish - Price prints a lower low while CVD fails to do so. Capitulation lacks initiative. Potential bounce or reversal.
Stats panel
Total CVD - Net initiative over the window.
Buy and Sell volume with percentages - Side composition.
Delta Ratio - Buy over Sell. Values above 1 favor buyers, below 1 favor sellers.
POC Price - Current control node for plan and risk.
Workflows
Trend following
Choose an Anchor Timeframe that matches your holding period.
Trade in the direction of CVD slope while price holds above a bullish POC or below a bearish POC.
Use pullbacks to CVD nodes on your profile as entry locations.
Trend weakens when price makes new highs but CVD stalls, or new lows while CVD recovers.
Mean reversion
Look for divergences at or near prior CVD nodes, especially the POC.
Fade tests into thick wings when the side that dominated there now fails to push CVD further.
Target rotations back toward the POC or the opposite wing edge.
Liquidity and execution map
Treat strong wings and heatmap bands as probable passive interest zones.
Expect pauses, partial fills, or flips at these shelves.
Stops make sense beyond the far edge of the active wing supporting your idea.
Alerts included
CVD Bearish Divergence and CVD Bullish Divergence.
Price Cross Above POC and Price Cross Below POC.
Extreme Buy Imbalance and Extreme Sell Imbalance from Delta Ratio.
CVD Turn Bullish and CVD Turn Bearish when net CVD crosses zero.
Price Near POC proximity alert.
Best practices
Use a higher Anchor Timeframe to stabilize the CVD story and a sensible Profile Granularity so wings are readable without clutter.
Keep Split mode on when you want to separate initiative attribution. Turn it off when you prefer a single net profile.
Tune Pivot Left and Right by instrument to avoid overfitting. Larger values find swing divergences. Smaller values find micro fades.
If volume is thin or synthetic for the symbol, CVD will be less reliable. The script will warn if volume is zero.
Trading applications
Context - Confirm or question breakouts with CVD slope.
Location - Build entries at CVD nodes and POC.
Timing - Use divergence and POC crosses for triggers.
Risk - Place stops beyond the opposite wing or outside the POC shelf.
Important notes and limits
This is a price and volume based study. It does not access off-book or venue-level order flow.
CVD profiles are built from the data available on your chart and the chosen lower timeframe sampling.
Like all volume tools, readings can distort during roll periods, holidays, or feed anomalies. Validate on your instrument.
Technical notes
Delta is aggregated from a lower timeframe into an Anchor Timeframe narrative.
Profile bins update in real time. Splitting by side scales each wing independently so both are readable in the same panel.
Divergences are confirmed using standard pivot definitions with user-set tolerances.
All profile drawing uses fixed X offsets so panels and POC do not swim when you scroll.
Quick start
Anchor Timeframe = Daily for intraday context.
Split Buy and Sell CVD = On.
Profile Granularity = 100 to 200, Profile Position = Right, Width to taste.
Pivot Left and Right around 8 to 12 to start, then adapt.
Turn on Heatmap for a fast map of interest bands.
Bottom line
CVD tells you who is doing the lifting. The profile shows where they did it. Divergences tell you when effort stops paying. Put them together and you get a clear read on control, location, and timing for both trend and mean reversion.
Adaptive Volume Delta Map---
📊 Adaptive Volume Delta Map (AVDM)
What is Adaptive Volume Delta Map (AVDM)?
The Adaptive Volume Delta Map (AVDM) is a smart, multi-timeframe indicator that visualizes buy and sell volume imbalances directly on the chart.
It adapts automatically to the best available data resolution (tick, second, minute, or daily), allowing traders to analyze market activity with micro-level precision .
In addition to calculating volume delta (the difference between buying and selling pressure), AVDM can display a Volume Distribution Map — a per-price-level visualization showing how volume is split between buyers and sellers.
Key Features
✅ Adaptive Resolution Selection — Automatically chooses the highest possible data granularity — from tick to daily timeframe.
✅ Volume Delta Visualization — Displays delta candles reflecting the dominance of buyers (green), sellers (red), and delta (orange).
✅ Per-Level Volume Map (optional) — Shows detailed buy/sell volume distribution per price level, grouped by `Ticks Per Row`.
✅ Bid/Ask Classification — When enabled, AVDM uses bid/ask logic to classify trade direction with greater accuracy.
✅ Smart Auto-Disable Protection — Automatically disables volume map if too many price levels (>50) are detected — preventing performance degradation.
Inputs Overview
Use Seconds Resolution — Enables use of second-level data (if your TradingView subscription allows it).
Use Tick Resolution — Enables tick-based analysis for the most detailed view. If available, enable both tick and seconds resolution.
Use Bid/Ask Calculated — Uses bid/ask midpoint logic to classify trades.
Show Volume Distribution — Toggles per-price-level buy/sell volume visualization.
Ticks Per Row — Controls how many ticks are grouped per volume level. Reduce this value for finer detail, or increase it to reduce visual load.
Calculated Bars — Sets how many historical bars the indicator should process. Higher value increases accuracy but may impact performance.
How to Use
1. Add the indicator to your chart.
2. Ensure that your symbol provides volume data (and preferably tick or second-level data).
3. The indicator will automatically select the optimal timeframe for detailed calculation.
4. If your TradingView subscription allows second-level data , enable “Use Seconds Resolution.”
5. If your subscription allows tick-level data , enable both “Use Tick Resolution” and “Use Seconds Resolution.”
6. Adjust the “Calculated Bars” input to set how many historical bars the indicator should process.
7. Observe the Volume Delta Candles :
* Green = Buy pressure dominates
* Red = Sell pressure dominates
8. To see buy/sell clustering by price, enable “Show Volume Distribution.”
9. If the indicator disables the map and shows:
" Volume Distribution disabled: Too many price levels detected (>50). Try decreasing 'Ticks Per Row' or using a lower chart resolution. If you don’t care about the map, just turn off 'Show Volume Distribution'. "
— follow the instructions to reduce chart load.
Notes
* Automatically adapts to your chart’s resolution and data availability.
* If your symbol doesn’t provide volume data, a runtime warning will appear.
* Works best on futures , FX , and crypto instruments with high-frequency volume streams.
Why Traders Love It
AVDM combines adaptive resolution , volume delta analysis , and visual distribution mapping into one clean, efficient tool.
Perfect for traders studying:
* Market microstructure
* Aggressive vs. passive participation
* Volume absorption
* Order flow imbalance zones
* Delta-based divergence signals
Technical Highlights
* Built with Pine Script v6
* Adaptive resolution logic (`security_lower_tf`)
* Smart memory-safe map rendering
* Dynamic bid/ask classification
* Automatic overload protection
---
Cumulative Volume Delta (CVD)█ OVERVIEW
Cumulative Volume Delta (CVD) is a volume-based trading indicator that provides a visual representation of market buying and selling pressure by calculating the difference in traded volumes between the two sides. It uses intrabar information to obtain more precise volume delta information than methods using only the chart's timeframe.
Volume delta is the net difference between Buy Volume and Sell Volume. Positive volume delta indicates that buy volume is more than sell volume, and opposite. So Cumulative Volume Delta (CVD) is a running total/cumulation of volume delta values, where positive VD gets added to the sum and negative VD gets subtracted from the sum.
I found simple and fast solution how to calculate CVD, so made plain and concise code, here is CVD function :
cvd(_c, _o, _v) =>
var tcvd = 0.0, delta = 0.0
posV = 0.0, negV = 0.0
totUV = 0.0, totDV = 0.0
switch
_c > _o => posV += _v
_c < _o => negV -= _v
_c > nz(_c ) => posV += _v
_c < nz(_c ) => negV -= _v
nz(posV ) > 0 => posV += _v
nz(negV ) < 0 => negV -= _v
totUV += posV
totDV += negV
delta := totUV + totDV
cvd = tcvd + delta
tcvd += delta
cvd
where _c, _o, _v are close, open and volume of intrabar much lower timeframe.
Indicator uses intrabar information to obtain more precise volume delta information than methods using only the chart's timeframe.
Intrabar precision calculation depends on the chart's timeframe:
CVD is good to use together with open interest, volume and price change.
For example if CVD is rising and price makes good move up in short period and volume is rising and open interest makes good move up in short period and before was flat market it is show big chance to pump.
Volume Suite - By Leviathan (CVD, Volume Delta, Relative Volume)Volume Suite is an all-in-one script that includes several volume-based indicators such as CVD, Volume Delta, Relative Volume, Buy/Sell Volume, Cumulative Relative Volume and more. Additionally, it offers fully customisable appearance and features for improved data visualization, such as highlights for high volume activity, small price changes with high volume, or large price changes with low volume and more.
Data available in version 1:
- Volume Delta
Volume Delta is the net difference between Buy Volume and Sell Volume at a given bar. Positive Delta indicates that Buy Volume > Sell Volume, while Negative Delta means that Sell Volume > Buy Volume. As there is not way to get tick data on Tradingview, calculating Volume Delta is improvised by using the direction of lower timeframe candles and their volume.
- Cumulative Volume Delta (CVD)
CVD is a running total/cumulation of Volume Delta values, where positive VD gets added to the sum and negative VD gets subtracted from the sum. It can be used for trend strength analysis, divergence strategies, sentiment, etc.
- Buy/Sell Volume
Buy and Sell Volume provides an insight into volume activity in a given bar by estimating the buying/selling volume based on the direction of lower timeframe candles and their volume.
- Relative Volume
Relative Volume is used to compare current trading volume to past trading volume over a given period. For instance, a relative volume of 1.0 indicates that volume is at an average level, while a relative volume of 2.0 suggests that the volume is twice as high as the average.
- Cumulative Relative Volume (CRVOL)
CRVOL is a running total/cumulation of Relative Volume values, where RVOL at close>open gets added to the sum and RVOL at close
Volume Profile Volume Delta OI Delta [Kioseff Trading]Hello!
This script serves to distinguish volume delta for any asset and open interest delta for Binance perpetual futures.
The image above provides further explanation of functionality and color correspondence.
The image above shows the indicator calculating volume at each tick level and displaying the metric.
The label color outline (neon effect) is configurable; the image above is absent the feature.
The image above shows Open Interest (OI) Delta calculated - similar to how the script calculates volume delta - for a Binance Perpetual Future pair.
This feature only works for Binance Futures pairs; the script will not load when trying to calculate OI Delta on other assets.
Additionally, a heatmap is displayable should you configure the indicator to calculate it.
The image above shows a heatmap using volume delta calculations.
The image above shows a heatmap using OI delta calculations.
Of course, these calculations - when absent requisite data - require some assumptions to better replicate calculations with access to requisite data.
The indicator assumes a 60/40 split when a tick level is traded at and only one metric - "buy volume" or "sell volume" is recorded. This means there shouldn't be any levels recorded where "buy volume" is greater than 0 and "sell volume" equals 0 and vice versa. While this assumption was performed arbitrarily, it may help better replicate volume delta and OI delta calculations seen on other charting platforms.
This option is configurable; you can select to have the script not assume a 60/40 split and instead record volume "as is" at the corresponding tick level.
The script also divides volume and open interest if a one-minute bar violates multiple tick levels. The volume or open interest generated on the one-minute bar will be divided by the number of tick levels it exceeds. The results are, subsequently, appended to the violated tick levels.
Further, the script can be set to recalculate after a user-defined time threshold is exceeded. You can also define the percentage or tick distance between levels.
Also, it'd be great if this indicator can nicely replicate volume delta indicators on other charting platforms. If you've any ideas on how price action can be used to better assume volume at the corresponding price area please let me know!
Thank you (:
Cumulative Volume DeltaCumulative Volume Delta (CVD) Indicator
This indicator is a modification of the Trading View CVD indicator. Cumulative Volume Delta (CVD), which represents the net difference between up volume (volume traded as the price increases) and down volume (volume traded as the price decreases) over a chosen Anchor Period.
The data for the CVD calculation is requested using the built-in ta.requestVolumeDelta function from a lower timeframe to approximate the directional volume with greater precision. This lower timeframe is either automatically selected based on the chart's timeframe or can be customized by the user.
Key Features and Inputs
Anchor Period: Defines the period over which the volume delta is accumulated and plotted. The default is "1D" (Daily), but it can be changed to any higher timeframe (e.g., "1W" for Weekly) to analyze CVD across different cycles.
CVD Candle Plot: The calculated volume delta values are plotted as a custom candle, where:
The open and close of the CVD candle represent the volume delta at the start and end of the anchor period, respectively.
The high and low represent the maximum and minimum volume delta reached during that period.
Up/Down Coloring Logic: The color of the CVD candle is determined by the directional movement of the price during the anchor period, allowing traders to quickly correlate volume delta with price action. Users can select between two methods via the "Strong Up/Down Coloring" input:
Strong Up/Down (Default): The candle is colored bullish (Teal) if the current price closes above the previous bar's high or bearish (Red) if it closes below the previous bar's low. This logic highlights significant momentum.
Regular Up/Down: The candle is colored bullish (Teal) if the close is greater than the open (price moved up) or bearish (Red) if the close is less than the open (price moved down).
Lower Timeframe Selection: This determines the resolution of the up and down volume components.
By default, the script automatically selects an appropriate lower timeframe (e.g., "1" minute for intraday charts, "5" minutes for daily charts) to balance historical data availability with calculation precision.
An option is provided to customize this "Lower Timeframe" for advanced users seeking higher or lower resolution.
The CVD indicator is a powerful tool for analyzing order flow dynamics and assessing the genuine strength of price movements by comparing the aggregate buying pressure (up volume) against the selling pressure (down volume).
Technical Notes (Code Details)
Language: Pine Script® //@version=6.
Function: Utilizes the ta.requestVolumeDelta() function with a user-defined anchorInput (default "1D") and a determined lowerTimeframe to retrieve the relevant delta data: .
Error Handling: Includes a check to confirm the symbol provides volume data, preventing runtime errors.






















