Chaikin Money Flow(CMF):公式、设置与读法

Chaikin Money Flow(CMF)会评估每根 K线 在自身区间内的收盘位置(接近高点为 +1,接近低点为 −1),再用成交量加权,汇总 20 根 K线,并除以 20 根 K线 的成交量。高于 +0.05 表示买盘压力,低于 −0.05 表示卖盘压力,超过 ±0.25 表示强势;中间区域是噪声。它最好的用途是背离:价格创更高高点,CMF 却创更低高点。
当突破看起来正确,而我想知道收盘是否配合时,CMF 是我会先看的成交量指标。它回答的是一个很窄的问题:这些 K线 是否在成交量支持下强收或弱收。它回答得很快,因此适合作为背离和确认工具,但不适合作为触发器。本页会介绍乘数与公式、±0.05 和 ±0.25 水平、如何解读符号、交叉与背离、与 OBV、VFI、MFI 和 A/D 线的比较,一个从订单块处背离到结构破位时交叉的 BTCUSDT 4 小时顶部案例,以及 CMF 容易误导的地方。计算器会对粘贴的 K线 运行完整公式。
经得起公开验证的指标。
一个引擎,四款精准工具:Gold(XAU)Scalper、机构级 Gravity Zone、Zeno 动量振荡指标,以及面向股票的 Zeno Stocks。
Chaikin Money Flow 衡量什么?
Chaikin Money Flow 对每根 K线 只问一个问题:它在自身区间内收在哪里?收在高点的 K线 乘数为 +1;收在低点为 −1;收在中间为 0。把这个乘数乘以该 K线 的成交量,汇总 20 根 K线 的结果,再除以同一 20 根 K线 的总成交量,就得到 CMF。它是一个介于 −1 和 +1 之间的数,用来说明总体上,成交量更多出现在强收 K线 还是弱收 K线 上。高于零表示 Marc Chaikin 意义上的吸筹;低于零则是派发。
它是 Chaikin Accumulation/Distribution line 的振荡指标版本,诞生于 1980 年代,基于 Larry Williams 的收盘位置思路。它的定义性特征是:它忽略当前 K线 相对前一根 K线 的方向。一根跳空低开但收在高点的 K线 是 +1;一根跳空高开但收在低点的 K线 是 −1。On-Balance Volume 会给出相反评分。CMF 衡量的是 K线 内部的信念,而不是日与日之间的方向。
它不做什么:它没有超出窗口以外的记忆,也不会过滤哪些 K线 应该计入。20 周期 CMF 会对每根 K线 作出反应,这让它很快,也让它很嘈杂;±0.05 区间存在的原因,是大多数读数都落在里面,而且没有意义。它是短周期的确认和背离工具;Volume Flow Indicator 是用于判断市场状态问题的较慢、经过过滤的近亲。
Chaikin Money Flow 公式是什么?

| 步骤 | 公式 | 范围 |
|---|---|---|
| 1. 资金流乘数 | ((close − low) − (high − close)) ÷ (high − low) | −1 到 +1 |
| 2. 资金流成交量 | multiplier × volume | — |
| 3. CMF | Σ money flow volume over n ÷ Σ volume over n | −1 到 +1;实践中为 −0.5 到 +0.5 |
| 水平(Chaikin) | ±0.05 = 买盘 / 卖盘压力;±0.25 = 强势 | — |
乘数就是整个思路的核心。收在区间上四分之一的 K线,说明无论中途如何,最终由买方掌控;收在区间下四分之一的 K线,则由卖方掌控。用成交量加权,意味着高成交量的弱收 K线 比低成交量的弱收 K线 权重更大;除以总成交量,则能在不同品种之间标准化,所以 +0.2 在 ES 和小盘股上含义相同。高点等于低点的 K线(除流动性很差的市场外较少见)乘数为零。
| 用途 | 周期 | 水平 | 备注 |
|---|---|---|---|
| 默认(Chaikin) | 20 | ±0.05 / ±0.25 | 约等于一个月的日线;21 很常见,实践中相同 |
| 日线波段 | 20–21 | ±0.05 / ±0.25 | 保持默认 |
| 4H crypto 和指数 | 20–30 | ±0.05 / ±0.20 | 略长一些,以抵消 24 小时噪声 |
| 日内 15M | 20 | ±0.10 / ±0.25 | 更宽的中性区间;仅配合交易时段或 VWAP 过滤器使用 |
| 更快确认 | 10 | ±0.10 | 会对每根 K线 反应;只用于背离,永远不要只交易交叉 |
如何解读 CMF 水平?

