A/D 和 CMF:资金是在流入还是流出

青 青柠量化
2026-10-15
A/D和CMF三个信号近一年20日超额收益,均为负值。

一句话结论:CMF穿越零线、CMF持续大于0.05、A/D Line创新高,三个信号近一年在全A股20日超额均为负(−0.34%至−0.40%),扣成本后更差。A/D 和 CMF 目前在 A 股缺乏独立选股效果,适合作为其他信号的辅助确认。

上一课(第44课)的 OBV 是把整根K线成交量按涨跌全量加减。这一课的 A/D Line 更细:不是整根K线算,而是按收盘价在今天最高最低中的位置打折——收盘越靠近最高价,今天的量就计入越多。

A/D和CMF三个信号近一年20日超额收益,均为负值。
A/D和CMF三个信号近一年20日超额收益,均为负值。

一、原理与公式

A/D Line(积累/派发线)

第一步:计算 CLV(收盘位置值)

$$
CLV = \frac{(Close – Low) – (High – Close)}{High – Low}
$$

CLV 的取值范围是 \(-1\) 到 \(+1\):

  • – 收盘 = 最高价时 CLV = +1(完全积累)
  • – 收盘 = 最低价时 CLV = −1(完全派发)
  • – 收盘 = 中间时 CLV = 0

第二步:计算每日资金流量(MFV)

$$MFV = CLV \times Volume$$

第三步:累加得到 A/D Line

$$A/D_t = A/D_{t-1} + MFV_t$$

与 OBV 的核心区别:OBV 整根K线量直接加减;A/D Line 按收盘位置打折,能区分「上影线很长」(收盘不强)和「收在最高价」(非常强)。

CMF(蔡金资金流量)

CMF 是 A/D Line 的"窗口版",不再无限累计,而是只看最近 N 日:

$$
CMF(N) = \frac{\sum_{t-N+1}^{t} MFV_t}{\sum_{t-N+1}^{t} V_t}
$$

常用 N=20 或 N=21。CMF 范围约 \(-1\) 到 \(+1\),围绕零轴震荡:

  • – CMF > 0:最近 N 日资金净流入
  • – CMF < 0:最近 N 日资金净流出
  • – CMF > 0.05:通常被认为"较强流入信号"

二、OBV vs A/D:用哪个?

对比项OBVA/D Line
成交量处理整根K线全量加或全减按收盘位置打折
收盘在中间的K线也算全量CLV接近0,几乎不计入
长上影线跌停涨日全量+(因最终收盘涨)若收盘接近最低,权重接近-1
形态偏好方向信号区分强弱(位置精细化)

三、青柠数据实验

股票池:全A股(排除ST、北交所),后复权,近一年(2025-10-15 至 2026-10-16,共 244 交易日,4,977 只股票)。信号日收盘确认,次日开盘买,持有20日。超额 = 个股收益 − 同日全部股票平均。

信号信号次数20日收益胜率20日超额扣0.15%成本
CMF穿越零线(负→正)57,507−0.12%44.1%−0.34%−0.49%
CMF > 0.05(持续流入持有)350,120−0.70%41.9%−0.27%−0.42%
A/D Line创20日新高111,952−0.53%43.3%−0.40%−0.55%

三个信号无一例外都是负超额,且信号越多(CMF>0.05 有35万次)越差——这说明"资金正在流入"这个状态非常普遍,没有选股区分度。

牛熊拆分(CMF穿越零线)

市场环境信号次数20日超额扣成本
牛市(HS300 > MA250)47,629−0.19%−0.34%
熊市(HS300 < MA250)9,878−1.85%−2.00%

与上一课 OBV 不同,CMF 穿越零线在牛市也没有正超额,说明 CMF 本身的区分度低于 OBV。


四、常见误区

「CMF > 0 就意味着股价会涨」

CMF > 0 只说明最近 N 日的收盘大多在K线上半段,不代表未来会涨。本课近一年数据:CMF>0.05 的 35 万个信号,平均 20 日收益 −0.70%,没有选股效果。

「A/D Line 比 OBV 更准确」

