← All posts
Petrol and aqua artwork of two glowing currents running together and then splitting apart

Aug 13, 2026

What CVD tells you that price can't

Every candle you look at is the result of a fight you didn't see. Cumulative volume delta records who was actually attacking, which is why it can disagree with price right before price changes its mind. Here's how to read it, and where it earns its keep.

Two candles can look identical and mean opposite things.

Both close green at a new high. In the first, aggressive buyers lifted every offer on the way up and the book thinned out above. In the second, price drifted up on almost no aggression while sellers quietly reloaded at each tick. Same OHLCV candle. Completely different situation. Every price-only indicator, every moving average, every RSI, sees these two candles as the same input.

Cumulative volume delta is the simplest tool that can tell them apart.

What CVD actually measures

Every trade that prints has an aggressor. Someone crossed the spread: a buyer lifted the ask, or a seller hit the bid. Passive orders sit and wait; aggressive orders pay to trade now. Per bar, volume delta is the imbalance between the two sides:

delta = aggressive buy volume − aggressive sell volume

CVD is the running total of that number, bar after bar. When it rises, buyers are attacking. When it falls, sellers are. That's the whole indicator.

What makes it different from price is whose behavior it records. Price moves when either side gets aggressive or when one side pulls its resting orders out of the way. CVD only moves when someone actually pays up. So price tells you where the auction settled; CVD tells you who was pushing. Most of the time those two stories agree, and CVD adds nothing. The information is in the moments they disagree.

Divergence: the push with no fuel

The classic disagreement. Price makes a new high. CVD doesn't.

Read literally: the second high was reached with less aggressive buying than the first. The push is running on momentum and thin air rather than on fresh demand. It doesn't mean the top is in, it means the move's engine is weaker than its chart, and that's exactly the spot where a reversal needs the least selling to start.

The mirror image works at lows. Price breaks to a new low, CVD holds above its prior low: sellers made a lower price but committed less volume doing it.

A made-up example with round numbers. Say Bitcoin prints a high of 65,000 with CVD at +12,400. Price pulls back, then grinds to 65,300. A price trader sees a breakout. But CVD now reads +11,100: the second push, three hundred dollars higher, was made with net less aggressive buying than the first. Someone is selling into that breakout, and the buyers driving it are fewer than the chart implies.

Absorption: the attack that goes nowhere

The opposite disagreement, and the more violent one. CVD falls hard, heavy aggressive selling, bar after bar, and price... refuses to go down.

For that to happen, someone has to be eating every market sell with resting bids, reloading in the order book as fast as the sellers attack. Passive size that absorbs sustained aggression is usually size with intent. When the sellers exhaust themselves against it, there is nobody left to sell, and the path up is suddenly empty.

Absorption is invisible on a price chart almost by definition: its signature is price not moving. You can only see it in the flow.

Why price-only indicators are structurally late

A moving average is a summary of past prices. RSI is a summary of past price changes. Every indicator computed from close prices inherits the same limitation: it cannot contain information that hasn't reached price yet.

Order flow can. The sequence in both patterns above is the same: behavior changes in the flow first (buyers stop attacking, or a passive buyer starts absorbing), and price reacts after the imbalance resolves. A price-only indicator sees the reaction. CVD sees the cause, one step earlier. That step is not always tradeable, and CVD is not a crystal ball. But it's the difference between watching the scoreboard and watching the field.

Three honest limitations

The absolute level is meaningless. CVD is a running sum from an arbitrary starting point. +40,000 tells you nothing by itself; only its shape against price carries information. Compare swings, not levels.

It needs real data. Computing delta requires knowing the aggressor side of every trade, or at minimum candles that carry buy/sell volume splits. Most candle-only backtesters simply don't have this field, which is why most backtested "CVD strategies" you'll find online quietly approximate delta from green/red candle direction. That approximation is noise with confidence. AlphaProve's candle schema stores buy volume, sell volume, and delta on every bar, so CVD strategies backtest against the real thing.

Divergence is a condition, not a signal. Price/CVD divergences appear constantly, and most resolve in the trend's favor. Every order-flow strategy we ship uses divergence as a filter stacked on top of structure: a tested order block, a failed swing, a naked point of control. The flow tells you the push is hollow; the structure tells you where the reversal has a defensible line. On their own, raw divergences are a fast way to fade every strong trend you meet.

What this looks like in practice

The setup our builtin strategies are built around goes like this. Price returns to a level that mattered before. It pushes through to a marginal new extreme, the kind of move that triggers breakout entries and stop-hunts. CVD fails to confirm the push. The candle shows rejection, a wick and a close back inside the level.

Each ingredient covers the others' blind spot. The level says where, the rejection says when, and the divergence says the attackers are out of ammunition. That composite, level plus rejection plus flow, is the shape of every CVD strategy in our registry, from plain divergence to swing-failure and order-block variants.

If you want to see it on real data, run any of the builtin order-flow strategies and look at where its entries land on the chart. Watching where they fire, and where they refuse to, teaches the pattern faster than any definition.