Quantitative Finance & Trading
Chaikin Money Flow (CMF) Formula: Close Location Value Multiplier & Flat-Bar Guard
Calculate Marc Chaikin’s Close Location Value (Money Flow Multiplier) ((C - L) - (H - C)) / (H - L), Money Flow Volume, and 20-period CMF ratio with a halted/flat-bar zero-range guard.
Weight trading volume by where price closes inside the High-Low bar!
On-Balance Volume (OBV) assigns +100% of volume whenever today’s close ticks $0.01 above yesterday’s close — even if the stock collapsed from an intraday spike! Marc Chaikin’s Money Flow Multiplier (Close Location Value, CLV) instead locates the Close inside today’s own [Low, High] bar: MFM = ((Close - Low) - (High - Close)) / (High - Low) = (2 * Close - High - Low) / (High - Low) in [-1, +1]!
Closing at the exact high yields MFM = +1.00; closing at the midpoint yields 0.00; closing at the low yields -1.00. Multiplying MFM * Volume gives Money Flow Volume (MFV), and summing MFV / SUM(Volume) over 20 or 21 bars produces Chaikin Money Flow (CMF) — provided you guard High = Low (limit-locked or thinly traded flat bars) to return 0 instead of #DIV/0!
| Bar Scenario (Volume = 250,000) | High / Low / Close | Money Flow Multiplier | Money Flow Volume (MFV) |
|---|---|---|---|
| Upper-Range Accumulation | 54 / 44 / 52 | +0.6000 | +150,000 |
| Midpoint Equilibrium | 54 / 44 / 49 | 0.0000 | 0 |
| Halted / Limit-Locked Flat Bar | 50 / 50 / 50 | 0.0000 (Guarded!) | 0 (Avoids #DIV/0!) |
Flat-Bar-Safe Money Flow Multiplier (Close Location Value) in [-1, +1]
Evaluates ((C - L) - (H - C)) / (H - L) with an explicit H = L zero-range branch returning 0.
=IF(OR(B2 < B3, B4 < B3, B4 > B2, B5 < 0), "Close Must Lie Within [Low, High]", IF(B2 = B3, 0, ROUND(((B4 - B3) - (B2 - B4)) / (B2 - B3), 4)))Single-Bar Signed Money Flow Volume (MFV)
Multiplies the Close Location Value multiplier by traded bar volume B5.
=IF(OR(B2 < B3, B4 < B3, B4 > B2, B5 < 0), 0, IF(B2 = B3, 0, ROUND((((B4 - B3) - (B2 - B4)) / (B2 - B3)) * B5, 0)))Try the example
Use the original values or change them to test your understanding.