A/D Line 更"精细",不代表更"有用"。精细化到 CLV 层面的信息,在 A 股并没有带来额外收益。上一课 OBV 创新高在牛市还有 +0.33% 超额,A/D 创新高连牛市也没有。

「当最高价等于最低价时(一字板)CLV 有意义」

分母为 0,CLV 无法计算,技术上需要特殊处理(本课设为 0)。一字板当天 MFV = 0,不计入 A/D 和 CMF。

「CMF 有标准的阈值 +0.05/-0.05」

这是 StockCharts 推荐的常用阈值,不是公式规定。不同行情周期、不同市场,合适阈值会变。本课回测显示,在近一年 A 股中,CMF > 0.05 的"强流入"并没有带来超额收益。


五、在青柠中实操

  1. 1. 青柠指标列表中搜索「CMF」或「钱德动量」可以找到 CMF 指标。
  2. 2. 用数值比较组件:「CMF > 0」或「CMF 穿越 0」,实现零线穿越筛选。
  3. 3. 建议搭配趋势方向(第10课MA、第19课ADX)或价格形态使用,不要单独用 CMF 做选股。
  4. 4. A/D Line 和 CMF 更适合做排除信号:当 CMF 长期为负时,股票可能处于机构派发阶段,适合从候选池中剔除。
策略库回测 · 沪深A股 · 近 1 年日 K · 默认参数 更新于 2026-09-11 19:02 · 每日重算
# 策略 类型 年化收益 夏普 最大回撤 胜率 评级
01 左侧趋势抄底·急跌收阳 趋势 +1.3% 0.85 16.4% 83% A 导入复现
02 MACD金叉死叉 趋势 +0.9% 0.08 20.8% 35% PRO 导入复现
03 RSI超买超卖 震荡 +0.8% 0.23 30.8% 45% PRO 导入复现

更多策略可以在青柠策略市场查看。


六、下一课和相关课程

下一课(第46课):MFI 资金流量指标,相当于「带成交量的 RSI」——同样用14日窗口,把典型价格乘以成交量后计算超买超卖。

相关课程:


常见问题

CMF 和 MFI 是一回事吗?

不是。CMF 用的是 A/D 的每日资金流量(CLV × V),最终是比率振荡;MFI(第46课)用的是「典型价格 × 成交量」,然后按 RSI 的方式计算资金流量比率。两者思路不同。

为什么 CMF 穿越零线的信号次数(57,507次)远少于 CMF>0.05(350,120次)?

穿越是"动作"(前日负、当日正),状态会在跨越后消失;而 CMF>0.05 是持续"状态",只要 CMF 保持在阈值以上每天都计一次信号。状态类信号天然次数更多。

A/D Line 在起始点不同时,累计值不同,怎么比较两只股票?

同 OBV 一样,A/D Line 不能跨股票比较绝对值,只看股票自身的趋势和相对新高/新低。不同软件同一只股票的 A/D 数值可能不同,但方向趋势应当一致。


口径说明

股票池为全 A 股,排除 ST(按当前名称)和北交所,剔除未复权收盘价低于 3 元的股票,价格后复权。信号期 2025-10-15 至 2026-10-16,共 4,977 只股票、244 个交易日。CLV = [(Close−Low)−(High−Close)]/(High−Low);当 High=Low(一字板)时 CLV 设为 0。CMF(21) = SUM(过去21日MFV) / SUM(过去21日成交量),需满 21 根K线才计算。A/D 从 2025-04-01 起累积。CMF穿越零线:前日CMF<0,当日CMF≥0。CMF>0.05:当日CMF超过0.05。A/D创新高:当日A/D Line大于过去20个交易日A/D Line最大值(不含当日)。牛熊:沪深300 收盘相对其 250 日均线,需满250日方判定。信号日收盘确认,次日开盘买入,持有至第20日收盘;次日一字涨停剔除。超额收益 = 信号股票收益 − 同日股票池全部股票同口径平均。个股每笔来回成本 0.15%。历史统计不代表未来表现,不构成投资建议。

读到这里,不如自己验证一次

文章里的逻辑,你可以在青柠量化里用真实数据重新跑一遍。免费,零代码。

免费下载客户端

写下你的看法

邮箱仅用于回复通知,不会公开。