A bounded volume oscillator that measures buying vs. selling pressure over a fixed lookback (default 20 bars). Computed from the same Money Flow Volume as the A/D Line, but normalized — produces readings between roughly −1 and +1, making CMF readings directly comparable across instruments.
On confirmation tools
CMF is a confirmation indicator. Its readings validate or invalidate the strength of price moves; rarely do they fire trades by themselves. Use it as a filter for price-based signals, especially for breakouts and trend continuations.
CMF(20) on MES daily — selling-to-buying-pressure transition
What it measures
- Net buying vs. selling pressure over the lookback. Positive = accumulation dominating; negative = distribution dominating.
- Normalized scale. Bounded oscillator-style — CMF readings on MES and AAPL are directly comparable in a way OBV or A/D Line values aren't.
- Slow-moving confirmation. Less reactive than per-bar volume; smooths out noise to reveal sustained accumulation/distribution.
Formula
How AlgoLift computes it
For each bar inside the lookback:
CLV[i] = ((Close − Low) − (High − Close)) / (High − Low)
Money Flow Volume[i] = CLV[i] × Volume[i]
Then:
CMF = sum(Money Flow Volume over period) / sum(Volume over period)
The numerator is the same calculation as A/D Line's per-bar money flow. The denominator normalizes by total traded volume, producing a ratio between −1 and +1 (in practice, almost always between −0.5 and +0.5).
The bounded scale is what differentiates CMF from A/D Line. A/D Line drifts indefinitely; CMF resets every bar to a fresh −1 to +1 reading.
Developed by Marc Chaikin.
Inputs in AlgoLift
| Setting | Default | Range | Notes |
|---|---|---|---|
| Period | 20 | 1–200 | Lookback for summing money flow and volume. Standard is 20 or 21 (one trading month). |
Recommended periods
- 10 (fast): Short-term flow detection.
- 20 (default): Chaikin's recommendation — one trading month.
- 21: Equivalent — also common.
- 50: Slower — emphasizes only major flow shifts.
Outputs in AlgoLift
| Handle | Type | Plotted | Notes |
|---|---|---|---|
| CMF Value | Numeric | Always | The oscillator. Roughly −0.5 to +0.5 in practice. |
| Slope | Numeric | On select | Rate of change. Useful for spotting flow shifts before CMF crosses zero. |
| Money Flow Volume | Numeric | On select | Per-bar raw money flow — same calculation as A/D Line's input. |
| Direction | Numeric | On select | Binary: 1 when CMF > 0 (bullish flow), −1 when CMF < 0. |
CMF node — default state
How to read it
- CMF > +0.2: Sustained buying pressure — accumulation regime.
- CMF < −0.2: Sustained selling pressure — distribution regime.
- CMF between −0.05 and +0.05: Neutral — neither flow side is dominant.
- CMF crossing zero: Net flow has flipped direction — confirmation of a trend transition.
- CMF rising while above zero: Buying pressure is intensifying.
- CMF falling from a high level while still positive: Buying is fading even though net flow is still positive — early warning of a transition.
The ±0.2 thresholds are loose conventions, not strict rules. Strong-flow instruments may see CMF readings above +0.3 sustained; weaker-flow ones may rarely cross ±0.1.
CMF is the normalized, bounded cousin of A/D Line. The bounded scale makes it directly comparable across instruments — perfect for portfolio-level analysis or cross-symbol filters. The fixed lookback gives steady readings rather than the drifting cumulative sums of OBV and A/D Line.
Best in / worst in
Best in sustained-flow regimes where buying or selling pressure persists over many bars. Excellent for medium-term confirmation of trends and as a portfolio-level relative-strength indicator across multiple instruments.
Worst in very-short timeframes where the 20-bar lookback creates significant lag, and in instruments with frequent gaps that distort the CLV calculations.
Three confirmation patterns
1. Trend confirmation via Direction output
Use CMF's Direction (1 / −1) as a binary flow-regime flag for price-based strategies.
- Long-only mode: CMF Direction = 1 (positive flow) — price strategies permitted to take longs only.
- Short-only mode: CMF Direction = −1 — short entries only.
A clean no-tuning regime gate that runs in parallel with other systems.
CMF Direction as a regime gate
2. Breakout confirmation with flow strength
Filter breakouts by CMF magnitude.
- Valid upside breakout: Price closes above a 20-bar high AND CMF > +0.15 (strong buying flow).
- Valid downside breakout: Symmetric with CMF < −0.15.
- Failed/suspect breakout: Price breaks but CMF is weak (within ±0.05) → skip.
The magnitude check eliminates breakouts happening without underlying flow support.
3. Divergence as a reversal warning
When price makes new extremes but CMF doesn't, flow is fading.
- Bearish divergence: Price's 20-bar high > price's 20-bar high from 20 bars ago AND CMF's 20-bar high < CMF's 20-bar high from 20 bars ago.
- Bullish divergence: Symmetric for lows.
Wire via BarsAgo Modifier comparisons. Pair with a range-regime filter (KAMA ER < 0.3) — divergence in range markets means reversal; divergence in trends often just means flow is consolidating.
Advanced patterns in AlgoLift
CMF for cross-instrument relative-strength. The bounded scale means CMF readings are comparable across symbols. Compute CMF on multiple instruments via separate Data Source nodes — trade the strongest 2-3 (highest CMF) long and weakest 2-3 (lowest CMF) short. A momentum-rotation pattern that uses flow rather than price as the ranking metric. See strategy correlation.
CMF Direction in Conditional Flow. Route the strategy between long-bias and short-bias sub-logic based on CMF Direction. Single graph adapts to current flow regime.
CMF + ADX combo for high-conviction trend entries. ADX > 25 confirms a trend is strong; CMF > +0.15 (or < −0.15) confirms the flow is real. Requiring both produces fewer but much higher-conviction entries.
Money Flow Volume slope for scale-in timing. Per-bar Money Flow Volume tells you instantaneous flow. Sustained positive flow (use a Tally over the last N bars) signals fresh accumulation — a good time to scale into a winning long.
Common mistakes
- Treating CMF and A/D Line as identical. They share inputs but produce different signals. A/D Line drifts (great for divergence over weeks); CMF resets each bar (great for current-regime classification).
- Using too-tight thresholds. Setting "CMF > 0" as a long signal is too sensitive — flow oscillates around zero constantly. Use ±0.1 or ±0.15 as practical thresholds.
- Trading CMF alone. It's a confirmation tool. Without a price-based primary signal, CMF rarely produces tradable edges.
- Ignoring divergence direction. CMF divergence works similarly to OBV divergence but is more reliable on shorter timeframes due to the bounded scale.