Chaikin Money Flow: formula, zero line, period and an ES test
Chaikin Money Flow sums close-location-weighted volume over a lookback and reads it against zero: above zero, volume arrived on strong closes; below zero, on weak closes. Its useful signals are sustained time on one side and a zero-line cross. On futures, check the volume field around rollover before trusting any reading.
By Soren Huang · Published · updated · Editorial policy
Contents
- What does Chaikin Money Flow measure?
- How is CMF calculated from close location and volume?
- How do you read CMF and the zero line?
- How many periods should CMF use?
- How does CMF differ from OBV and accumulation/distribution?
- Can CMF improve entries? What an ES daily-bar test shows
- Why is futures volume a limit for CMF?
- Frequently asked questions
- References
What does Chaikin Money Flow measure?
Chaikin Money Flow measures whether volume arrived on bars that closed near their highs or near their lows over a set lookback, usually 20 or 21 bars, and reports it as one number between −1 and +1. Above zero, strong closes carried the volume; below zero, weak closes did. It can help filter entries, but on futures its volume input needs checking first.
Chaikin Money Flow (CMF) is an oscillator that answers one question: did volume arrive mostly on bars that closed strong or on bars that closed weak? Think of a shop that counts not only how many customers came in but also how many left with a bag. A busy day with few bags is not a good day. CMF treats a bar's volume as the customers and the close's position inside the bar's range as the bags. One idea runs through this article: CMF is read by which side of zero it stays on, not by its exact level, and on a futures series the volume behind it must be checked before any reading is trusted. Where CMF sits among the volume tools you can actually test is covered in technical analysis tools and indicators you can backtest.
How is CMF calculated from close location and volume?
The calculation has three steps, and a reader can check a value by hand with a few bars. The close location multiplier is a number between −1 and +1 that says where the close sits inside the bar's high-low range: +1 at the high, 0 in the middle, −1 at the low. Money flow volume is that multiplier multiplied by the bar's volume, so a bar that closes at its high contributes all of its volume as positive flow, a bar that closes in the middle contributes nothing, and a bar that closes at its low contributes all of its volume as negative flow.
- Close location multiplier for each bar: (close minus low) minus (high minus close), divided by (high minus low). If high equals low, the range is zero and the multiplier is set to 0.
- Money flow volume for each bar: multiplier × volume.
- CMF over the lookback: add up the money flow volume of the last n bars, add up the plain volume of the same n bars, and divide the first sum by the second.
The one formula: CMF = Σ(multiplier × volume) ÷ Σ(volume), where Σ means "add up over the last n bars", multiplier is the close location from step 1, volume is the bar's traded volume and n is the period. Because the top can never be larger than the bottom in size, the result always stays between −1 and +1.
Hypothetical example
Three daily bars with a period of 3. Bar 1: high 102, low 98, close 101, volume 10,000. Multiplier = ((101 − 98) − (102 − 101)) ÷ (102 − 98) = (3 − 1) ÷ 4 = 0.5, so money flow volume = +5,000. Bar 2: closes exactly at its low on volume 8,000. Multiplier = −1, money flow volume = −8,000. Bar 3: high 104, low 100, close 103, volume 12,000. Multiplier = (3 − 1) ÷ 4 = 0.5, money flow volume = +6,000. Sum of money flow volume = 5,000 − 8,000 + 6,000 = +3,000. Sum of volume = 30,000. CMF = 3,000 ÷ 30,000 = +0.10. Volume over the three bars leaned slightly towards strong closes.
How do you read CMF and the zero line?
A reading above zero means volume favoured strong closes over the lookback, a reading below zero means the reverse, and the useful information is how long the line stays on one side, not its exact value. The zero line is the point where positive and negative money flow volume cancel out over the period. A line that sits above zero for weeks says buyers were paying up into closes for weeks. A line that hovers within a hair of zero and flips every few bars says the volume was split, which is no information at all.
| What you see | What it means | How to use it |
|---|---|---|
| Held above zero for many bars | Volume arrived mostly on strong closes | Allow long entries, block or reduce shorts |
| Held below zero for many bars | Volume arrived mostly on weak closes | Allow short entries, block or reduce longs |
| Cross of the zero line after a sustained stretch | The balance of volume changed side | A candidate signal to test, often with a small band such as ±0.05 to confirm the cross |
| Hugging zero, frequent flips | Split volume, no lean either way | No information; stand aside or rely on other conditions |
| Price makes a new high while CMF makes a lower high | Less volume behind the later strong closes | A divergence to test, not a reason to act on its own |
The band around zero matters in a test. Without it, a rule that enters on every zero cross trades the noise in the choppy stretch, and each of those trades pays commission and slippage. A reading that cannot settle on one side is close to a random walk around zero, and the entropy indicator that measures market randomness is one way to recognise the same condition from a different angle.
How many periods should CMF use?
Start with 20 or 21 bars, then choose the period where neighbouring settings behave alike in a test, not the single value that scored best. The period is the number of bars in the two sums. A short period reacts quickly but flips often, and each flip is a possible trade and a possible cost. A long period smooths the line but reports a change in money flow many bars after it began. This is the same noise-versus-lag trade that every moving average makes, and the DEMA indicator that cuts moving-average lag shows the other side of it: less lag always comes with more flips.
| Period | Reaction | Zero-line crosses | Typical use |
|---|---|---|---|
| About 10 bars | Fast | Many | Short holds, needs a band around zero or a second condition |
| 20 to 21 bars | Medium | Fewer | The common default; about one month of daily bars |
| About 50 bars | Slow | Few | A filter for position direction rather than a trigger |
Parameter stability is the property that a setting's neighbours produce results similar to its own. If 20 bars scores well and 17, 18, 22 and 24 score well too, the period sits on a plateau and the result is less likely to be an accident of one data set. If 20 scores well and 18 and 22 are poor, the setting is a lucky spike. Pardo (2008) describes this plateau test as part of any sound optimization, and parameter stability: plateau or lucky spike walks through how to run it. When many CMF periods and bands are tested together, the pre-set thresholds in strategy validation of AlphaPrime (Valynox) decide which candidates move on before anyone has looked at the best score, which keeps the choice of period from being made by hindsight.
How does CMF differ from OBV and accumulation/distribution?
CMF is a bounded oscillator over a window, while on-balance volume (OBV) and the accumulation/distribution line are running totals with no ceiling, so CMF can compare one period with another and the cumulative lines can only be read by their slope and by divergence from price. On-balance volume is a running total that adds a bar's whole volume when the bar closes above the previous close and subtracts it when the bar closes below. The accumulation/distribution line is a running total that adds each bar's money flow volume, the same multiplier × volume from step 2 above, bar after bar without ever dividing by anything.
| CMF | OBV | Accumulation/distribution line | |
|---|---|---|---|
| Scale | Bounded, −1 to +1 | Unbounded running total | Unbounded running total |
| What one bar adds | Multiplier × volume, inside a window, divided by total volume | All of the volume, with the sign of the close-to-close change | Multiplier × volume, added to the total |
| Close used | Close inside the bar's own range | Close against the previous close | Close inside the bar's own range |
| How it is read | Side of zero, duration, zero cross | Slope and divergence from price | Slope and divergence from price |
| Comparable across years | Yes, same scale always | No, the level depends on where the total started | No, same reason |
The practical difference shows up when you write a rule. "CMF above +0.05 for ten bars" means the same thing in 2019 and in 2025. "OBV above 2 million" means nothing, because the total depends on where the series began. An OBV or A/D rule has to be written in terms of slope, such as "A/D line above its own 20-bar average", which turns the cumulative line back into a windowed comparison. CMF skips that step by dividing by volume inside the window from the start. OBV also ignores where the close sits inside the bar: a bar that gaps up and closes at its low still counts as all-positive volume for OBV and as negative flow for CMF.
Can CMF improve entries? What an ES daily-bar test shows
On ES daily bars from 2019 to mid-2025, a money-flow rule used as the only entry and exit produced one kept candidate whose numbers show what such a rule can look like on this data, not what a reader can expect. The run below tested the E-mini S&P 500 future (ES) on daily bars from 2019-01-02 to 2025-06-30, long and short, one contract, with $20 commission and $25 slippage charged on every trade. The rule in this run is AlphaPrime's Advanced Accumulation Money Flow rule, a money-flow rule built from the same close-location and volume idea, standing in for the textbook CMF formula itself. The search tried 1,024 candidates and kept this one for its return against its drawdown; picking the kept one after the fact flatters it, because the best of many tries always carries a selection bonus that the next period does not repeat.
Source: AlphaPrime product engine (CPU), run 2026-10-31. ES daily bars, 2019-01-02 to 2025-06-30, long and short, 1 contract, $20 commission and $25 slippage per trade.
| Number | Result |
|---|---|
| Net profit (closed trades) | $138,262.5 |
| Max drawdown | $51,415 |
| Trades | 40 |
| Win rate | 70% |
| Profit factor | 2.315 |
| Average trade | $3,456.56 |
| Time in market | 94.41% |

