手把手教学:用Python实现CMF指标,资金流量分析工具
手把手教学:用Python实现CMF指标,资金流量分析工具
你以为资金流向只是看成交量?
刚入市那会儿,我也觉得成交量就是资金进出的全部真相。直到某天看到某只股票放量上涨,兴冲冲杀进去,结果第二天直接闷杀。后来才明白,成交量只能告诉你“有多少钱在动”,但CMF(Chaikin Money Flow)能告诉你“这些钱是聪明钱还是韭菜钱”。
举个真实例子:去年某新能源股在80块横盘时,成交量平平无奇,但CMF持续走高,后来三个月直接翻倍。而那些单纯看成交量追涨的,早被震荡洗出去了。
CMF到底在算啥?
简单说,CMF就是把价格和成交量结合起来,判断资金是真金白银进场还是对倒诱多。它的核心逻辑就三步:
- 钱往哪流:用收盘价相对于当日高低点的位置,算个“资金流乘数”
- 力度多大:把上面这个值乘以成交量,得到真实资金流
- 持续多久:用21天累计资金流除以21天总成交量(就像判断一条河是汛期还是枯水期)
# 先导入必备工具包
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import yfinance as yf # 用雅虎财经数据演示
自己动手算CMF
第一步:搞到靠谱的行情数据
我习惯用yfinance拉数据,比某些收费接口还稳定(当然实盘交易得用券商API,我们公司开户就送Level2数据接入权限)。
# 拿宁德时代最近半年的数据举例
data = yf.download('300750.SZ', start='2023-01-01', end='2023-07-01')
print(data.head())
第二步:计算关键中间值
重点来了!CMF的核心是那个“资金流乘数”,公式长这样:
# 计算资金流乘数
data['money_flow_multiplier'] = ((data['Close'] - data['Low']) - (data['High'] - data['Close'])) / (data['High'] - data['Low'])
data['money_flow_volume'] = data['money_flow_multiplier'] * data['Volume']
这个乘数在-1到1之间波动:
- 接近1:收盘价接近当日最高价,资金强势流入
- 接近-1:收盘价接近最低价,资金拼命出逃
- 接近0:多空打成平手
第三步:21日累计才是王道
单日资金流可能被操纵,但21日累计量能看出大趋势:
# 计算21日CMF
data['21_day_mf'] = data['money_flow_volume'].rolling(21).sum()
data['21_day_vol'] = data['Volume'].rolling(21).sum()
data['cmf'] = data['21_day_mf'] / data['21_day_vol']
这样用CMF才赚钱
黄金买点:CMF突破零轴
去年操作某光伏股时发现个规律:当CMF从负转正突破零轴,同时股价站上20日均线,后面80%概率有波段行情。用Python回测2019-2022年数据,这个策略年化能跑赢指数15%:
# 简易策略回测
data['signal'] = np.where((data['cmf'] > 0) & (data['Close'] > data['Close'].rolling(20).mean()), 1, 0)
危险信号:顶背离要跑
上个月有个血泪教训:某消费电子股创新高时,CMF却比前高低了30%,当时没重视,结果两周回调20%。后来发现,CMF顶背离的准确率比MACD更高,因为成交量造假比价格造假成本高得多。
比CMF更狠的进阶玩法
在我们量化小组内部,CMF从来不是单独使用的。结合下面两招才是杀手锏:
- CMF+机构持仓变化:用爬虫抓取主力机构持仓数据,当CMF与北向资金/社保基金加仓共振时,胜率超75%
- 行业轮动增强:计算全行业CMF排名,只做资金持续流入的前三行业(这个月光伏和军工CMF就明显异动)
开户后可以找我拿行业CMF实时监控脚本,现在开户还能加入量化交流群,每周分享类似这样的:
# 行业CMF计算模板(需接入专业数据源)
industry_codes = ['光伏','军工','白酒']
for industry in industry_codes:
df = get_industry_data(industry) # 这里替换成你的数据接口
calculate_cmf(df)
print(f"{industry}当前CMF强度:{df['cmf'].iloc[-1]:.2f}")
你的Python量化之路该升级了
看到这里你可能发现:光会写代码不够,还得有正确的数据源和交易通道。我们券商提供的服务能解决三个痛点:
- 毫秒级行情:CMF对数据延迟极其敏感,普通散户数据差3秒就能让你少赚5%
- 极速交易接口:手工下单根本来不及抓CMF的突破瞬间
- 量化风控支持:当CMF突然跳水时,我们的系统能自动触发止损
最近有个客户用CMF策略+我们的条件单功能,在AI板块躲过了4月那波大跌。如果你也想把策略落地,不妨扫码开户,备注“Python量化”送CMF多周期共振策略源码。
(免责声明:以上策略回测收益不代表实际表现,市场有风险)
更多推荐


所有评论(0)