WhitmanTrading

Stochastic vs Money Flow Index

The stochastic oscillator reports where the latest close sits within the recent high-low range, using price alone. The money flow index weights a gains-against-losses calculation by each bar's volume, so it can distinguish a move with participation behind it from one without.

Both are bounded oscillators read for the same things. One of them has volume in the calculation, and whether that is an advantage depends entirely on where your data comes from.

What each one is

The stochastic oscillator reports where the close sits in the recent high-low range, on a fixed scale, with smoothing applied. It uses price alone. Stochastic covers it.

The money flow index weights a gains-against-losses calculation by volume. A move on heavy volume contributes more than the same move on light volume. The money flow index covers it.

Both produce a bounded reading. The scale, the thresholds and the way people read them are broadly the same, which is why the volume distinction gets overlooked.

Where they differ

A price series with a price-only range oscillator beneath.
Price alone: every bar weighted equally. Illustrative chart - not real market data.

Whether volume enters at all. That is the substantive difference, and it means the two disagree precisely on the bars where volume was unusual relative to the move.

The second half of a price series with a volume-weighted oscillator beneath.
Volume weighted: heavy bars count for more. Illustrative chart - not real market data.

What a disagreement is worth. A price move on light volume reads weaker on the weighted version, which is genuine extra information — if the volume figure covers the market rather than one venue.

A slice of price data where volume weighting changes the reading.
They part company on unusual volume. Illustrative chart - not real market data.

What is being compared underneath. Position in a range against gains versus losses. Those are different questions even before volume enters, so the two are not a like-for-like swap.

How many settings there are. Three on the stochastic, one length on the weighted version — which makes one of them considerably easier to leave alone.

Where they agree

A window of price data feeding both oscillators.
Both bounded, both read the same way. Illustrative chart - not real market data.

Both are bounded and both pin in a trend. A sustained move holds either at an extreme for many bars, and treating that as exhaustion is the standard error with both.

Both fail in a range. On this site’s shared series direction runs average 2.01 bars with a longest of 11, and short runs push either across any threshold constantly.

Both cost a round trip per signal acted on — about 2% of the median bar range of 0.493 here — and the twitchier of the two pays it more often.

And neither supplies a stop. The ninetieth percentile bar range here is 1.101, and the invalidation belongs at structure rather than at an oscillator threshold.

Which one to use

A range-bound stretch of price crossing thresholds on both.
A range fires both identically. Illustrative chart - not real market data.

Run the money flow index when your volume feed is real. On a centrally cleared instrument the published figure covers the trading, and the weighting is a genuine addition rather than decoration.

A slow-moving stretch of price with a volume-weighted reading diverging.
Weak participation behind a move is real information. Illustrative chart - not real market data.

Run the money flow index when participation is your question. A rise on light volume is exactly the situation the weighting exists to flag, and nothing price-only can see it.

Run the stochastic on anything with a partial volume feed — a spot currency pair especially, where the number describes one broker’s flow rather than the market.

And run one, not both. They read the same bars, so having both is one reading with an extra input and a lot of shared behaviour.

Why the data question settles it

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

Because a partial volume figure produces a confident wrong reading. The weighted oscillator does not know its input is a fraction; it weights by whatever it is given and prints a normal-looking line.

A section of a price series drawn without volume context.
And a thin market makes the weighting actively misleading. Illustrative chart - not real market data.

And because the failure is silent. Nothing on the chart marks a reading built from complete volume as different from one built from a slice of it.

How to tell whether your volume is real

Compare two data providers on the same bar. A material disagreement means you are looking at venue-specific volume rather than total volume.

Ask what is being counted. An exchange-traded instrument reports the exchange’s own trades. A spot currency pair reports whatever your broker saw, which is a small share of the market.

Watch a scheduled release. Volume that barely moves through a major event is a sign the feed is not capturing the trading that actually happened.

And when you cannot answer, use the price-only tool. Price data is reliable everywhere — on this site’s shared series the median bar range is 0.493 and the largest was 2.338 — and volume data of matching quality is not.

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, the stochastic appears in 184 titles at a median of 11,915 across 136 channels, and the money flow index in 44 at a median of 3,160 across 36. The counts come from site/corpus_count.py.

A candlestick series with several gaps, the largest of them marked.
A gap on light volume reads very differently on the two. Illustrative chart - not real market data.

184 videos on one at 11,915 and 44 on the other at 3,160. Four times the coverage and nearly four times the audience per video for the price-only tool — the version carrying more information is both less taught and less watched, which usually means the extra input is harder to rely on.

A stretch of price bars cut short at a decision point.
Price at the top of its range, volume light. Illustrative chart - not real market data.

The answer to the question on that chart depends on your feed. On a cleared instrument that light volume is a real warning; on a spot pair it is one venue’s quiet afternoon — and the two charts look identical.

When it fails

The failure is running the weighted version on a partial feed, and nothing on the chart tells you. The oscillator prints a normal line, crosses thresholds and produces divergences that look exactly like the ones on a properly fed instrument. Every one is weighted by a figure describing a fraction of the trading. Decisions get made on apparent extra information, and the extra information was one venue’s noise dressed as market participation.

The second failure is running both together. They share the price input.

A third is treating a pinned reading as exhaustion. It reports one-sided bars.

A fourth is optimising three stochastic settings. That is fitting.

A fifth is comparing readings across instruments with different feeds. Not comparable.

And a sixth is assuming volume means total volume. On most instruments it does not.

Stochastic covers the price-only range reading. The money flow index covers the volume-weighted one. And volume analysis covers whether the input can be trusted at all.

What I actually do

The interesting question here is not which indicator is better. It is whether the volume number on your chart describes the whole market or a slice of it — because the answer decides whether one of these two is carrying extra information or extra noise.

— Michael Whitman

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