Appearance
Personalize your experience
Cumulative Delta (CVD)
Charts / Chart Types / Volume ChartsCandles of the running total of buy volume minus sell volume, with divergence detection against price.
What the chart shows
Every trade has an aggressor. A buyer who lifts the offer at the ask; a seller who hits the bid at the bid. The difference between the two in one bar is the bar's delta. Cumulative delta (CVD, cumulative volume delta) adds the deltas bar after bar, so its level shows who has been more since the last reset and its slope shows who is aggressive now.
In Quatick the CVD chart type replaces the price candles in the main pane with candles of cumulative delta. Price can be drawn on top on its own scale, so the two can be compared directly. The chart also finds swing where price and CVD disagree (divergences) and marks them.
cvdAnatomy of the chart
| Part | What it is | How to read it |
|---|---|---|
| CVD candle | Open = previous CVD close. Close = open + this bar's delta. High / low = the CVD extremes reached inside the bar. | Green: more buying than selling in the bar. Red: more selling. A long body means one side dominated. |
| The and lowest CVD inside the bar, estimated from the bar's . | A long lower wick on a green CVD candle: sellers pushed first, buyers then took over. | |
| Zero line | CVD = 0, the reset level. | Above zero, buyers have been net since the reset; below zero, sellers. |
| or SMA of the CVD close. | CVD above a rising average: buying pressure is building. A shows a shift in . | |
| Bar | Each bar's own delta at the bottom of the pane. | Shows the bars that moved CVD the most, without the running total. |
| Price overlay | Price close as a line on its own scale. | shapes: when price and CVD move apart, the move is not backed by . |
| Divergence line and | A line between two CVD values at consecutive price swing , with a shaded around it. | Regular divergences warn of reversals; hidden divergences suggest the trend continues. |
| break | where CVD resets to zero. | CVD levels within one only. |
| Estimate | in the corner when delta is estimated. | Shapes are useful, but exact values need real bid / ask . |
How the chart is built, step by step
- 1Split each bar into buy and sell volumeIf the host supplied bid / ask volume per price (
chart.setFootprintData(), the same the footprint chart uses), the bar's buy volume is the sum of ask volume and its sell volume is the sum of bid volume. Without that data, the volume is split with the same estimate the footprint chart uses: the buy share follows the bar direction and where it closed in its range. - 2Compute the bar deltaDelta = buy volume − sell volume. A bar with 620 bought and 380 sold has a delta of +240.
- 3Add it to the running totalCVD close = previous CVD close + delta. At a reset the previous close is taken as 0.
- 4Estimate the high and lowWith Wicks: Estimated from bar , the bar is assumed to travel open → low → high → close (up bars) or open → high → low → close (down bars). Sell volume is spent on the down legs and buy volume on the up legs, in proportion to distance. The and highest CVD reached on that walk become the .
- 5Draw the extrasThe , zero line, , price overlay and divergence marks are drawn from the finished series.
- 6Update liveA new recomputes only the forming bar. Supplied bid / ask recomputes from the earliest bar it changed, so history is never rebuilt without need.
Reset modes
CVD is a running total, so its level depends on where it starts. The Reset setting chooses the start.
- Every (default): CVD returns to zero at each start, set by length and starts at. For NSE equities use a start of 9.25 (09:15) and a length that covers one trading day.
- From first visible bar: CVD starts at zero at the left edge of the view and changes as you . Useful to over exactly what you are looking at.
- Never: CVD runs over all loaded history. The absolute level then depends on how much history is loaded; read the slope, not the level.
Divergences, step by step
A divergence is a disagreement between price and CVD at two consecutive swing . The chart detects them as follows.
- 1Find price swingsA swing high is a bar whose high is above the highs of Pivot length bars on each side; a swing low is the mirror . Only visible bars are searched.
- 2Compare consecutive swingsFor each pair of consecutive swing highs (and each pair of swing lows), the chart compares the price extremes and the CVD extremes of the same two bars.
- 3ClassifyRegular bearish: higher price high, CVD high not higher. Regular bullish: lower price low, CVD low not lower. Hidden bearish: lower price high, higher CVD high. Hidden bullish: higher price low, lower CVD low.
- 4MarkA line joins the two CVD (solid for regular, dashed for hidden), with an optional label and a shaded around the line.
Reading the chart, step by step
- 1Check the data sourceIf the estimate is shown, treat values as approximate and focus on . With real bid / ask , values are exact.
- 2Read the level against zeroAbove zero: buyers have been net this . Below zero: sellers.
- 3Read the slopeA steep CVD slope with price moving the same way confirms the move. A flat CVD while price trends means the move is carried by passive orders or few participants.
- 4Compare with price at swingsLook for divergence marks at new . A new price high on a lower CVD high means buyers are paying up less: the breakout is weak.
- 5Look for absorptionStrongly negative CVD bars while price does not fall mean sellers are hitting that are being refilled. A buyer is absorbing the selling, which often comes before a move up. The mirror case applies at highs.
- 6Use the moving average for timingA CVD of its average in the direction of the higher-timeframe trend is a common entry .
Setting it up, step by step
- 1Select the chart typeOpen the chart type menu, go to and click Cumulative delta.
- 2Open its settingsClick the gear to the left of Cumulative delta in the same menu.
- 3Set the sessionIn Calculation, keep Reset: Every and set the start and length for your market.
- 4Choose the styleCandles show the inner structure of each bar. Line or area with glow gives a cleaner view for comparing with price; turn on Price overlay for that.
- 5Tune divergencesStart with Pivot length 5 and regular divergences only. Add hidden divergences once you trade continuations.
- 6Supply real data where possibleFor exact values, feed bid / ask volume per price with
chart.setFootprintData(). The footprint, and CVD charts share the same store.
Example: real bid / ask data
// bar time (chart seconds) → levels with volume at bid (sells) and ask (buys)
chart.setFootprintData({
'1730275200': [
{ price: 24510.0, bid: 120, ask: 340 },
{ price: 24510.5, bid: 210, ask: 180 },
],
});
// Live: replace the levels of the forming bar
chart.updateFootprintBar(1730275500, levels);Common setups
Intraday futures
Reset every , candles, 21, regular divergences, pivot length 5. the session CVD level with yesterday's close.
Scalping
1-minute bars, line style with glow, price overlay on, pivot length 2–3, delta labels on. Watch for CVD pushing against a flat price.
Swing context
Reset never, line style, SMA 50. Use the long-term slope to judge whether rallies are driven by buyers or by short covering.
Data requirements and limitations
- CVD levels from different instruments are not comparable; volume units differ.
- With reset "From first visible bar", values change while you . Do not levels taken at different scroll positions.
- Divergences need confirmed swings, so they always appear with a delay of the pivot length.
- Estimated wicks assume one through the bar. Real order can differ.
Native Quatick implementation and live demos
The charts below are the real Quatick engine (@quatick/quatick-charts), the same code the trading terminal runs, fed by a deterministic simulated market. Switch between demos, press Run market to stream ticks, to pan and use the wheel to zoom. Show code exactly the calls each makes.
How the engine draws Cumulative delta
| Stage | What happens |
|---|---|
| in | bars |
| Bid / ask per price (optional) | |
| Bar delta (real or estimated) | |
| Running total with reset | |
| Estimated wicks from the bar | |
| Step 4 | Pivots → divergences |
| Canvas 2D ( for CVD candles) | |
| Layers | MA, zero line · · Price overlay, divergences |
| updates | O(1) per ; supplied recomputes from the earliest changed bar |
How data reaches the screen
Minimal implementation
The first above, as standalone code:
import { Chart } from '@quatick/quatick-charts';
const chart = new Chart({
container: document.getElementById('chart')!,
chartType: 'cvd',
theme: 'dark',
renderer: 'canvas',
showVolume: false,
});
const series = chart.addSeries({ type: 'candlestick' });
chart.setData(series.id, bars); // [{ time, open, high, low, close, volume }] — time in seconds
chart.setChartTypeOptions('cvd', {
style: "candles"
});
// Real bid / ask volume per price, keyed by bar time
chart.setFootprintData({ [bar.time]: [{ price, bid, ask }, ...] });
// Live: every tick updates the forming bar (a new time opens a new bar)
feed.onTick(bar => chart.update(series.id, bar));
feed.onLevels((time, levels) => chart.updateFootprintBar(time, levels));Quatick settings reference
Loading the settings list…
See also
Related articles
Related to Cumulative Delta (CVD)
- Volume Footprint
Charts / Chart Types / Volume Charts
A bid/ask volume histogram overlaid on each price bar, revealing who is buying and selling at every price level.
- Orderflow Chart
Charts / Chart Types / Volume Charts
An enterprise-grade orderflow visualization combining footprint, CVD, depth ladder, whale detection, and time & sales.
- DOM Ladder
Charts / Chart Types / Volume Charts
Depth of market on the chart's price scale: resting bids and asks, your orders, traded volume and delta at every price, with recent candles beside it.
- Order-Book Imbalance Candles
Charts / Chart Types / Volume Charts
Candles of how one-sided the resting book was, with what aggressive traders actually did on the same scale.
- Absorption & Iceberg Map
Charts / Chart Types / Volume Charts
Hidden liquidity made visible: levels where more traded than the book showed, and levels that absorbed heavy flow without breaking.
- Composite Profile
Charts / Chart Types / Volume Charts
Volume, time and resting liquidity at every price of a session, side by side, with three points of control and each row classified.
- Depth Footprint
Charts / Chart Types / Volume Charts
Each bar split in two: what traded at every price, and what was resting in the book at that price.
- Liquidity Heatmap
Charts / Chart Types / Volume Charts
Resting order-book size at every price over time, drawn on the GPU, with executed trades as bubbles.
- TPO Market Profile
Charts / Chart Types / Volume Charts
Time-Price-Opportunity Market Profile using letter-based visualization to reveal where price spent time.