符号和区间。持续高于 +0.05 的读数确认上升趋势:K线 在成交量支持下收在自身区间的上半部。低于 −0.05 则确认下降趋势。两者之间是噪声,20 周期 CMF 的大部分时间都在那里。超过 ±0.25 的读数属于强势,在趋势中,这是应当持有并穿越回调的阶段。
零线交叉。这是 Chaikin 最初的信号,也是噪声最大的信号;CMF 在区间中会频繁穿越零线。请改用 ±0.05 区间:在一段低位之后上穿 +0.05,是对结构已经显示的转向进行确认,而不是独立触发器。
背离。这是让 CMF 值得保留的读法。价格创更高高点,而 CMF 创更低高点:新高是由区间内收盘更弱的 K线 推动的,买方把价格推上去,却没有守住。这是成交量角度的顶部派发,并且通常会比交叉提前数根 K线 出现。低点处的看涨镜像同样有用。CMF 上的背离比纯价格振荡指标上的背离更可靠,因为其中包含成交量。
未能确认突破。价格收在阻力上方,但 CMF 仍低于 +0.05,这说明成交量没有参与这次突破。其中一半是陷阱;那些在突破 K线 上 CMF 推升穿过 +0.10 的,才是值得追的。
CMF 计算器
把 K线 按 high、low、close、volume 粘贴进去,工具会计算每根 K线 的乘数、资金流成交量,以及该周期内的 CMF;它会报告所在区域、最后一根 K线 是否穿越 ±0.05 水平,并在最后 3 根 K线 与总读数不一致时标记出来,这是最早的背离读法。预载样本是一段上升趋势,其最后几根 K线 在放量时收盘位置逐渐走低。
CMF 与 OBV、VFI、MFI 和 A/D 有何不同?

