Skip to main content

volume

Cumulative Volume Delta (CVD)

Running net buying vs selling pressure. Its divergence from price can reveal hidden accumulation or distribution.

What is it?

Cumulative Volume Delta tracks the running difference between buying and selling pressure. Each bar contributes a "delta" — positive when the bar closed near its high (buyers dominated), negative when it closed near its low (sellers dominated) — and CVD is the running total of those deltas over time. Its real value is in divergence. When price is flat or drifting down but CVD is rising, buyers are quietly absorbing supply — hidden accumulation. When price makes a new high but CVD makes a lower high, the rally is not backed by net buying — hidden distribution. These are the footprints large participants leave when they work orders against the visible price move. Important honesty: without exchange tick data (true aggressor side per trade), this uses the standard close-position proxy. It infers buy/sell pressure from where each bar closed within its range. That is the accepted method when tick data isn't available, and it is an approximation — not a literal order-flow measurement.

Formula

Bar delta = volume × (2×(close−low)/(high−low) − 1); CVD = running cumulative sum of bar deltas

How it's calculated

For each bar, the delta is volume × (2 × (close − low) / (high − low) − 1). The term (close − low)/(high − low) is where the close sits in the bar's range, from 0 (closed at the low) to 1 (closed at the high); the 2x−1 maps that to −1…+1. So a bar that closes at its high contributes +volume, one that closes at its low contributes −volume, and a mid-range close contributes near zero. Bars with no range (high == low) contribute zero to avoid dividing by zero. CVD is simply the cumulative sum of those bar deltas. A run of strong up-closes makes CVD climb monotonically; persistent down-closes drag it lower.

When to use it

**Divergence with price.** The primary use: compare the slope of CVD to the slope of price. Agreement confirms the move; disagreement warns that the visible move lacks net-volume backing. **Absorption.** Price stalling at a level while CVD keeps pushing one way suggests a large participant is absorbing the opposing flow — context for a potential break or reversal once absorption ends. **Confirmation, not initiation.** Best used to confirm or question a setup you already have, in combination with structure and levels.

Pitfalls

**Honest limitations — read before relying on it.** CVD is an analysis tool, not a profit guarantee. It sharpens *probability* and reveals context that price alone hides; it does not deliver certainty, and large players can and do trap readers of order-flow proxies. **It is a proxy.** This CVD uses the close-position approximation, not true bid/ask aggressor data. It can misclassify pressure on bars with unusual shapes or low liquidity. Treat it as an estimate. **Divergence can persist.** Like all divergence tools, CVD can diverge from price for a long time before (or without) resolving. A divergence is a warning, not a timed signal. **Volume-data dependent.** On pairs/exchanges with unreliable or wash-traded volume, CVD is distorted. Combine with risk management; institutions use order-flow analysis and still take losses.

Pairs well with

RVOLVWAP BandsVolume ProfileOBV

Ready to test a strategy using Cumulative Volume Delta (CVD)?

Build a strategy →