Three things in the box decide how to read it. First, 40 trades in six and a half years is a small sample; the uncertainty of an average trade shrinks only with the square root of the trade count, so a 70% win rate from 40 trades is a hint, not a result. Second, time in market of 94.41% means the rule was positioned almost all the time, flipping between long and short, so much of its result is tied to the direction ES took over a period that included the 2020 drop and a long rise. Third, the max drawdown of $51,415 on one contract is about a thousand ES index points, since ES is worth $50 per point; that is the hole a trader would have sat in, with no stop in the rule to shorten it. Bailey et al. (2014) show why the best of 1,024 tries looks better in-sample than it will out-of-sample, and Park and Irwin (2007) find across decades of studies that technical rule results weaken once costs and data snooping are accounted for. The honest reading is that a money-flow rule on daily ES bars can hold its own after a $45 per-trade cost in this period, and that the number which earns trust is the one in the out-of-sample stretch of the equity figure, not the headline net profit. For intraday bars the picture is different again, as what testing shows about the best indicator for intraday trading explains: more trades, more cost, and thinner volume inside each bar.
Why is futures volume a limit for CMF?
Futures volume is split between contract months, moves into the next month around rollover and is thin in night sessions, so a CMF built on a continuous futures series can jump at roll dates for reasons that have nothing to do with buying or selling. Rollover is the move of trading activity from an expiring contract to the next one. ES contracts expire on a quarterly cycle, and in the days before expiry most volume shifts from the front month to the next month. On a chart of the front month alone, volume shrinks day by day until the roll, then the series switches to the next contract and volume jumps back up. CMF divides summed money flow volume by summed volume over its window, so a window that straddles the roll mixes a shrinking volume series with a growing one.
Three checks keep the volume field honest before CMF is trusted on it:
- Plot raw volume and look for a saw-tooth at quarter ends. A regular dip and jump every three months means the series carries one contract's volume at a time. A continuous series rolled on volume, where the volume field follows the most active contract, shows a much smaller seam.
- Mark the roll dates and compare them with CMF's largest one-bar moves. If the big moves line up with the calendar, they are volume shifts, and a rule that trades them is trading the roll. On daily bars the roll touches a few bars per quarter out of about 250 bars a year; on 5-minute bars it touches a full day of bars each quarter.
- Decide which session's volume the indicator should see. Night-session bars carry a fraction of the day session's volume, so a CMF window that mixes both is dominated by the day bars while the night bars add close-location noise with little weight. A day-session-only series and a full-session series give different CMF values from the same prices.
Exchanges change contract cycles and session rules from time to time; the exchange's contract page is the place to confirm the current expiry months before building a roll calendar. The ES test above used daily bars, where the roll effect is smallest, which is one reason a daily result does not carry over to an intraday one without a fresh test.
The next step is a check you can run on your own data in an hour: plot volume under your ES series, mark the quarterly expiries, and count how many of CMF's ten largest one-bar moves fall within three bars of a roll. If more than two or three do, fix the volume field before you test any money-flow rule on that series.
Frequently asked questions
How do you read the CMF indicator?
Read Chaikin Money Flow by which side of zero it stays on and for how long. Above zero means volume over the lookback arrived mostly on bars that closed in the upper part of their range; below zero means the reverse. A sustained stretch on one side and a cross of the zero line after such a stretch are the readings worth testing. A line that hugs zero and flips every few bars carries no information.
What period should CMF use?
The common default is 20 or 21 bars, which is about one month of daily bars. A shorter period such as 10 reacts faster but crosses zero far more often, and each cross is a possible trade and a possible cost. A longer period such as 50 is smoother but reports a change late. Choose the period where neighbouring settings test alike, not the single value with the best score.
What is the difference between CMF and OBV?
CMF is bounded between −1 and +1 and measures money flow inside a window, so a reading of +0.10 means the same thing in any year. OBV is a running total that adds a bar's whole volume on an up close and subtracts it on a down close, with no ceiling, so its level depends on where the total started and it can only be read by slope and divergence. OBV also ignores where the close sits inside the bar, while CMF is built on exactly that.
Is Chaikin Money Flow reliable on futures?
It is only as reliable as the volume field it reads. Futures volume shifts from the expiring contract to the next one around rollover and is thin in night sessions, so CMF on a single-contract or poorly rolled continuous series can jump at roll dates for calendar reasons. Plot volume, mark the roll dates, compare them with CMF's largest moves, and use a volume-rolled series before trusting any rule built on it.
What is a good Chaikin Money Flow value?
There is no single good value, because CMF's information is in duration and side, not level. Many traders use a small band such as ±0.05 to confirm a zero-line cross and treat readings held above about +0.20 or below about −0.20 for many bars as a strong lean. Whether those levels help on your market and bar size is a question for a test with costs included, not a rule to assume.
References
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
- Park, C.-H., & Irwin, S. H. (2007). What Do We Know About the Profitability of Technical Analysis? Journal of Economic Surveys, 21(4), 786–826.
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.