| 指标 | 使用什么 | 周期视角 | 最擅长 | CMF 的不同之处 |
|---|---|---|---|---|
| CMF | K线 区间内的收盘位置 × 成交量,汇总 20 | 短 | 背离、突破确认 | — |
| OBV | 根据收盘相对前一收盘的方向给全部成交量加符号 | 累积 | 长期趋势确认 | OBV 读取 K线 与 K线 之间的方向;CMF 读取 K线 内部位置 |
| VFI | 对越过阈值的 K线 使用封顶成交量,周期为 130 | 长 | 市场状态 | VFI 有过滤且较慢;CMF 计入每根 K线 且很快 |
| MFI | 典型价格 × 成交量,以 RSI 形式计算,周期为 14 | 短 | 超买 / 超卖 | MFI 限定在 0–100,并使用典型价格;CMF 使用收盘位置,读取压力而非极值 |
| A/D 线 | 相同的 multiplier × volume,累积计算 | 累积 | 长期背离 | CMF 是滚动窗口内的 A/D 线,并按成交量标准化 |
CMF 和 A/D 线是同一计算在两个周期视角上的表现;OBV 与 CMF 衡量的是不同内容,而且经常相互矛盾,所以同时运行两者的交易者通常不是得到确认,而是更困惑。想要快速读数选 CMF,想要慢速读数选 VFI。
参考数据
| 项目 | 数值 |
|---|---|
| 来源 | Marc Chaikin,1980 年代,基于 Larry Williams 的收盘位置概念;Accumulation/Distribution line 的振荡指标形式 |
| 乘数 | ((close − low) − (high − close)) ÷ (high − low),−1 到 +1 |
| CMF | Σ (multiplier × volume) over n ÷ Σ volume over n |
| 默认周期 | 20(部分平台为 21) |
| 水平 | ±0.05 压力;±0.25 强势(Chaikin) |
| 范围 | 理论上 −1 到 +1;实践中 −0.5 到 +0.5 |
| 读作 | 成交量加权的收盘位置 — K线 内部信念 |
| 主要用途 | 趋势确认(符号超过 ±0.05)、转向处背离、突破成交量确认 |
| 不适合 | 区间中的零线交叉入场;没有真实成交量的市场(spot forex、CFDs) |
| TradingView | 内置 “Chaikin Money Flow”(length 20) |
案例:BTCUSDT 4 小时,背离与交叉
BTCUSDT 永续合约,4 小时图,CMF 设为 20。三周上升趋势中,CMF 全程维持在 +0.12 到 +0.31 之间;K线 在上半区间收盘,并伴随成交量上升,是教科书式吸筹。价格在 68,900 创高点,CMF 为 +0.27。6 根 K线 后,价格创出更高高点 69,400;CMF 打印 +0.14。进入该高点的最后两根 K线,就是计算器样本中的两根:69,200,收于 68,300,成交量 4,600;以及 69,400,收于 68,620,成交量 5,200。这两根全月最重成交量 K线 的乘数分别为 −0.64 和 −0.29。出现背离,并且这个更高高点位于 69,100–69,600 的日线看跌订单块内。
那是预警,不是交易。交易发生在 3 根 K线 后:4 小时收盘价 67,850,跌破最后一个更高低点 68,000,形成结构破位;CMF 为 −0.07,是 3 周以来首次低于 −0.05。67,850 做空,止损设在高点上方 69,450,风险为 1,600。目标为上一段推动的起点 64,200,距离 3,650 点,2.3R。4 天后触及目标。
同一张图上,两周前被跳过的交易:趋势中段回调期间,CMF 有 2 根 K线 跌到 −0.06,但没有背离,也没有结构破位,并且在 1 天内回到 +0.10 上方。单独的交叉,发生在趋势中,没有背离,没有结构破位,就是噪声。关键是:水平位处的背离加结构破位才是信号;CMF 交叉只是确认。
Chaikin Money Flow 在哪里失效?
跳空。一根跳空高开并收在低点的 K线 会读作 −1,尽管价格上涨;一根跳空低开并收在高点的 K线 会读作 +1。在财报附近的股票上,CMF 可能连续数天指向错误方向。请结合 K线 方向读取它,或把它用于很少跳空的 24 小时市场。
区间。零线交叉会不断触发,±0.05 区间每隔几根 K线 就会被穿越。在区间中,CMF 只能作为背离工具,甚至背离也会频繁出现。
没有真实成交量的市场。Spot forex 和 CFDs 报告的是 tick volume;在这些市场上使用 CMF,相当于用没有实际意义的东西给收盘位置加权。请使用期货、交易所交易股票和中心化 crypto 数据。
大区间但中位收盘的 K线。一根巨大区间 K线 如果收在中间,无论携带多少成交量,对 CMF 都没有贡献。这是设计使然,但一根恐慌出清 K线 如果收在区间中部,可能会让 CMF 在市场正好转向的时刻显得异常中性。
短周期。10 周期 CMF 在日线图上只是两周窗口,会不断在区间内来回洗出。只用它看背离。
交易者使用 CMF 时会犯哪些错误?
- 交易零线交叉。使用 ±0.05,并且只在结构之后作为确认。
- 把它当作方向指标。CMF 衡量 K线 在自身区间内收在哪里,而不是价格上涨还是下跌。
- 把它用在 forex 或 CFDs 上。没有已交易成交量,就没有意义。
- 忽视股票跳空。一根跳空高开但弱收的 K线 是 −1;请先决定这是否是您真正想衡量的内容。
- 把 CMF 和 OBV 叠加当作共振。它们按构造就会不同;每个周期视角选一个。
- 期待它领先。CMF 负责确认和背离;入场来自图表。
CMF 与免费指标
TradingView 内置 CMF 是精确的。在指标库中,Pressure Oscillator 是最接近的亲属:它从 K线 角度读取成交量相对区间,并标记那些 CMF 会评为区间中位零值的吸收 K线;Multi-Oscillator Divergence Scanner 可以在多个振荡指标中捕捉 CMF 风格的背离,而无需第四个窗格。Order Blocks with Volume 脚本提供背离应该发生的位置,就像上面的案例一样。高级引擎 Zeno 会打印带止损和目标的买入、卖出信号;当 CMF 刚刚在某个水平位背离时出现 Zeno 卖出信号,就是一个成交量侧已经记录在案的信号。
这根 K线 收在哪里,又带着多少成交量?这就是 CMF 每根 K线 都会问的问题。使用超过 ±0.05 的符号确认趋势,使用水平位处的背离预警趋势结束,再使用下穿 −0.05(或上穿 +0.05)并配合结构破位来确认转向。永远不要交易零线交叉,永远不要把它用于 forex,并让 VFI 回答 CMF 回答不了的慢速问题。
◆ 互动检查
您知道 CMF 评分的是什么吗?
交易者常问的 Chaikin Money Flow 问题
这是 Marc Chaikin 设计的成交量振荡指标,用来衡量每根 K线 在自身区间内的收盘位置:接近高点为 +1,接近低点为 −1;再用该 K线 的成交量加权,汇总 20 根 K线,并除以同一 20 根 K线 的总成交量。高于零是 Chaikin 意义上的吸筹,低于零是派发。
资金流乘数 = ((close − low) − (high − close)) ÷ (high − low)。资金流成交量 = multiplier × volume。CMF = n 根 K线 的资金流成交量之和 ÷ n 根 K线 的成交量之和,n 通常为 20。结果从 −1 到 +1,实践中通常位于 −0.5 到 +0.5 之间。
默认 20(或 21,实践中相同),±0.05 作为压力水平,±0.25 作为强势水平。在 4 小时 crypto 和指数图上,可用 20 到 30,并把 ±0.20 作为强势水平;日内交易中,把中性区间扩大到 ±0.10,并使用交易时段或 VWAP 过滤器。10 周期 CMF 只用于背离。
持续高于 +0.05 的读数确认上升趋势,低于 −0.05 则确认下降趋势;两者之间的区间是噪声。价格更高高点配合 CMF 更低高点是派发,价格更低低点配合 CMF 更高低点是吸筹,这些背离是最有用的信号。突破时 CMF 仍在区间内,说明成交量没有参与。
当收盘高于前一收盘时,OBV 会加上该 K线 的全部成交量;低于前一收盘时则减去全部成交量。它衡量的是 K线 与 K线 之间的方向。CMF 衡量的是 K线 在自身区间内的收盘位置,并忽略前一收盘。一根跳空高开但收在低点的 K线,对 OBV 是正值,对 CMF 是 −1。它们衡量不同内容,并且经常不一致。
两者使用相同的乘数和资金流成交量;A/D 线会永久累积它,CMF 则在滚动窗口内汇总,并按成交量标准化。CMF 是 A/D 线的振荡指标形式,更容易在不同品种之间比较。
在主要交易所的 4 小时和日线 BTCUSDT、ETHUSDT 图表上可以。24 小时市场很少跳空,这消除了 CMF 在股票上的主要弱点。本页案例就是一个 4 小时 BTC 顶部。在流动性差的 altcoins 和低时间周期上,它会反复洗出。
不适用于 spot forex 或 CFDs,因为它们报告的是 tick volume 或经纪商成交量,而不是已交易成交量。请将其用于货币期货、交易所交易股票和 ETFs、指数期货以及中心化 crypto 数据。
在交叉上,它是同步到滞后的;在背离上,它是领先的。相对价格更高高点出现 CMF 更低高点,通常会比结构破位提前数根 K线。把背离视为预警,把交叉视为确认。
TradingView 内置指标是精确的。Pressure Oscillator 是指标库中最接近的亲属,会从 K线 角度读取成交量相对区间;Multi-Oscillator Divergence Scanner 覆盖多个振荡指标上的 CMF 风格背离;Order Blocks with Volume 提供背离应该发生的位置。Zeno 是高级引擎,会打印带止损和目标的信号。
参考资料与相关指南
接下来阅读
- Volume Flow Indicator(VFI)
- On-Balance Volume(OBV)
- Money Flow Index(MFI)
- Twiggs Money Flow
- 最佳成交量指标
- 背离交易
- 多头陷阱与空头陷阱
- Pressure Oscillator(免费指标)
- Multi-Oscillator Divergence Scanner(免费指标)
- Order Blocks with Volume(免费指标)
- Zeno — 高级引擎