手把手教学:用Python实现CMF指标,资金流量分析工具

你以为资金流向只是看成交量?

刚入市那会儿,我也觉得成交量就是资金进出的全部真相。直到某天看到某只股票放量上涨,兴冲冲杀进去,结果第二天直接闷杀。后来才明白,成交量只能告诉你“有多少钱在动”,但CMF(Chaikin Money Flow)能告诉你“这些钱是聪明钱还是韭菜钱”

举个真实例子:去年某新能源股在80块横盘时,成交量平平无奇,但CMF持续走高,后来三个月直接翻倍。而那些单纯看成交量追涨的,早被震荡洗出去了。

CMF到底在算啥?

简单说,CMF就是把价格和成交量结合起来,判断资金是真金白银进场还是对倒诱多。它的核心逻辑就三步:

  1. 钱往哪流:用收盘价相对于当日高低点的位置,算个“资金流乘数”
  2. 力度多大:把上面这个值乘以成交量,得到真实资金流
  3. 持续多久:用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从来不是单独使用的。结合下面两招才是杀手锏:

  1. CMF+机构持仓变化:用爬虫抓取主力机构持仓数据,当CMF与北向资金/社保基金加仓共振时,胜率超75%
  2. 行业轮动增强:计算全行业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量化之路该升级了

看到这里你可能发现:光会写代码不够,还得有正确的数据源和交易通道。我们券商提供的服务能解决三个痛点:

  1. 毫秒级行情:CMF对数据延迟极其敏感,普通散户数据差3秒就能让你少赚5%
  2. 极速交易接口:手工下单根本来不及抓CMF的突破瞬间
  3. 量化风控支持:当CMF突然跳水时,我们的系统能自动触发止损

最近有个客户用CMF策略+我们的条件单功能,在AI板块躲过了4月那波大跌。如果你也想把策略落地,不妨扫码开户,备注“Python量化”送CMF多周期共振策略源码

(免责声明:以上策略回测收益不代表实际表现,市场有风险)

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