WhitmanTrading

VWAP vs Chaikin Money Flow

VWAP averages price weighted by volume, so it lands in price units and can be used as a level. Chaikin money flow weights volume by where each close sat inside its bar over a fixed lookback, producing a bounded reading rather than a price.

Both take price and volume and combine them, in opposite directions. One weights price by volume; the other weights volume by where the close sat. The outputs are different kinds of thing.

What each one is

VWAP averages price weighted by volume over a period, landing in price units on the chart. VWAP covers it.

Chaikin money flow weights volume by closing position over a fixed lookback and divides by volume, producing a bounded reading. Chaikin money flow covers it.

One produces a price and the other a ratio. That is the practical distinction and it decides what each can be used for.

Where they differ

A price series with a volume-weighted average line drawn on it.
A price you can act at. Illustrative chart - not real market data.

What the units are. Price against a bounded ratio. Only one of those is somewhere you can place an order.

The second half of a price series with a bounded oscillator beneath.
A bounded reading with a threshold. Illustrative chart - not real market data.

Whether there is a threshold. The oscillator has a scale, so a rule can say above or below a level. An average price has no such threshold — it is a level in itself.

A slice of price data where an average and an oscillator separate.
A price and a ratio cannot be compared directly. Illustrative chart - not real market data.

What each ignores. VWAP ignores where in the bar the close was. The oscillator ignores the actual price level entirely.

How a gap registers. VWAP incorporates whatever prices traded. The oscillator’s weighting looks only inside each bar, so a gapped session that closed mid-range contributes almost nothing.

Where they agree

A window of price data feeding both tools.
Both depend on the same volume feed. Illustrative chart - not real market data.

Both depend entirely on the volume figure. On a fragmented market the reported number covers part of the trading, so both describe a fraction of it.

Both describe the past. Neither contains a statement about what happens next.

Both depend on a window. VWAP resets on a schedule; the oscillator has a lookback, and in each case the choice changes the reading.

And neither supplies a stop. On this site’s shared series the ninetieth percentile bar range is 1.101, and a stop belongs at structure rather than at either.

Which one to use

A range-bound stretch of price around an average line.
A shared average is a level people act at. Illustrative chart - not real market data.

Use VWAP when you want a level. It is in price units and very widely computed, both of which make it something you can plan an order around.

A slow-moving stretch of price with a bounded reading rising.
A bounded reading is what a threshold rule needs. Illustrative chart - not real market data.

Use the oscillator when you want a threshold. A rule that says above or below a level requires a scale, and only one of these has one.

Use both, since they do not overlap. The average gives the place and the oscillator says whether recent bars have been closing strongly.

And do not read their crossings. They are in different units, so where one sits relative to the other is decided by the charting software.

Why the direction of the weighting matters

A candlestick chart annotated with the round-trip cost of a switch.
Every level traded costs a round trip. Illustrative chart - not real market data.

Because weighting price by volume gives you a price. That is what makes VWAP actionable, and it is a direct consequence of which quantity is being weighted.

A section of a price series drawn without volume context.
And a partial feed distorts both identically. Illustrative chart - not real market data.

And weighting volume by closing position gives you a ratio. Which is comparable to its own history and to other instruments, and is not a place.

What the oscillator’s lookback changes

How quickly the reading responds. A short lookback reflects the last few bars; a long one smooths across a wider stretch.

How often the threshold is crossed. More responsiveness means more crossings, more signals and more round trips.

What a divergence covers. The comparison against price is meaningful only over the window, so a twenty-bar reading against a six-month move is not a divergence.

And it is the only parameter. The weighting is fixed, so the lookback is the whole of what can be tuned — and therefore the whole of what can be fitted.

What to check before using either

The volume feed. Both weight by it, so a partial figure produces a confident reading of a fraction of the market.

The reset and the lookback. Both change the output and neither default was chosen for your instrument.

Whether your instrument gaps. The oscillator is blind to gaps, and on this site’s shared series the largest single bar range was 2.338 against a median of 0.493.

And what a divergence means, in numbers. Otherwise it will be found afterwards on any chart.

The original data

Of the 24,971 unique videos in research/search-study-corpus.jsonl, no title compares these two directly — this pair is constructed from two subjects the corpus covers separately. Separately, VWAP appears in 323 titles at a median of 6,568 across 204 channels, and Chaikin tools in 48 at a median of 2,579 across 39. The counts come from site/corpus_count.py.

A candlestick series with several gaps, the largest of them marked.
A gap registers on one and not the other. Illustrative chart - not real market data.

323 videos on one at 6,568 and 48 on the other at 2,579. Seven times the coverage and more than double the audience per video for VWAP — the price-producing tool is both better taught and better watched.

A stretch of price bars cut short at a decision point.
Price above VWAP, oscillator negative. Conflict? Illustrative chart - not real market data.

The answer to the question on that chart is that both are correct. Price can be above the session average while recent bars close near their lows — that is one situation described twice, not a disagreement.

When it fails

The failure is reading crossings between the two lines, which mean nothing at all. They are plotted in different units on different scales — one in the price of the instrument, the other as a ratio between fixed limits — so where one line sits relative to the other is decided by the charting software’s axis choices rather than by anything the market did. Move the oscillator’s panel or rescale it and every crossing moves with it. A rule built on those crossings is a rule about your chart settings, and it will produce different signals on somebody else’s screen looking at the identical market.

The second failure is treating a disagreement as a signal. They answer different questions.

A third is using either on a partial volume feed. The input is a fraction.

A fourth is expecting the oscillator to see gaps. It looks inside the bar.

A fifth is treating VWAP as a forecast. It summarises the session.

And a sixth is tuning the lookback after losses. That is fitting.

VWAP covers the volume-weighted average price. Chaikin money flow covers the bounded reading. And volume analysis covers what the shared input can tell you.

What I actually do

VWAP weights price by volume; Chaikin weights volume by where the close sat. Those sound similar and produce completely different objects — one is somewhere you can put an order, the other is a number between two limits.

— Michael Whitman

This page is educational, not financial advice. Test every idea on your own charts before risking money.