Time & volume point of control / quantifytoolsWhat are TPOC & VPOC?
TPOC (time point of control) and VPOC (volume point of control) are points in price where highest amount of time/volume was traded. This is considered key information in a market profile, as it shows where market participant interest was highest. Unlike full fledged market profile that shows total time/volume distribution, this script shows the points of control for each candle, plotted with a line (time) and a dot (volume). The script hides your candles/bars by default and forms a line in the middle representing candle range. In case of candles, borders will still be visible. This feature can be turned off in the settings.
Volume and time data are fetched from a lower timeframe that is automatically adjusted to fit the timeframe you're using. By default, the following settings are applied:
Charts <= 30 min: 1 minute timeframe
Charts > 30 min & <= 3 hours : 5 minute timeframe
Charts > 3 hours & <= 8 hours : 15 minute timeframe
Charts > 8 hours & <= 1D: 1 hour timeframe
Charts > 1D & <= 3D : 2 hour timeframe
Charts > 3D: 4 hour timeframe
Timeframe settings can be changed via input menu. The lower the timeframe, the more precision you get but with the cost of less historical data and slower loading time. Users can also choose which source to use for determining price for points of control, e.g. using close as source, the point of control is set to match the value of lower timeframe candle close. This could be replaced with OHLC4 for example, resulting in a point of control based on OHLC average.
To identify more profound points of market participant interest, TPOC & VPOC as percentage of total time/volume thresholds can be set via input menu. When a point of control is equal to or greater than the set percentage threshold, visual elements will be highlighted in a different color, e.g. 50% VPOC threshold will activate a highlight whenever volume traded at VPOC is equal to or greater than 50% of total volume. All colors are customizable.
VPOC is defined by fetching lower timeframe candle with the most amount of volume traded and using its close (by default) as a mark for point of control. For TPOC, each candle is divided into 10 lots which are used for calculating amount of closes taking place within the bracket values. The lot with highest amount of closes will be considered a point of control. This mark is displayed in the middle point of a lot:
How to utilize TPOC & VPOC
Example #1: Trapped market participants
One or both points of control at one end of candle range (wick tail) and candle close at the other end serves as an indication of market participants trapped in an awkward position. When price runs away further from these trapped participants, they are eventually forced to cover and drive price even further to the opposite direction:
Example #2: Trend initiation
A large move that leaves TPOC behind while VPOC is supportive serves as an indication of a trend initiation. Essentially, this is one way to identify an event where price traded sideways most of the time and suddenly moved away with volume:
Example #3: POC supported trend
A trend is healthy when it's supported by a point of control. Ideally you want to see either time or volume supporting a trend:
Cari dalam skrip untuk "volume"
Aggregated Delta (Buy/Sell) Volume - InFinito||||||||||||||||CREDITS||||||||||||||||
Modified & Updated script from MARKET VOLUME by Ricardo M Arjona @XeL_Arjona that Includes Aggregated Volume , Delta Volume , Volume by Side
Aggregation code originally from Crypt0rus
||||||||||||||||NOTES||||||||||||||||
- Calculated based on Aggregated Volume instead of by symbol volume . Using aggregated data makes it more accurate and allows to compare volume flow between different kinds of markets (Spot, Futures , Perpetuals, Futures+Perpetuals and All Volume ).
- As well, in order to make the data as accurate as possible, the data from each exchange aggregated is normalized to report always in terms of 1 BTC . In case this indicator is used for another symbol, the calculations can be adjusted manually to make it always report data in terms of 1 contract/coin.
- The indicator can be used for any coin/symbol to aggregate volume , but it has to be set up manually
- The indicator can be used with specific symbol data only by disabling the aggregation option, which allows for it to be used on any symbol
- Previously Included with "Aggr. CDV / Delta Volume" this functionality has been removed from the latter indicator for functionality and simplicity purposes.
||||||||||||||||FUNCTIONALITY||||||||||||||||
Aggregated Delta Volume: Based off Xel_Arjona's calculation, buy and sell volume is estimated each period. This indicators can display both Buy Volume and Sell Volume for each period.
By Default, this indicator displays Delta Volume by side, which is the difference between the estimated buy and sell volume.
By checking the Option "Show all volume by side", instead of the Delta volume, all Buy and Sell Volume will be displayed by side
Volume Variation Index IndicatorThis tool is a quantitative tip for analysts who study volumes or create volume based trading strategies.
Like all our projects, we start with a statistical logic to which we add coding logic.
This indicator can save a huge amount of time in calculating the variation of volume between sessions .
How it work
The indicator calculates the difference between the volume of the last closing bar and the volume of the previous closing bar. It shows the difference between the trading volumes.
The session in which the trading volume is up are represented in green.
Red session represent trading volume down.
We have added a third function.
Through the User Interface the trader can activate or deactivate the variation average.
The indicator is able to calculate the average of the volume changes by representing it with a blue line.
To activate the average, simply set it to ON in the User Interface.
By default, the indicator calculates the average of the last 10 periods, but you are free to set this parameter in the User Interface.
Data access
To access the data, simply move the cursor. When you move the cursor over the green bars, the increase data will be displayed in green. By hovering the cursor over the red bars you will see the decrease data in red. By hovering the cursor over the average will show you the average data in blue.
The data is displayed in the top left corner of the indicator dashboard.
If you found this indicator helpful, please like our script.
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.
Volume Delta Volume Signals by Claudio [hapharmonic]// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © hapharmonic
//@version=6
FV = format.volume
FP = format.percent
indicator('Volume Delta Volume Signals by Claudio ', format = FV, max_bars_back = 4999, max_labels_count = 500)
//------------------------------------------
// Settings |
//------------------------------------------
bool usecandle = input.bool(true, title = 'Volume on Candles',display=display.none)
color C_Up = input.color(#12cef8, title = 'Volume Buy', inline = ' ', group = 'Style')
color C_Down = input.color(#fe3f00, title = 'Volume Sell', inline = ' ', group = 'Style')
// ✅ Nueva entrada para colores de señales
color buySignalColor = input.color(color.new(color.green, 0), "Buy Signal Color", group = "Signals")
color sellSignalColor = input.color(color.new(color.red, 0), "Sell Signal Color", group = "Signals")
string P_ = input.string(position.top_right,"Position",options = ,
group = "Style",display=display.none)
string sL = input.string(size.small , 'Size Label', options = , group = 'Style',display=display.none)
string sT = input.string(size.normal, 'Size Table', options = , group = 'Style',display=display.none)
bool Label = input.bool(false, inline = 'l')
History = input.bool(true, inline = 'l')
// Inputs for EMA lengths and volume confirmation
bool MAV = input.bool(true, title = 'EMA', group = 'EMA')
string volumeOption = input.string('Use Volume Confirmation', title = 'Volume Option', options = , group = 'EMA',display=display.none)
bool useVolumeConfirmation = volumeOption == 'none' ? false : true
int emaFastLength = input(12, title = 'Fast EMA Length', group = 'EMA',display=display.none)
int emaSlowLength = input(26, title = 'Slow EMA Length', group = 'EMA',display=display.none)
int volumeConfirmationLength = input(6, title = 'Volume Confirmation Length', group = 'EMA',display=display.none)
string alert_freq = input.string(alert.freq_once_per_bar_close, title="Alert Frequency",
options= ,group = "EMA",
tooltip="If you choose once_per_bar, you will receive immediate notifications (but this may cause interference or indicator repainting).
\n However, if you choose once_per_bar_close, it will wait for the candle to confirm the signal before notifying.",display=display.none)
//------------------------------------------
// UDT_identifier |
//------------------------------------------
type OHLCV
float O = open
float H = high
float L = low
float C = close
float V = volume
type VolumeData
float buyVol
float sellVol
float pcBuy
float pcSell
bool isBuyGreater
float higherVol
float lowerVol
color higherCol
color lowerCol
//------------------------------------------
// Calculate volumes and percentages |
//------------------------------------------
calcVolumes(OHLCV ohlcv) =>
var VolumeData data = VolumeData.new()
data.buyVol := ohlcv.V * (ohlcv.C - ohlcv.L) / (ohlcv.H - ohlcv.L)
data.sellVol := ohlcv.V - data.buyVol
data.pcBuy := data.buyVol / ohlcv.V * 100
data.pcSell := 100 - data.pcBuy
data.isBuyGreater := data.buyVol > data.sellVol
data.higherVol := data.isBuyGreater ? data.buyVol : data.sellVol
data.lowerVol := data.isBuyGreater ? data.sellVol : data.buyVol
data.higherCol := data.isBuyGreater ? C_Up : C_Down
data.lowerCol := data.isBuyGreater ? C_Down : C_Up
data
//------------------------------------------
// Get volume data |
//------------------------------------------
ohlcv = OHLCV.new()
volData = calcVolumes(ohlcv)
// Plot volumes and create labels
plot(ohlcv.V, color=color.new(volData.higherCol, 90), style=plot.style_columns, title='Total',display = display.all - display.status_line)
plot(ohlcv.V, color=volData.higherCol, style=plot.style_stepline_diamond, title='Total2', linewidth = 2,display = display.pane)
plot(volData.higherVol, color=volData.higherCol, style=plot.style_columns, title='Higher Volume', display = display.all - display.status_line)
plot(volData.lowerVol , color=volData.lowerCol , style=plot.style_columns, title='Lower Volume',display = display.all - display.status_line)
S(D,F)=>str.tostring(D,F)
volStr = S(math.sign(ta.change(ohlcv.C)) * ohlcv.V, FV)
buyVolStr = S(volData.buyVol , FV )
sellVolStr = S(volData.sellVol , FV )
// ✅ MODIFICACIÓN: Porcentaje sin decimales
buyPercentStr = str.tostring(math.round(volData.pcBuy)) + " %"
sellPercentStr = str.tostring(math.round(volData.pcSell)) + " %"
totalbuyPercentC_ = volData.buyVol / (volData.buyVol + volData.sellVol) * 100
sup = not na(ohlcv.V)
if sup
TC = text.align_center
CW = color.white
var table tb = table.new(P_, 6, 6, bgcolor = na, frame_width = 2, frame_color = chart.fg_color, border_width = 1, border_color = CW)
tb.cell(0, 0, text = 'Volume Candles', text_color = #FFBF00, bgcolor = #0E2841, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 0, 5, 0)
tb.cell(0, 1, text = 'Current Volume', text_color = CW, bgcolor = #0B3040, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 1, 1, 1)
tb.cell(0, 2, text = 'Buy', text_color = #000000, bgcolor = #92D050, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 2, text = 'Sell', text_color = #000000, bgcolor = #FF0000, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 3, text = buyVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 3, text = sellVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 5, text = 'Net: ' + volStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 5, 1, 5)
tb.cell(0, 4, text = buyPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 4, text = sellPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
cellCount = 20
filledCells = 0
for r = 5 to 1 by 1
for c = 2 to 5 by 1
if filledCells < cellCount * (totalbuyPercentC_ / 100)
tb.cell(c, r, text = '', bgcolor = C_Up)
else
tb.cell(c, r, text = '', bgcolor = C_Down)
filledCells := filledCells + 1
filledCells
if Label
sp = ' '
l = label.new(bar_index, ohlcv.V,
text=str.format('Net: {0}\nBuy: {1} ({2})\nSell: {3} ({4})\n{5}/\\\n {5}l\n {5}l',
volStr, buyVolStr, buyPercentStr, sellVolStr, sellPercentStr, sp),
style=label.style_none, textcolor=volData.higherCol, size=sL, textalign=text.align_left)
if not History
(l ).delete()
//------------------------------------------
// Draw volume levels on the candlesticks |
//------------------------------------------
float base = na,float value = na
bool uc = usecandle and sup
if volData.isBuyGreater
base := math.min(ohlcv.O, ohlcv.C)
value := base + math.abs(ohlcv.O - ohlcv.C) * (volData.pcBuy / 100)
else
base := math.max(ohlcv.O, ohlcv.C)
value := base - math.abs(ohlcv.O - ohlcv.C) * (volData.pcSell / 100)
barcolor(sup ? color.new(na, na) : ohlcv.C < ohlcv.O ? color.red : color.green,display = usecandle? display.all:display.none)
UseC = uc ? volData.higherCol:color.new(na, na)
plotcandle(uc?base:na, uc?base:na, uc?value:na, uc?value:na,
title='Body', color=UseC, bordercolor=na, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
plotcandle(uc?ohlcv.O:na, uc?ohlcv.H:na, uc?ohlcv.L:na, uc?ohlcv.C:na,
title='Fill', color=color.new(UseC,80), bordercolor=UseC, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
//------------------------------------------------------------
// Plot the EMA and filter out the noise with volume control. |
//------------------------------------------------------------
float emaFast = ta.ema(ohlcv.C, emaFastLength)
float emaSlow = ta.ema(ohlcv.C, emaSlowLength)
bool signal = emaFast > emaSlow
color c_signal = signal ? C_Up : C_Down
float volumeMA = ta.sma(ohlcv.V, volumeConfirmationLength)
bool crossover = ta.crossover(emaFast, emaSlow)
bool crossunder = ta.crossunder(emaFast, emaSlow)
isVolumeConfirmed(source, length, ma) =>
math.sum(source > ma ? source : 0, length) >= math.sum(source < ma ? source : 0, length)
bool ISV = isVolumeConfirmed(ohlcv.V, volumeConfirmationLength, volumeMA)
bool crossoverConfirmed = crossover and (not useVolumeConfirmation or ISV)
bool crossunderConfirmed = crossunder and (not useVolumeConfirmation or ISV)
PF = MAV ? emaFast : na
PS = MAV ? emaSlow : na
p1 = plot(PF, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
p2 = plot(PS, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
fill(p1, p2, top_value=crossover ? emaFast : emaSlow,
bottom_value =crossover ? emaSlow : emaFast,
top_color =color.new(c_signal, 80),
bottom_color =color.new(c_signal, 95)
)
// ✅ Usar colores configurables para señales
plotshape(crossoverConfirmed and MAV, style=shape.triangleup , location=location.belowbar, color=buySignalColor , size=size.small, force_overlay=true,display =display.pane)
plotshape(crossunderConfirmed and MAV, style=shape.triangledown, location=location.abovebar, color=sellSignalColor, size=size.small, force_overlay=true,display =display.pane)
string msg = '---------\n'+"Buy volume ="+buyVolStr+"\nBuy Percent = "+buyPercentStr+"\nSell volume = "+sellVolStr+"\nSell Percent = "+sellPercentStr+"\nNet = "+volStr+'\n---------'
if crossoverConfirmed
alert("Price (" + str.tostring(close) + ") Crossed over MA\n" + msg, alert_freq)
if crossunderConfirmed
alert("Price (" + str.tostring(close) + ") Crossed under MA\n" + msg, alert_freq)
Heikin Ashi VolumeHeikin Ashi candles decrease market noise so that broader trends can be more easily visualized. In a typical chart utilizing Heikin Ashi candles, volume bars are colored in such a way that they also allow for the visualization of trends during a bullish/bearish move.
The Heikin Ashi Volume indicator allows the trader to continue to use the same volume bar coloring technique to visualize trends without having to utilize the Heikin Ashi candles, since a Heikin Ashi candle’s OHLC values are not true prices but instead based on calculations in order to provide the ‘denoising’ effect they are known for.
In addition to providing the Heikin Ashi Volume coloring effects, the Heikin Ashi Volume indicator also allows the user to set a volume threshold level where the bar colors will be darker unless volume is beyond that threshold, helping traders quickly determine if there is enough participation in the market at that time to justify taking risk in a trade when the market isn’t very active. The user has the option to show or hide the threshold line, change the colors of the bullish/bearish colors (for both above and below threshold volumes) and the option for the indicator to gradually brighten the bar colors are they approach the threshold instead of having a clear line of demarcation showing volume above or below the set threshold.
CVD Divergence & Volume ProfileThis Pine Script indicator, named "CVD Divergence & Volume Profile," is designed to identify potential trading opportunities by combining Cumulative Volume Delta (CVD) divergence with Volume Profile levels and an optional Simple Moving Average (SMA) trend filter. It plots signals directly on the price chart.
Here's a breakdown of what each component does and how to potentially trade with it:
1. Cumulative Volume Delta (CVD) Divergence
What it does: CVD measures the cumulative difference between buying and selling volume. A rising CVD indicates more buying pressure, while a falling CVD indicates more selling pressure. Divergence occurs when the price action contradicts the CVD's direction, suggesting a potential shift in momentum or trend reversal.
Bearish Divergence: The price makes a higher high, but the CVD makes a lower high (or fails to make a new high). This suggests that despite the price increasing, the underlying buying pressure is weakening.
Bullish Divergence: The price makes a lower low, but the CVD makes a higher low (or fails to make a new low). This suggests that despite the price decreasing, the underlying selling pressure is weakening.
Visualization:
Red triangle pointing down on the chart indicates a Bearish Divergence signal.
Green triangle pointing up on the chart indicates a Bullish Divergence signal.
2. Volume Profile Levels (VAH, VAL, POC)
What it does: The indicator calculates simplified Volume Profile levels over a user-defined vp_range (number of candles). These levels represent areas where significant trading activity has occurred:
VAH (Value Area High): The upper boundary of the "Value Area," where 70% of the volume traded.
VAL (Value Area Low): The lower boundary of the "Value Area," where 70% of the volume traded.
POC (Point of Control): The price level within the vp_range where the most volume was traded.
Significance: These levels often act as significant support and resistance zones.
Visualization:
Orange lines for VAH and VAL.
Yellow line for POC.
Zone Proximity (zone_thresh): The indicator only generates divergence signals if the current close price is within a specified percentage zone_thresh of either VAH, VAL, or POC. This filters signals to areas of high liquidity and potential turning points.
3. Trend Filter (SMA)
What it does: This is an optional filter (use_trend_filter) that uses a Simple Moving Average (sma_period, default 200).
Significance: It helps ensure that divergence signals are traded in alignment with the broader market trend, potentially increasing their reliability.
For long signals (bullish divergence), the price (close) must be above the SMA (indicating an uptrend).
For short signals (bearish divergence), the price (close) must be below the SMA (indicating a downtrend).
Visualization: A blue line on the chart representing the SMA.
How to Trade with It (Potential Strategies)
The indicator aims to provide high-probability entry points by combining multiple confirming factors. Here's how you might interpret and trade the signals:
Identify Divergence: Look for the triangle signals on your chart (red for bearish, green for bullish).
Confirm Proximity to Volume Profile Levels: The signal itself confirms that the price is near a significant Volume Profile level (VAH, VAL, or POC). These are areas where price often reacts.
Bullish Signal (Green Triangle): This suggests buying momentum is returning after a price decline, especially when the price is near VAL or POC, which might act as support.
Bearish Signal (Red Triangle): This suggests selling momentum is increasing after a price rally, especially when the price is near VAH or POC, which might act as resistance.
Check Trend Alignment (SMA Filter):
For a long trade: You would ideally want to see a green triangle (bullish divergence) while the price is above the blue SMA line. This indicates a bullish divergence confirming a potential bounce within an existing uptrend.
For a short trade: You would ideally want to see a red triangle (bearish divergence) while the price is below the blue SMA line. This indicates a bearish divergence confirming a potential rejection within an existing downtrend.
Entry and Exit Considerations:
Entry: Consider entering a trade on the candle where the signal appears, or on the subsequent candle for confirmation.
Stop Loss: For a long trade, a logical stop-loss could be placed below the lowest point of the divergence, or below the VAL/POC if the signal occurred near it. For a short trade, above the highest point of the divergence or VAH/POC.
Take Profit: Targets could be set at the opposite Volume Profile level, previous swing highs/lows, or using a fixed risk-reward ratio.
Example Trading Scenario:
Long Trade: You see a green triangle (bullish divergence) printed on the chart. You notice the price is currently at the VAL (orange line). You check the blue SMA line and confirm that the price is above it (uptrend). This confluence of factors (bullish divergence, support at VAL, and uptrend) provides a strong potential long entry signal. You might enter, place your stop loss just below VAL, and target VAH or the next resistance level.
Short Trade: You see a red triangle (bearish divergence). The price is at the VAH (orange line). The price is also below the blue SMA line (downtrend). This suggests a potential short entry. You might enter, place your stop loss just above VAH, and target VAL or the next support level.
Ragi's 24h volumeThis script is a TradingView Pine Script indicator that displays the 24-hour trading volume for a given asset. It provides both the native volume of the asset and, if the asset is not already listed on Binance, also displays the 24-hour volume from Binance (if applicable). Here's a breakdown of the key components:
Volume Calculation:
It sums the volume data over different time frames: 1-minute, 5-minute (for daily charts), or 60-minute intervals.
The volume is calculated based on the asset's volume type (either "quote" volume or a calculated value of close * volume).
For crypto assets, if the volume data is unavailable, it raises an error.
Binance Volume:
If the asset is not from Binance, the script fetches 24-hour volume data from Binance for that symbol, ensuring it is using the correct currency rate.
Display:
The indicator displays a table with the 24-hour volume in the chosen position on the chart (top, middle, or bottom).
The table displays the current exchange's volume, and if applicable, the Binance volume.
The volume is color-coded based on predefined thresholds:
Attention: Displays a warning color for volumes exceeding the attention level.
Warning: Shows an alert color for volumes above the warning threshold.
Normal: Displays in standard color when the volume is lower than the warning level.
The text and background color are customizable, and users can adjust the text size and position of the table.
User Inputs:
The script allows customization of table text size, position, background color, and volume thresholds for attention and warning.
In summary, this indicator is designed to track and display 24-hour volume on a chart, with additional volume information from Binance if necessary, and provides visual cues based on volume levels to help traders quickly assess trading activity.
(Optimized) Volume Based Colored Bars Volume Based Colored Bars (VCB)
This indicator analyzes the relationship between price action and volume to provide visual cues for traders. It colors the price bars based on whether the bar's volume is high, medium, or low relative to the moving average of volume. Additionally, it distinguishes between bullish (price closed higher than it opened) and bearish (price closed lower than it opened) bars, offering a quick and intuitive way to assess market sentiment and activity.
Key Features:
Volume Classification:
High Volume: Volume is greater than 1.5 times the moving average.
Medium Volume: Volume is between 0.5 and 1.5 times the moving average.
Low Volume: Volume is less than 0.5 times the moving average.
Price Action Analysis:
Bullish Bars: Bars where the closing price is higher than the opening price.
Bearish Bars: Bars where the closing price is lower than the opening price.
Bar Colors:
Bearish High Volume: Dark red.
Bearish Medium Volume: Red.
Bearish Low Volume: Orange.
Bullish High Volume: Dark green.
Bullish Medium Volume: Lime green.
Bullish Low Volume: Aquamarine.
This indicator helps traders quickly identify when price movements are supported by significant volume, offering potential insights into market strength or weakness. Ideal for both novice and experienced traders looking for an edge in their analysis.
Cumulative Volume Delta Histogram [TradingFinder] CVD Histogram🔵 Introduction
To fully understand Cumulative Volume Delta (CVD), it’s important to start by explaining Volume Delta. In trading, "Delta" refers to the difference between two values or the rate of change between two data points. Volume Delta represents the difference between buying and selling pressure for each candlestick on a chart, and this difference can vary across different time frames.
A positive delta indicates that buying volume exceeds selling volume, while a negative delta shows that selling pressure is stronger. When buying and selling volumes are equal, the volume delta equals zero.
The Cumulative Volume Delta (CVD) indicator tracks the cumulative difference between buying and selling volumes over time, helping traders analyze market dynamics and identify reliable trading signals through CVD divergences.
🔵 How to Use
Cumulative Volume Delta (CVD) is an essential technical analysis tool that aggregates delta values for each candlestick, creating a comprehensive indicator. This helps traders evaluate overall buying and selling pressure over market swings.
Unlike standard Volume Delta, which compares the delta on a candle-by-candle basis, CVD provides a broader view of buying and selling pressure during market trends. A downward-trending CVD suggests that selling pressure is dominant, which is typically a bearish signal.
Conversely, an upward-trending CVD indicates bullish sentiment, suggesting buyers are in control. This analysis becomes even more valuable when compared with price action and market structure, helping traders predict the direction of asset prices.
🟣 How to Use CVD in Trend Analysis and Market Reversals
Understanding how to detect trend changes using Cumulative Volume Delta is crucial for traders. Typically, CVD aligns with market structure, moving in the same direction as price trends.
However, divergences between CVD and price movements or signs of volume exhaustion can be powerful indicators of potential market reversals. Recognizing these patterns helps traders make more informed decisions and improve their trading strategies.
🟣 How to Spot Trend Exhaustion with CVD
CVD is particularly effective for identifying trend exhaustion in the market. For instance, if an asset's price hits a new low, but CVD doesn’t follow, this might indicate a lack of seller interest, signaling potential exhaustion and a possible reversal.
Similarly, if an asset reaches a new high but CVD fails to follow, it can suggest that buyers lack the strength to push the market higher, indicating a possible reversal to the downside.
🟣 How to Use CVD Divergence in Price Trend Analysis
Another effective use of CVD is identifying divergences in price trends. For example, if CVD breaks a previous high or low while the price remains stable, this divergence may indicate that buying or selling pressure is being absorbed.
For instance, if CVD rises sharply without a corresponding increase in asset prices, it may suggest that sellers are absorbing the buying pressure, which could lead to a strong sell-off. Conversely, if prices remain stable while CVD declines, it may indicate that buyers are absorbing selling pressure, likely leading to a price increase once the selling subsides.
🟣 CVD Display, Candlestick vs. Histogram – What’s the Difference?
CVD can be displayed in two different formats :
Candlestick Display : In this format, the data is shown as green and red candlesticks, each representing the difference in buying and selling pressure over a given time period. This display allows traders to visually analyze market pressure along with price changes.
Histogram Display : Here, the data is represented as vertical green and red bars, where each bar’s height corresponds to the volume delta. This format offers a clearer view of the strengths and weaknesses in market buying and selling pressure.
🟣 What are the Key Settings for CVD?
Cumulative Mode : CVD offers three modes: "Total," "Periodic," and "EMA." In "Total" mode, CVD accumulates the delta from the beginning to the end of the session. In "Periodic" mode, it accumulates volume periodically, resetting at specific intervals. In "EMA" mode, the CVD is smoothed using an Exponential Moving Average (EMA) to filter out short-term fluctuations.
Period : The "Period" setting allows you to define the number of bars or intervals for "Periodic" and "EMA" modes. A shorter period captures more short-term movements, while a longer period smooths out the fluctuations and provides a broader view of market trends.
Market Ultra Data : This feature integrates data from 26 major brokers into the volume calculations, providing more reliable volume data. It’s important to specify the type of market you are analyzing (Forex, crypto, etc.) as different brokers contribute to different markets. Enabling this setting ensures the highest accuracy in volume analysis.
🔵 Conclusion
Cumulative Volume Delta (CVD) is a powerful technical indicator that helps traders assess buying and selling pressure by aggregating the delta values of each candlestick. Whether displayed as candlesticks or histograms, CVD provides insights into market trends, helping traders make informed decisions.
CVD is particularly useful in identifying divergences and exhaustion in market trends. For example, if CVD does not align with price movements, it can signal a potential trend reversal. Traders use this tool to fine-tune their entry and exit points and better predict future market movements.
In summary, CVD is a versatile tool for analyzing volume data and understanding the balance of buying and selling pressure in the market, making it an invaluable asset in any trader’s toolkit
Cumulative Delta [TradingFinder] Volume + Periodic + EMA🔵 Introduction
To fully grasp the concept of Cumulative Volume Delta (CVD), it's essential first to understand Volume Delta. In trading and technical analysis, the term "Delta" typically refers to the difference between two values or the rate of change between two data points.
Volume Delta represents the difference between buying and selling pressure, calculated for each candlestick on a chart. This difference can vary across different timeframes.
A positive delta indicates that buying volume exceeds selling volume, while a negative delta shows that selling volume is greater. When buying and selling volumes are equal, the volume delta equals zero.
🟣 What is Cumulative Volume Delta (CVD)?
Cumulative Volume Delta (CVD) is a powerful tool in technical analysis that aggregates delta values for each candlestick, creating a comprehensive indicator that helps traders assess market trends.
Unlike the standard Volume Delta, which compares delta on a candle-by-candle basis, CVD provides insight into the overall buying and selling pressure during key market swings. A downward-trending CVD suggests that selling pressure is dominating, which is typically a bearish signal.
Conversely, an upward-trending CVD indicates bullish sentiment. This analysis becomes even more significant when comparing CVD with price action and market structure, helping traders to predict asset price directions.
By evaluating market highs and lows, one can determine the market trend. A consistent rise in these points indicates an uptrend, while a consistent fall suggests a downtrend.
🔵 How to Use
Understanding how to detect trend changes using Cumulative Volume Delta is crucial for traders. Typically, CVD aligns with market structure, moving in the same direction as price trends.
However, divergences between CVD and price trends or signs of exhaustion in volume can be powerful indicators of potential market reversals. Recognizing these patterns can help traders make informed decisions and improve their trading strategies.
🟣 Identifying Trend Exhaustion with Cumulative Volume Delta (CVD)
The Cumulative Volume Delta (CVD) indicator is especially effective in identifying weakening trends in the market. For instance, if gold's price hits a new low, but CVD does not follow suit, this may indicate a lack of seller interest despite the new low, signaling potential seller exhaustion.
Most traders interpret this as a possible reversal from a bearish to a bullish trend. Similarly, if gold reaches a new high but CVD fails to do the same, it can suggest that buyers lack the strength to push the market higher, indicating a possible trend reversal.
🟣 Utilizing Cumulative Volume Delta (CVD) Divergence in Price Trend Analysis
Another effective use of CVD is identifying divergences in price trends. For example, if CVD breaks a previous high or low while the price remains stable, this divergence often indicates that buying or selling pressure is being absorbed.
For instance, if CVD rises sharply without a corresponding increase in gold prices, it may suggest that sellers are absorbing the buying pressure, potentially leading to a strong sell-off. Conversely, if gold prices remain stable while CVD declines, it could indicate that buyers are absorbing selling pressure, likely leading to a price increase once selling subsides.
🔵 Setting
Cumulative Mode : It has three modes "Total", "Periodic" and "EMA". In "Total" mode, it collects the volume from the beginning to the end. In "Periodic" mode, it accumulates the volume periodically and in "EMA" mode, it calculates the moving average of the volume.
Period : You can set the period of " Periodic " and " EMA " modes.
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
Cumulative Volume Delta (CVD) is a powerful analytical tool in financial markets that helps analysts and traders assess buying and selling pressure by aggregating and combining the volume delta for each candlestick.
CVD can indicate the strength or weakness of a market trend. When CVD moves upward, it signals that buying pressure is dominant and is considered a bullish signal; conversely, a downward movement in CVD indicates that selling pressure is stronger and is viewed as a bearish signal.
This indicator is particularly effective in identifying divergences and exhaustion in market trends. For example, if CVD does not align with price movements, it may suggest a potential trend reversal.
Traders use this information to make more informed trading decisions, especially when identifying entry and exit points in the market.
Overall, CVD is a tool that enables analysts to better understand market fluctuations and more accurately predict future market trends.
Volume Based RSI with ADXThe RSI indicator is a powerful tool that utilizes both volume and time to determine market trends. When there is a low volume of trades in a short period of time, but the trading activity is high, it is considered bullish or bearish. In the case of a bullish trend, the RSI indicator will display a green color, while a bearish trend will be represented by a red color. If there is no trading activity, the indicator will display a gray color. Additionally, if the ADX level meets the threshold level, the indicator will display a blue color. However, if the ADX level does not meet the threshold level, the indicator will revert back to displaying a gray color.
Volume Profile (Maps) [LuxAlgo]The Pine Script® developers have unleashed "maps"!
Volume Profile (Maps) displays volume, associated with price, above and below the latest price, by using maps
The largest and second-largest volume is highlighted.
🔶 USAGE
The proposed script can highlight more frequent closing prices/prices with the highest volume, potentially highlighting more liquid areas. The prices with the highest associated volume (in red and orange in the indicator) can eventually be used as support/resistance levels.
Voids within the volume profile can highlight large price displacements (volatile variations).
🔶 CONCEPTS
🔹 Maps
A map object is a collection that consists of key - value pairs
Each key is unique and can only appear once. When adding a new value with a key that the map already contains, that value replaces the old value associated with the key .
You can change the value of a particular key though, for example adding volume (value) at the same price (key), the latter technique is used in this script.
Volume is added to the map, associated with a particular price (default close, can be set at high, low, open,...)
When the map already contains the same price (key), the value (volume) is added to the existing volume at the associated price.
A map can contain maximum 50K values, which is more than enough to hold 20K bars (Basic 5K - Premium plan 20K), so the whole history can be put into a map.
🔹 Visible line/box limit
We can only display maximum 500 line.new() though.
The code locates the current (last) close, and displays volume values around this price, using lines, for example 250 lines above and 250 lines below current price.
If one side contains fewer values, the other side can show more lines, taking the maximum out of the 500 visible line limitation.
Example (max. 500 lines visible)
• 100 values below close
• 2000 values above close
-> 100 values will be displayed below close
-> 400 remaining -> 400 values will be displayed above close
Pushing the limits even further, when ' Amount of bars ' is set higher than 500, boxes - box.new() - will be used as well.
These have a limit of 500 as well, bringing the total limit to 1000.
Note that there are visual differences when boxes overlap against lines.
If this is confusing, please keep ' Amount of bars ' at max. 500 (then only lines will be used).
🔹 Rounding function
This publication contains 2 round functions, which can be used to widen the Volume Profile
Round
• "Round" set at zero -> nothing changes to the source number
• "Round" set below zero -> x digit(s) after the decimal point, starting from the right side, and rounded.
• "Round" set above zero -> x digit(s) before the decimal point, starting from the right side, and rounded.
Example: 123456.789
0->123456.789
1->123456.79
2->123456.8
3->123457
-1->123460
-2->123500
Step
Another option is custom steps.
After setting "Round" to "Step", choose the desired steps in price,
Examples
• 2 -> 1234.00, 1236.00, 1238.00, 1240.00
• 5 -> 1230.00, 1235.00, 1240.00, 1245.00
• 100 -> 1200.00, 1300.00, 1400.00, 1500.00
• 0.05 -> 1234.00, 1234.05, 1234.10, 1234.15
•••
🔶 FEATURES
🔹 Adjust position & width
🔹 Table
The table shows the details:
• Size originalMap : amount of elements in original map
• # higher: amount of elements, higher than last "close" (source)
• index "close" : index of last "close" (source), or # element, lower than source
• Size newMap : amount of elements in new map (used for display lines)
• # higher : amount of elements in newMap, higher than last "close" (source)
• # lower : amount of elements in newMap, lower than last "close" (source)
🔹 Volume * currency
Let's take as example BTCUSD, relative to USD, 10 volume at a price of 100 BTCUSD will be very different than 10 volume at a price of 30000 (1K vs. 300K)
If you want volume to be associated with USD, enable Volume * currency . Volume will then be multiplied by the price:
• 10 volume, 1 BTC = 100 -> 1000
• 10 volume, 1 BTC = 30K -> 300K
Disabled
Enabled
🔶 DETAILS
🔹 Put
When the map doesn't contain a price, it will be added, using map.put(id, key, value)
In our code:
map.put(originalMap, price, volume)
or
originalMap.put(price, volume)
A key (price) is now associated with a value (volume) -> key : value
Since all keys are unique, we don't have to know its position to extract the value, we just need to know the key -> map.get(id, key)
We use map.get() when a certain key already exists in the map, and we want to add volume with that value.
if originalMap.contains(price)
originalMap.put(price, originalMap.get(price) + volume)
-> At the last bar, all prices (source) are now associated with volume.
🔹 Copy & sort
Next, every key of the map is copied and sorted (array of keys), after which the index (idx) is retrieved of last (current) price.
copyK = originalMap.keys().copy()
copyK.sort()
idx = copyK.binary_search_leftmost(src)
Then left and right side of idx is investigated to show a maximum amount of lines at both sides of last price.
🔹 New map & display
The keys (from sorted array of copied keys) that will be displayed are put in a new map, with the associated volume values from the original map.
newMap = map.new()
🔹 Re-cap
• put in original amp (price key, volume value)
• copy & sort
• find index of last price
• fetch relevant keys left/right from that index
• put keys in new map and fetch volume associated with these keys (from original map)
Simple example (only show 5 lines)
bar 0, price = 2, volume = 23
bar 1, price = 4, volume = 3
bar 2, price = 8, volume = 21
bar 3, price = 6, volume = 7
bar 4, price = 9, volume = 13
bar 5, price = 5, volume = 85
bar 6, price = 3, volume = 13
bar 7, price = 1, volume = 4
bar 8, price = 7, volume = 9
Original map:
Copied keys array:
Sorted:
-> 5 keys around last price (7) are fetched (5, 6, 7, 8, 9)
-> keys are placed into new map + volume values from original map
Lastly, these values are displayed.
🔶 SETTINGS
Source : Set source of choice; default close , can be set as high , low , open , ...
Volume & currency : Enable to multiply volume with price (see Features )
Amount of bars : Set amount of bars which you want to include in the Volume Profile
Max lines : maximum 1000 (if you want to use only lines, and no boxes -> max. 500, see Concepts )
🔹 Round -> ' Round/Step '
Round -> see Concepts
Step -> see Concepts
🔹 Display Volume Profile
Offset: shifts the Volume Profile (max. 500 bars to the right of last bar, see Features )
Max width Volume Profile: largest volume will be x bars wide, the rest is displayed as a ratio against largest volume (see Features )
Show table : Show details (see Features )
🔶 LIMITATIONS
• Lines won't go further than first bar (coded).
• The Volume Profile can be placed maximum 500 bar to the right of last price.
• Maximum 500 lines/boxes can be displayed
Aggregated Volume Spot & Futures ⚉ OVERVIEW ⚉
The indicator presents a comprehensive approach to Aggregated Volume Data . Works on almost all CRYPTO Tickers!
The script also includes several input parameters that allow the user to control which exchanges and currencies are included in the aggregated data.
This script allows the user to choose from several data display modes, including volume, spot & perp, delta, cumulative delta, and others.
The user can also choose how volume is displayed (in assets, U.S. dollars or euros) and how it is calculated (sum, average, median, or dispersion).
WARNING Indicator is for CRYPTO ONLY.
______________________
⚉ SETTINGS ⚉
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Mode — Choose Mode.
• Volume — This displays the Volume
• Volume (Colored) — Shows aggregated volume but applying different volume colors for different exchanges.
• Delta — This displays the difference between the number of sellers and buyers.
• Cumulative Delta — This displays the cumulative delta between sellers and buyers.
• Spot & Perp — Shows Spot and Futures volume at the same time.
• Delta (Spot - Perp) — Shows the difference between Spot and Futures Volume.
• Liquidations — Displays Potential Liquidations. (Calculated between the difference in volume between Futures and Spots)
• OBV — On Balance Volume.
• MFI — Money Flow Indicator.
• Data Type — Choose Single or Aggregated data.
• Single — Show only current Volume.
• Aggregated — Show Aggregated Volume.
Volume By — You can also select how the volume is displayed.
• COIN — Volume in Actives.
• USD — Volume in United Stated Dollar.
• EUR — Volume in European Union.
• RUB — Volume in Russian Ruble.
Calculate By — Choose how Aggregated Volume it is calculated.
• SUM — This displays the total volume from all sources.
• AVG — This displays the average price of the volume from all sources.
• MEDIAN — This displays the median volume from all sources.
• VARIANCE — This displays the variance of the volume from all sources.
* 🡅 Be Careful, Reacts to Every Mode.
Additional features
• Show MA — Show Movieng Average of Volume.
• MA Period — Period of MA.
• Lookback — Lookback period for 'Cumulative Delta' and for 'MFI'.
• Liquidation Filter — Filters out small or negative difference values.
• Show Table — Table shows the current volume of the last candle. Also in the Mode "Colored" shows the color of exchanges if they have volume.
________________
⚉ NOTES ⚉
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
I don't pretend to be the best choice for calculating CVD , Delta and Liquidations, the calculations are chosen to be optimal from what I have seen and know.
If you have any ideas what to add to my work to add more sources or make calculations cooler, suggest in DM .
Hull Volume WavesInspired by the works of David Weis, this indicator is an alternative to his classic Weis Volume Waves.
As the name implies, this indicator uses a Hull Moving Average to detect price swings, and calculates the cumulative volume for each of them, separating the up swings from the down swings.
The chosen length of the HMA determines the size of each swing, meaning lower lengths will detect microswings while higher lengths will only include the main swings.
The length of each swing also determines the color of the upward and downward waves, and you can choose 2 colors each to generate a bullish and bearish gradient.
Extreme values are highlighted in the background. The indicator will compare the current up wave to the last N up volumes, or the current down wave to the last N down volumes. The lookback length can be changed in the menu.
I hope you find it useful!
Colored Volume Bars standard deviation from meanThe colour bars:
Green: Price up - Volume > 2 x STD of last 21 bars
Blue: Price up - Volume > 1 x STD of last 21 bars
Maroon: Price down - Volume > 2 x STD of last 21 bars
Purple: Price down - Volume > 1 x STD of last 21 bars
Grey: not high volume bar
Green line: 2 bar sma
Red line: 8 period sma of the greenline
Bollinger band: 55 period sma of the 21 period sma with bands 1.618 deviation from the mean
Magic Volume - Projected [MW]Magic Volume – Projected
This lower-pane volume tool estimates the full-bar volume before the bar closes by measuring the current bar’s elapsed time and the rate of incoming volume. It then contrasts that “expected volume” against typical activity and recent momentum to spotlight potential burst conditions (breakout/acceleration), color-codes the live volume stream, and annotates when the projected surge is likely bullish or bearish based on bar structure and recent highs/lows.
Settings
Projected / Expected Volume
Moving Average: EMA length used for volume baseline comparisons. (Default: 14)
Minimum Volume: Hard floor the bar’s raw volume must exceed to qualify as notable. (Default: 10,000)
Consecutive Volume Above 14 EMA: Count required for “sustained” high-volume context. (Default: 3)
Stochastic Volume Burst
Stochastic Length: Window for the Stochastic calculation on volume. (Default: 8)
Smoothing: Smoothing applied to Stochastic volume and its signal. (Default: 3)
Stochastic Volume Breakout Threshold: Level above which Stochastic volume is considered a breakout. (Default: 20)
Volume Bar Increase Amount: Multiplier the current bar’s volume must exceed vs. prior bar to be considered a “burst.” (Default: 1.618)
Plotted Items
Expected Volume (columns): Magenta columns projecting the full-bar volume from intrabar rate. Turns lime when a high expected-volume condition aligns with bullish bar structure; turns red under analogous bearish conditions.
Actual Volume (columns): Live volume columns, color-coded by state:
• Blue = baseline;
• Orange = “burst” (volume rising fast above prior × factor and above baseline);
• Yellow = “burst at breakout” (burst + Stochastic volume breakout);
• Light Blue = Stochastic breakout only.
Volume EMA (line): Yellow EMA for baseline comparison (default 14).
Calculations
Compute elapsed time in the current bar (ms → seconds) and convert the current bar’s accumulated volume into a rate (volume per second).
Project full-bar Expected Volume = (volume so far / seconds elapsed) × bar-seconds.
Compute Volume EMA (default 14) for baseline; derive Stochastic(volume, length) and smoothed signal for momentum.
Define “Burst” conditions:
• Volume > prior volume × Volume Bar Increase Amount;
• Volume > Minimum Volume;
• Volume > Volume EMA;
• Stochastic(volume) rising and/or above threshold.
Classify “Burst at Breakout” when Burst aligns with Stochastic crossover above the Breakout Threshold.
Classify Bullish/Bearish Expected Volume: if Expected Volume is ≥ 1.618 × prior bar volume and prior volume > Volume EMA, then:
• Bullish if bar is green with a rising low;
• Bearish if bar is red with a falling high.
Color-map actual volume columns by state; overlay Expected Volume columns (magenta) and paint conditional overlays (lime/red) when directional context is detected.
How to Use
Spot the Surge Early
When Expected Volume spikes well above typical (and especially above ~1.618× the prior bar) before the bar closes, it often precedes a volatile move. Use this to prepare entries with tight, structure-based risk (e.g., just beyond the current bar’s wick) and asymmetric targets.
Confirm with Momentum
Yellow/orange volume columns indicate burst/breakout behavior in the live tape. When this aligns with a lime (bullish) or red (bearish) Expected Volume column, the probability of follow-through improves—particularly if aligned with prevailing trend or key levels.
Context Matters
Combine with your preferred S/R or structure tools (e.g., order blocks, channels, VWAP) to avoid chasing into obvious supply/demand. The projected surge can mark both continuations and sharp reversals depending on location and broader context.
Alerts
High Expected Volume – Bullish: When projected volume surges and the price action meets bullish conditions (green body with rising low).
High Expected Volume – Bearish: When projected volume surges and the price action meets bearish conditions (red body with falling high).
Other Usage Notes and Limitations
Projected volume depends on intrabar pace; abrupt pauses/flushes can change the projection quickly, especially on very small timeframes.
Minimum Volume and EMA baselines help filter thin markets; adjust upward on illiquid symbols to reduce noise.
A rising projection does not pick direction on its own—directional coloring (lime/red) requires price-action confirmation; otherwise treat magenta projections as “heads-up” only.
As with any single indicator, use within a broader plan (risk management, structure, confluence) to mitigate false positives and improve selectivity.
Inputs (Quick Reference)
Moving Average (int, default 14)
Stochastic Length (int, default 8)
Smoothing (int, default 3)
Stochastic Volume Breakout Threshold (int, default 20)
Volume Bar Increase Amount (float, default 1.618)
Minimum Volume (int, default 10,000)
Consecutive Volume Above 14 EMA (int, default 3)
Volume Profile + VAH, VAL, and POCWhat it is
A clean, on-chart volume profile that approximates your visible range using a configurable Bars Back window. It builds a horizontal histogram of volume by price, splits each price bin into Buy vs Sell volume, draws POC, and computes Value Area High/Low (VAH/VAL). A Stealth Mode toggle switches to a subtle grayscale palette for low-key charts.
Why this instead of the built-in VPVR?
Buy/Sell split per bin: See which prices were defended by buyers vs sellers, not just total volume.
Value Area from POC outward: Classic expansion method until the selected % of total volume (default 70%).
Sleek borders & Stealth Mode: Crisp bin outlines and a one-click professional colorway.
Deterministic & fast: No sessions or anchors needed—set your Bars Back and go.
How it works (under the hood)
Window selection – Pine can’t read your viewport, so we approximate it with Bars Back (user input).
Binning – The window’s price range is divided into N bins.
Volume allocation – For each bar in the window:
Distribute Across Hi–Lo (optional): Spread volume across all bins the bar overlaps, weighted by overlap; or
Single-price mode: Assign all volume to one bin using a representative price (hlc3).
Buy/Sell split (two methods):
Body Proportional (recommended): Split by relative up/down body size (|close−open|).
Up/Down Candle: 100% buy if close ≥ open, else 100% sell.
POC & VA: Point of Control is the bin with max total volume. VAH/VAL expands from POC toward the higher-volume neighbor until the selected % of total volume is included.
Reading the visuals
Horizontal bars (right side): Total volume per price bin.
Left sub-segment = Sell volume
Right sub-segment = Buy volume
POC line: Price level with peak total volume.
VAH / VAL (dashed): Upper and lower bounds of the selected Value Area.
Borders: Each bin has a clean outer outline so the profile looks tight and organized.
Stealth Mode: Grayscale palette that preserves contrast without loud colors.
Key inputs (organized for clarity)
Theme
Stealth Mode: Toggles the grayscale look.
Core
Price Bins: Vertical resolution of the profile.
Lookback (Bars): Approximates your visible range.
Style
Profile Width (bars): How far the histogram extends to the right.
Bin Border Width: Outline thickness.
Markers & Lines
Show POC, Show VAH/VAL, Value Area %, VA line width.
Advanced
Distribute Volume Across Hi–Lo: More accurate, heavier compute.
Buy/Sell Split Method: Body Proportional (realistic) or Up/Down (simple).
Tips & best practices
Start with Body Proportional + Distribute Across ON for intraday accuracy.
If the chart lags, reduce Price Bins or Bars Back, or switch off distribution.
For small windows, fewer bins often looks cleaner (e.g., 30–60).
Stealth Mode plays nicely with both dark and light chart themes.
Limitations & notes
Viewport: Pine can’t access the actual visible bars; Bars Back is a practical stand-in.
Buy/Sell split: This is an approximation from candle bodies, not true bid/ask delta.
Designed for overlay; profile renders to the right of the latest bar.
Aggressive Volume 📊 Indicator: Aggressive Volume – Simulated Buy/Sell Pressure
Aggressive Volume estimates delta volume using candle data to simulate the market’s internal buy/sell pressure. It helps visualize how aggressive buyers or sellers are moving the price without needing full order flow access.
⚙️ How It Works:
Calculates simulated delta volume based on candle direction and volume.
Bullish candles (close > open) suggest dominance by buyers.
Bearish candles (close < open) suggest dominance by sellers.
Delta is the difference between simulated buying and selling pressure.
🔍 Key Features:
Visual bars showing aggressive buyer vs seller dominance
Helps spot trend strength, momentum bursts, and potential reversals
Simple, effective, and compatible with any timeframe
Lightweight and ideal for scalping, day trading, and swing trading
💡 How to Use:
Look for strong positive delta during bullish trends for confirmation.
Watch for delta weakening or divergence as potential reversal signals.
Combine with trend indicators or price action for enhanced accuracy.
📊 Indicador: Volume Agressivo – Pressão de Compra/Venda Simulada
Volume Agressivo estima o delta de volume utilizando dados dos candles para simular a pressão interna de compra/venda do mercado. Ele ajuda a visualizar como os compradores ou vendedores agressivos estão movendo o preço, sem precisar de acesso completo ao fluxo de ordens.
⚙️ Como Funciona:
Calcula o delta de volume simulado com base na direção do candle e no volume.
Candles de alta (fechamento > abertura) indicam predominância de compradores.
Candles de baixa (fechamento < abertura) indicam predominância de vendedores.
O delta é a diferença entre a pressão de compra e venda simulada.
🔍 Principais Funcionalidades:
Barras visuais mostrando a dominância de compradores vs vendedores agressivos
Ajuda a identificar a força da tendência, explosões de momentum e possíveis reversões
Simples, eficaz e compatível com qualquer período de tempo
Leve e ideal para scalping, day trading e swing trading
💡 Como Usar:
Procure por delta positivo forte durante tendências de alta para confirmação.
Observe o delta enfraquecendo ou divergências como sinais de possível reversão.
Combine com indicadores de tendência ou price action para maior precisão.
Volume Range Profile with Fair Value (Zeiierman)█ Overview
The Volume Range Profile with Fair Value (Zeiierman) is a precision-built volume-mapping tool designed to help traders visualize where institutional-level activity is occurring within the price range — and how that volume behavior shifts over time.
Unlike traditional volume profiles that rely on fixed session boundaries or static anchors, this tool dynamically calculates and displays volume zones across both the upper and lower ends of a price range, revealing point-of-control (POC) levels, directional volume flow, and a fair value drift line that updates live with each candle.
You’re not just looking at volume anymore. You’re dissecting who’s in control — and at what price.
⚪ In simple terms:
Upper Zone = The upper portion of the price range, showing concentrated volume activity — typically where selling or distribution may occur
Lower Zone = The lower portion of the price range, highlighting areas of high volume — often associated with buying or accumulation
POC Bin = The bin (price level) with the highest traded volume in the zone — considered the most accepted price by the market
Fair Value Trend = A dynamic trend line tracking the average POC price over time — visualizing the evolving fair value
Zone Labels = Display real-time breakdown of buy/sell volume within each zone and inside the POC — revealing who’s in control
█ How It Works
⚪ Volume Zones
Upper Zone: Anchored at the highest high in the lookback period
Lower Zone: Anchored at the lowest low in the lookback period
Width is user-defined via % of range
Each zone is divided into a series of volume bins
⚪ Volume Bins (Histograms)
Each zone is split into N bins that show how much volume occurred at each level:
Taller = More volume
The POC bin (Point of Control) is highlighted
Labels show % of volume in the POC relative to the whole zone
⚪ Buy vs Sell Breakdown
Each volume bin is split by:
Buy Volume = Close ≥ Open
Sell Volume = Close < Open
The script accumulates these and displays total Buy/Sell volume per zone.
⚪ Fair Value Drift Line
A POC trend is plotted over time:
Represents where volume was most active across each range
Color changes dynamically — green for rising, red for falling
Serves as a real-time fair value anchor across changing market structure
█ How to Use
⚪ Identify Key Control Zones
Use Upper/Lower Zone structures to understand where supply and demand is building.
Zones automatically adapt to recent highs/lows and re-center volume accordingly.
⚪ Follow Institutional Activity
Watch for POC clustering near price tops or bottoms.
Large volumes near extremes may indicate accumulation or distribution.
⚪ Spot Fair Value Drift
The fair value trend line (average POC price) gives insight into market equilibrium.
One strategy can be to trade a re-test of the fair value trend, trades are taken in the direction of the current trend.
█ Understanding Buy & Sell Volume Labels (Zone Totals)
These labels show the total buy and sell volume accumulated within each zone over the selected lookback period:
Buy Vol (green label) → Total volume where candles closed bullish
Sell Vol (red label) → Total volume where candles closed bearish
Together, they tell you which side dominated:
Higher Buy Vol → Bullish accumulation zone
Higher Sell Vol → Bearish distribution zone
This gives a quick visual insight into who controlled the zone, helping you spot areas of demand or supply imbalance.
█ Understanding POC Volume Labels
The POC (Point of Control) represents the price level where the most volume occurred within the zone. These labels break down that volume into:
Buy % – How much of the volume was buying (price closed up)
Sell % – How much was selling (price closed down)
Total % – How much of the entire zone’s volume happened at the POC
Use it to spot strong demand or supply zones:
High Buy % + High Total % → Strong buying interest = likely support
High Sell % + High Total % → Strong selling pressure = likely resistance
It gives a deeper look into who was in control at the most important price level.
█ Why It’s Useful
Track where fair value is truly forming
Detect aggressive volume accumulation or dumping
Visually split buyer/seller control at the most relevant price levels
Adapt volume structures to current trend direction
█ Settings Explained
Lookback Period: Number of bars to scan for highs/lows. Higher = smoother zones, Lower = reactive.
Zone Width (% of Range): Controls how much of the range is used to define each zone. Higher = broader zones.
Bins per Zone: Number of volume slices per zone. Higher = more detail, but heavier on resources.
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
Volume Pressure Histogram (Normalized)Overview
The Volume Pressure Histogram is designed to help traders analyze buying and selling pressure using real volume data.
Unlike traditional momentum indicators that rely solely on price movements, VPH measures the strength of bullish and bearish volume, providing insights into market participation.
How It Works
The histogram represents the difference between buying and selling volume over a selected period.
Green bars indicate strong buying pressure, while red bars signal strong selling pressure.
Lime and orange bars (if enabled) represent moderate buying and selling activity.
A white signal line smooths volume data to track momentum shifts over time.
How to Use It
Trend Confirmation: When price is rising and green bars increase, the trend is supported by real buying pressure.
Reversal Detection: If price makes a new high but green bars shrink, buyers may be losing strength.
Breakout Strength: A breakout with rising volume pressure confirms strong participation, while weak volume pressure suggests a potential fake move.
Divergence Signals: If price moves higher, but volume pressure declines, the move may lack conviction and could reverse.
Customization Options
Threshold Multiplier (default = 20) controls when green and red bars appear, filtering out weaker signals.
Log Scale Option helps normalize extreme volume spikes.
Adjustable Smoothing Length for both the histogram and signal line.
Why Use This Indicator
Provides a volume-based approach to analyzing market trends.
Can confirm or contradict price movements, helping identify strong or weak trends.
Works across multiple markets, including stocks, forex, crypto, and indices.
This indicator is designed for educational and informational purposes only and does not provide financial advice.
Dollar Volume DivergenceOverview
The Dollar Volume Profile and Divergence Indicator is a comprehensive tool designed to analyze both standard volume and dollar volume activity in the market. It visualizes dollar volume (calculated as close * volume) and highlights divergences between dollar volume and standard volume, providing insights into underlying market dynamics that aren't immediately visible with traditional volume analysis.
Key Features
Dollar Volume Profile:
Plots dollar volume as a histogram.
Highlights high-dollar volume bars in green (indicating significant trading activity).
Includes an optional average dollar volume line to show trends over time.
Volume-Divergence Analysis:
Calculates the difference (divergence) between dollar volume and standard volume.
Displays positive divergence (dollar volume > standard volume) in green and negative divergence (dollar volume < standard volume) in red.
Supports both histogram and boolean point visualization for divergence, offering flexibility in how the data is displayed.
Customizable Visualization:
Users can toggle between a Histogram or Boolean Points for divergence visualization.
Option to enable or disable the dollar volume profile and its average line.
Adjustable length parameter to fine-tune sensitivity for averages and divergences.
Use Cases
Volume Confirmation: Analyze whether dollar volume aligns with standard volume to confirm strong price movements.
Divergence Detection: Identify areas where dollar volume and standard volume deviate, which may signal potential reversals or exhaustion in a trend.
Market Strength Analysis: Assess the intensity of trading activity at specific price levels to determine key areas of interest.
How It Works
Dollar Volume Calculation:
Dollar volume is derived by multiplying the close price by the volume for each bar.
A moving average of dollar volume is used to determine relative activity levels.
Divergence Calculation:
The script calculates the difference between dollar volume and standard volume.
Positive values indicate that dollar volume exceeds standard volume, suggesting institutional or larger-scale trades.
Negative values highlight areas of lower dollar volume compared to standard volume.
Visualization:
The Dollar Volume Profile is displayed as a histogram, with high-dollar volume bars highlighted.
Divergences are overlaid as either a histogram or triangle markers, depending on user preference.
Average lines (optional) provide smoother trends for both dollar volume and divergence.
Customization Options
Length: Adjusts the period for moving average calculations.
Plot Style: Choose between Histogram or Boolean Points for divergence visualization.
Toggle Visibility: Enable or disable the Dollar Volume Profile and its average line for a cleaner chart.
Why Use This Indicator?
This indicator bridges the gap between traditional volume analysis and dollar volume analysis, offering deeper insights into market behavior. By combining these metrics, traders can detect nuanced patterns, validate trends, and identify divergences that may signal market turning points or continuation.
Best Practices
Use this indicator in conjunction with price action and other technical indicators for confirmation.
Look for divergences in high-dollar volume areas to detect potential trend reversals.
Analyze the interaction between the dollar volume profile and divergence histogram for a comprehensive view of market activity.
Important Notice:
Trading financial markets involves significant risk and may not be suitable for all investors. The use of technical indicators like this one does not guarantee profitable results. This indicator should not be used as a standalone analysis tool. It is essential to combine it with other forms of analysis, such as fundamental analysis, risk management strategies, and awareness of current market conditions. Always conduct thorough research or consult with a qualified financial advisor before making trading decisions. Past performance is not indicative of future results.
Disclaimer:
Trading financial instruments involves substantial risk and may not be suitable for all investors. Past performance is not indicative of future results. This indicator is provided for informational and educational purposes only and should not be considered investment advice. Always conduct your own research and consult with a licensed financial professional before making any trading decisions.
Note: The effectiveness of any technical indicator can vary based on market conditions and individual trading styles. It's crucial to test indicators thoroughly using historical data and possibly paper trading before applying them in live trading scenarios.