Most volume indicators answer a blunt question: was volume high or low? Chaikin Money Flow, developed by Marc Chaikin, asks a sharper one — when that volume traded, did price finish the bar near the top of its range or near the bottom? A bar that closes near its high is treated as accumulation, buyers absorbing everything offered; a bar that closes near its low is distribution, sellers doing the same in reverse. CMF weights each bar's volume by exactly that, then averages the result over a look-back period into a single line that oscillates around zero. Positive means the period's volume has been landing on the buying side, negative means the selling side — and unlike a raw volume histogram, that reading is directly comparable from one pair, timeframe, or week to another.
How Chaikin Money Flow Is Calculated
CMF is built in three steps, and each one is worth understanding separately because the middle step is where the whole idea lives.
- Money Flow Multiplier =
((Close − Low) − (High − Close)) / (High − Low). This produces a value between −1 and +1 for every bar. A bar that closes exactly at its high scores +1, a bar that closes exactly at its low scores −1, and a bar that closes dead centre scores 0. Note what it ignores: the direction of the bar. A red bar that closes near its high still scores positive, because buyers pushed it back up off the low even if it finished under the open. - Money Flow Volume = Money Flow Multiplier × the bar's volume. Same number, now scaled by how much actually traded during that bar.
- CMF =
Sum(Money Flow Volume over N bars) / Sum(Volume over N bars), with N defaulting to 20.
Dividing by total volume is what keeps CMF bounded roughly between −1 and +1 no matter how active the market is, and it's why a CMF of +0.20 means the same thing on a quiet Tuesday as it does during the London/New York overlap. Neither MetaTrader 4 nor MetaTrader 5 ships a built-in CMF function, so chaikin-money-flow-alert.mq4/.mq5 calculate all three steps directly from the High, Low, Close, and volume arrays.
Entry Conditions
The base signal is the zero-line cross. CMF moving from below zero to above it says that over the last N bars, volume has shifted from closing near bar lows to closing near bar highs — accumulation has taken over from distribution. The mirrored cross below zero says the opposite. The alert logic in chaikin-money-flow-alert.mq4/.mq5 checks the two most recently closed bars for exactly this cross, and the CrossLevel input lets you move the trigger off zero entirely if you want a stricter version of the same signal.
Reading the Strength of a CMF Reading
Because CMF is bounded, its absolute value carries information that an unbounded volume line like OBV simply can't express. Readings between roughly −0.05 and +0.05 are best treated as noise — the buying and selling pressure over the look-back window is close to balanced, and a cross of zero inside that band is more likely to be a rounding artefact of a couple of indecisive bars than a real shift. Readings past ±0.20 are where most traders start treating the signal as meaningful conviction, and sustained readings past ±0.30 are genuinely uncommon and usually accompany a strong directional move. This is why filtering entries on a threshold rather than raw zero — the approach used by this site's CMF Trend EA — tends to cut a large share of the false signals without losing much of the real ones.
CMF vs OBV, Accumulation/Distribution, and MFI
CMF sits in a family of four volume tools on this site, and they differ in ways that matter. OBV adds or subtracts a bar's entire volume based only on whether the close was up or down — it's a running cumulative total with no bound, so only its slope and its divergences are readable, never its level. Accumulation/Distribution uses the same Money Flow Multiplier that CMF does, but accumulates it forever instead of averaging it over a window — so A/D is the cumulative, unbounded cousin of CMF, and CMF is essentially A/D's rate of change normalized by volume. MFI takes yet another route: it runs an RSI-style calculation on typical price × volume and returns a 0-100 oscillator with overbought and oversold zones. In practice, CMF's advantage over all three is that a single glance at its level tells you both direction and conviction, with no reference to where the line was three months ago.
Parameters
- CMFPeriod (default 20) — the look-back window the money flow volume and total volume are summed over. Shorter (10-14) makes CMF react to a handful of strong bars quickly and cross zero far more often; longer (30-50) produces a slow, smooth line that rarely crosses but carries more weight when it does.
- CrossLevel (default 0.0) — the level the alert triggers on. Setting it to 0.05 or 0.10 means the indicator only alerts once CMF has moved decisively past the noise band described above, rather than the moment it nicks zero.
- EnableAlert / EnablePush — toggle the on-screen popup and the mobile push notification independently.
How Traders Combine CMF with Other Tools
CMF is a confirmation tool far more often than a standalone entry trigger, and the most common pairing is with price structure. A support or resistance level that breaks while CMF is already positive and rising is a very different event from the same break with CMF sitting negative — in the second case, the breakout is happening without the volume behind it closing near bar highs, which is exactly the profile of a failed break. The other standard use is divergence: price grinding to a new high while CMF makes a visibly lower high says each successive push is being made on volume that keeps closing weaker inside its range. Adding a trend filter such as a long Moving Average on top of CMF is what turns it from a pressure gauge into a tradeable rule set, since CMF alone has no concept of which way the market is actually going.
A Word of Caution
The single largest caveat with CMF in forex is one it shares with every volume indicator on a currency pair: there is no real volume in spot forex. The market is decentralized, so your broker reports tick volume — the number of price updates during the bar — as a proxy for how much traded. Tick volume correlates reasonably well with actual activity, but it is not the same measurement, and it can differ between two brokers looking at the same pair at the same moment. Beyond that, CMF's Money Flow Multiplier is blind to gaps: a bar that gaps far above the previous close and then drifts down to close near its own low scores strongly negative, even though the move over that period was clearly upward. And like every averaged indicator, CMF lags — the cross tells you a shift has already been underway for part of the look-back window. Treat it as evidence about who has been in control, not as a forecast.
Download the Indicator
This custom indicator plots Chaikin Money Flow in a separate window and alerts when the line crosses the configured level. Grab either the MetaTrader 4 or MetaTrader 5 build from the downloads at the end.