Chaikin money flow
The sum of money flow volume over 20 bars divided by the sum of volume, giving a number between −1 and +1.
What it shows
CMF takes the same money flow volume used in the A/D line, adds it up over 20 bars, and divides by the total volume over those 20 bars.
A positive value means closes have been in the upper part of the range on balance. A negative value means the lower part.
How we find it
The same code that draws it on your chart follows these steps, with the same result every time.
- Compute money flow volume for each bar.
- Sum it over 20 bars.
- Divide by the sum of volume over 20 bars.
- Plot under the price with a zero line.
Starting values: Length 20. These are proposed and will be tuned on real price data before launch.
How to read it
- The panel shows CMF from −1 to 1.
- Above zero: closes were in the upper half on balance.
- Below zero: lower half.
Status labels you may see
| Label | What it means |
|---|---|
| Positive | CMF above 0.05. |
| Neutral | CMF between −0.05 and 0.05. |
| Negative | CMF below −0.05. |
What cancels it
Nothing cancels it.
What traders check next
- How long it stays on one side of zero.
- Price trend.
- Volume levels.
Limits
- Bounded, so can get stuck near the limits.
- Ignores gaps.
- Sensitive to one big bar.
Try it in forecastviz
- Open any ticker and choose Volume and money flow → Chaikin money flow in the left menu.
- Switch between 3M, 6M, 1Y to see how the picture changes.
- Compare with Accumulation/distribution line and Chaikin oscillator on the same chart.
Questions
How is it different from the A/D line?
CMF is bounded and covers a fixed window.
What's a high reading?
Above 0.25 is quite high for most stocks.
Related trends
Further reading
- Murphy, Technical Analysis of the Financial Markets
- Granville, Granville's New Key to Stock Market Profits
- Pring, Technical Analysis Explained
- Achelis, Technical Analysis from A to Z
Educational only. Not financial advice, and not a price forecast. Charts are drawn by code from past price data, which may be delayed.