Chaikin Money Flow (CMF): Formula, Zero Line and Buffers, and a Real S&P 500 Example
Marc Chaikin’s Money Flow weights volume by where each bar closes in its range and sums it over 20 bars; here is the formula, how to read it with the ±0.05 buffers, why gaps can fool it, and what its zones did on the S&P 500 ETF since 1993.
On this page
Chaikin Money Flow (CMF) measures buying and selling pressure over a fixed window, typically 20 or 21 days. For each bar, it weights volume by where the close sits in the bar’s high-low range, positive in the upper half and negative in the lower half, then divides the sum of that weighted volume by the total volume of the window. It was developed by Marc Chaikin, who also created the Accumulation Distribution Line built on the same money flow volume. CMF moves between −1 and +1.
How Chaikin Money Flow is calculated
StockCharts gives three steps. The money flow multiplier is ((close − low) − (high − close)) / (high − low): +1 when the bar closes at its high, −1 at its low, 0 at the midpoint. The money flow volume is that multiplier times the bar’s volume. CMF is the sum of money flow volume over 20 bars divided by the sum of volume over the same 20 bars. When a bar has no range, high equal to low, our chart gives it a multiplier of 0.
How to read CMF
Above zero, the window’s volume traded mostly with closes in the upper half of the bars’ ranges: buying pressure, in Chaikin’s terms. Below zero, selling pressure. StockCharts notes that the indicator typically fluctuates between −0.50 and +0.50 and suggests buffers to filter crosses: a bullish threshold a little above zero, at +0.05, and a bearish one a little below, at −0.05. It also warns that CMF can be less reliable during volatile periods or when the trend of a security is flattening.
| Reading | What it says |
|---|---|
| Above +0.05 | Closes mostly in the upper half of the ranges, weighted by volume |
| Between −0.05 and +0.05 | No clear pressure either way |
| Below −0.05 | Closes mostly in the lower half of the ranges, weighted by volume |
| Price up, CMF down on the same bar | The bar closed in the lower half of its range, whatever the gap |
The money flow multiplier, and the gap trap
The gap problem
The multiplier looks only at the close within the bar’s own range, not at the change from the previous close. StockCharts shows it with Clorox: a big gap down, a close near the top of the day’s range, and a CMF that rose although the stock closed sharply lower on high volume. The same happens the other way, as the right half of the diagram above shows. On April 23, 2025, the S&P 500 ETF opened 2.50% above the previous close and closed 1.55% higher, but in the lower part of its range, with a multiplier of −0.733. CMF fell that day, into the bearish zone. On the ETF from 1993 to October 2026, 15.5% of the up days had a negative multiplier and 23.6% of the down days a positive one.
CMF on a real chart
Chaikin Money Flow(20) on the daily S&P 500 ETF
- Price, daily candles (hollow up, filled down)
- CMF(20) (solid line)
The chart shows CMF(20) on the daily S&P 500 ETF from February 7 to July 31, 2025, with dividend-adjusted prices. CMF reached its high of the window, +0.403, on February 20, at a close of 598.62; the ETF then fell to 488.38 on April 8, 18.4% lower. The strongest buying-pressure reading of the window came on the eve of the decline.
With StockCharts’ ±0.05 buffers, CMF switched between the bullish and the bearish zone 4 times in 120 days, and changed zone 18 times counting the neutral zone. The move below −0.05 on March 13, at 540.80, came before a rebound to 566.07 on March 25: the ETF was 3.1% higher ten sessions later, though 4.6% lower twenty sessions later. The move above +0.05 on March 27, at 557.83, came a week before the steepest part of the slide: 7.5% lower ten sessions later. The move below −0.05 on April 4, at 497.04, came two sessions before the low close: 11.5% higher twenty sessions later. Only the move above +0.05 on May 2, at 557.51, pointed the right way at both horizons, and CMF stayed above the buffer until June 17, at 587.78, 5.4% higher.
Does it work?
Our bench tests chart patterns detected by rule against random entries, not indicators (see our methodology). We measured what followed each CMF(20) zone on the daily S&P 500 ETF, dividend-adjusted, from February 26, 1993, the first day with 20 bars of data, through the last day that has 20 sessions after it, without costs. A day counts as higher when the close 20 sessions later is above that day’s close. CMF was above zero on 68.9% of the days. The chart below gives the share of higher periods for each zone; the mean change was +1.79% after days below −0.05, +0.75% in between and +0.67% after days above +0.05. On this ETF, selling pressure as CMF measures it was followed by better returns, not worse. These are descriptive averages over overlapping periods, not a trading test: on all 8,456 days, the next 20 sessions rose 65.3% of the time.
Share of 20-day periods that ended higher, by CMF zone
Best CMF settings
StockCharts describes 20 or 21 days as typical. Shorter windows cross zero more often. With 20 bars on the ETF since 1993, CMF crossed zero 770 times in 33.7 years, about 22.9 times a year; with the ±0.05 buffers, a switch being a reading beyond one buffer after the last reading beyond the other, it switched between the bullish and bearish zones about 9.2 times a year, about the same rate as the 4 switches of the chart above. Its extremes over that history were −0.391 on December 20, 2000 and +0.608 on February 8, 1996.
The Chaikin Oscillator applies MACD-style averages to the same money flow volume, through the Accumulation Distribution Line. For another volume oscillator, see the Money Flow Index, or browse all momentum indicators.
Frequently asked questions
Is Chaikin Money Flow a good indicator?
It is a clear measure of where closes sit in their ranges, weighted by volume. On the S&P 500 ETF since 1993, its bearish readings were followed by better 20-day returns than its bullish ones, so it did not work as a timing signal there.
How do you read Chaikin Money Flow?
Above zero, closes have been mostly in the upper half of their ranges, weighted by volume; below zero, in the lower half. StockCharts suggests +0.05 and −0.05 as buffers to filter crosses.
What is the best CMF period?
20 or 21 days is typical. Shorter windows give more crosses. No period has been shown to be the best.
What is the difference between CMF and the Chaikin Oscillator?
CMF sums money flow volume over a fixed window and divides by volume. The Chaikin Oscillator is the difference between a 3-day and a 10-day EMA of the Accumulation Distribution Line, a running total of the same money flow volume.
