Chaikin Money Flow Confirmation Strategy: How to Build It in Arrow Algo

A Chaikin Money Flow confirmation strategy uses volume to answer one question before every entry. Is money actually flowing into this market, or is price moving on thin air?

Most entry signals come from price alone. A breakout above resistance. A moving average crossover. A bounce from support. Price can produce all of those on low conviction. Chaikin Money Flow (CMF) adds a second vote. The entry only fires when price and volume agree.

This guide covers what CMF confirms and how to set the threshold. It then walks through three setups worth testing and how to assemble them in Arrow Algo’s visual builder.

What Does Chaikin Money Flow Confirm?

Chaikin Money Flow measures buying and selling pressure over a lookback window. Marc Chaikin developed it in the 1980s. StockCharts has the full background.

The indicator ranges between -1 and +1. In practice it rarely moves beyond plus or minus 0.5. A positive reading means candles have been closing in the upper part of their range on good volume. A negative reading means the opposite.

Zero is the dividing line. Above zero, buyers have controlled the closes. Below zero, sellers have. A confirmation strategy uses that sign to approve or reject a price signal.

We covered the indicator itself in our Chaikin Money Flow complete guide. This post focuses on using it as a filter.

How Does CMF Turn Volume Into a Signed Reading?

Each candle gets a score for where it closed within its range. A close at the high scores +1. A close at the low scores -1. A close in the middle scores zero. Fidelity’s indicator guide walks through the arithmetic.

That score is multiplied by the candle’s volume. The results are summed over the lookback period, usually 20 candles. The sum is then divided by total volume over the same period.

The division matters. It makes CMF a volume-weighted average of close position, not a raw volume total. A single huge candle still carries extra weight. It cannot push the reading outside the -1 to +1 range.

The practical consequence is that CMF reacts to where price closes, not just how far it moves. A long green candle that closes off its high scores less than a smaller candle that closes at the top.

Which Confirmation Setups Are Worth Testing?

Three structures cover most uses. Each pairs CMF with a price signal and only acts when both agree.

1. Breakout Confirmation

Price closes above the highest high of the previous 20 candles. CMF must be above +0.05 at the same moment. If CMF is negative or near zero, the breakout is ignored.

This filter targets false breakouts. A breakout on weak money flow often fades within a few candles. Our false breakout guide covers why that happens.

2. Trend Pullback Confirmation

Price is above its 50-period EMA and pulls back towards it. The entry fires on the first close back above a short moving average. CMF must have stayed positive through the pullback.

Positive CMF during a pullback means buyers kept defending the closes, even as price dipped. A pullback where CMF turns negative suggests distribution. The entry is skipped.

3. Zero-Line Cross Confirmation

Here CMF is the trigger rather than the filter. Entry fires when CMF crosses above zero, but only if price is also above its 100-period SMA.

This reverses the usual roles. Price confirms volume. It suits slower timeframes, where a zero cross marks a genuine change in participation.

For all three, a mirror version works for shorts. Replace “above” with “below” and positive thresholds with negative ones.

Where Should the CMF Threshold Sit?

Zero is the obvious threshold. It is also the noisiest. CMF chops around zero constantly in ranging markets.

A small buffer helps. Requiring CMF above +0.05 for longs filters out marginal readings. Requiring above +0.10 is stricter. It produces fewer trades, but each one carries stronger confirmation.

The right buffer depends on the market. Bitcoin on a 4-hour chart behaves differently to a thin altcoin on a 15-minute chart. Backtest a range of values, such as 0, 0.05, 0.10 and 0.15. Look for a plateau where results are similar across neighbouring values. Avoid picking the single best one.

Lookback period matters too. The default is 20. A shorter period reacts faster but confirms less. A longer period, such as 50, confirms slower trends and ignores short bursts.

When Does Volume Confirmation Mislead You?

Volume data is not equal everywhere. On a centralised exchange, the volume feed reflects that exchange only. On a low-liquidity pair, a single large trade can distort CMF for the whole lookback period.

Gaps break the formula. CMF assumes each candle’s range is meaningful. A candle that gaps and closes near the high scores +1, even if the move was a single print. Crypto trades around the clock so gaps are rarer. Thin weekend liquidity creates the same effect.

Trending markets create false negatives. In a strong uptrend, pullbacks can push CMF negative briefly even though the trend is intact. Setup 2 above requires CMF to stay positive, so some valid pullbacks get skipped. That trade-off is deliberate.

Confirmation also costs entries. A filter that removes half the losers usually removes some winners too. Compare the filtered and unfiltered versions side by side. Judge the filter on profit factor and drawdown, not on win rate alone.

Assembling the Blocks in Arrow Algo

Arrow Algo includes a Chaikin Money Flow block in its no-code visual builder. It takes high, low, close and volume from a data watcher block and outputs the CMF value. Set the lookback period in the block’s properties.

For the breakout confirmation setup:

  1. Add a data watcher for your pair and timeframe.
  2. Connect its high, low, close and volume outputs to the CMF block. Set the period to 20.
  3. Add a Maximum block on the high with a period of 20. Pass it through a Lag block of one candle, so the maximum excludes the current candle. Without the lag, the close can never exceed a maximum that includes its own candle.
  4. Add a condition block: close greater than the lagged maximum.
  5. Add a second condition: CMF greater than a fix number block set to 0.05.
  6. Connect both conditions into an AND block. Connect its true output to a Buy block.

For the exit, add a condition where CMF drops below zero, or use a trailing stop block. Connect it to a Sell block.

Once built, run a backtest on live historical exchange data. Then clone the strategy, remove the CMF condition and run it again. The difference between the two backtests is the value of the confirmation. Our three-indicator confluence strategy shows how to extend this with a third filter.

What to Carry Into the Backtest

Disclaimer: This content is for educational purposes only and does not constitute financial advice. Trading involves significant risk and you should only trade with capital you can afford to lose. Past performance is not indicative of future results. Always conduct your own research before making any trading decisions.

Ready to build your own automated trading strategies without writing a single line of code? Start for free at Arrow Algo and join thousands of traders who've made the switch to systematic trading.