
一句话结论: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 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:用哪个?
| 对比项 | OBV | A/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. 青柠指标列表中搜索「CMF」或「钱德动量」可以找到 CMF 指标。
- 2. 用数值比较组件:「CMF > 0」或「CMF 穿越 0」,实现零线穿越筛选。
- 3. 建议搭配趋势方向(第10课MA、第19课ADX)或价格形态使用,不要单独用 CMF 做选股。
- 4. A/D Line 和 CMF 更适合做排除信号:当 CMF 长期为负时,股票可能处于机构派发阶段,适合从候选池中剔除。
更多策略可以在青柠策略市场查看。
六、下一课和相关课程
下一课(第46课):MFI 资金流量指标,相当于「带成交量的 RSI」——同样用14日窗口,把典型价格乘以成交量后计算超买超卖。
相关课程:
- – 第44课(OBV 能量潮):同系列,A/D 与 OBV 的原理对比
- – 第25课(RSI:超买超卖的标准答案):MFI 的原型指标
常见问题
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%。历史统计不代表未来表现,不构成投资建议。
读到这里,不如自己验证一次
文章里的逻辑,你可以在青柠量化里用真实数据重新跑一遍。免费,零代码。