手把手教学:用Python实现Force Index,量价结合指标
一、Force Index 是什么?为什么它比单纯看价格靠谱?
很多新手炒股喜欢盯着K线看涨跌,但价格只是表象,真正的市场情绪藏在成交量里。Force Index(强力指数)就是帮我们把价格和成交量结合起来的指标,由Alexander Elder提出,专门用来衡量买卖双方的真实力量。
举个例子:某股票今天涨了5%,但成交量极小,这种上涨可能只是庄家在自嗨,散户根本没跟。相反,如果涨3%但成交量爆表,说明市场真金白银在推动,后续可能还有行情。Force Index 就是帮你识别这种“真假突破”的工具。
二、Force Index 的数学原理(别怕,很简单)
公式长这样:
Force Index = 今日成交量 × (今日收盘价 - 昨日收盘价)
其实就是把价格变动幅度乘以成交量,放大市场的真实情绪。实际使用中我们会用EMA(指数移动平均)平滑一下,避免噪音干扰。
Python实现时,核心就三行代码:
def force_index(close, volume, period=13):
price_diff = close.diff(1) # 今日收盘价 - 昨日收盘价
raw_fi = volume * price_diff
return raw_fi.ewm(span=period).mean() # EMA平滑
三、用A股真实数据跑一遍
我拿宁德时代2023年的数据做演示(数据来源:Tushare):
import pandas as pd
import tushare as ts
# 获取数据
df = ts.get_k_data("300750", start="2023-01-01", end="2023-12-31")
df['FI_13'] = force_index(df['close'], df['volume'])
# 画图
import matplotlib.pyplot as plt
plt.figure(figsize=(12,6))
plt.plot(df.index, df['FI_13'], label='ForceIndex(13)')
plt.axhline(0, color='gray', linestyle='--') # 零轴
plt.legend()
你会发现几个关键点:
- 零轴之上:买方主导,特别是连续红柱时
- 零轴之下:卖方控盘,反弹要谨慎
- 柱体收缩:变盘前兆,去年4月宁德时代大跌前就出现过
四、进阶技巧:和其他指标搭配使用
单独用Force Index可能会被骗线,我的组合拳是:
- MACD确认趋势:FI和MACD同向时才交易
- RSI过滤超买超卖:FI转强但RSI>70时等回调
- 均线定方向:股价在20日均线上方才做多
实战代码片段:
df['MA20'] = df['close'].rolling(20).mean()
df['MACD'] = df['close'].ewm(span=12).mean() - df['close'].ewm(span=26).mean()
buy_signal = (df['FI_13'] > 0) & (df['close'] > df['MA20']) & (df['MACD'].diff() > 0)
五、量化老手的私房参数优化
教科书默认用13日EMA,但A股散户多,我测试发现:
- 短线(5-10天周期):用8日EMA反应更快
- 趋势行情:21日EMA过滤噪音更有效
- 配合成交量加权:
volume_adj = volume / volume.rolling(50).mean()
回测结果显示,优化后的参数在2023年创业板指上能多抓15%收益。
六、开户用户专属福利
看到这里的肯定是真爱粉了,如果你:
- 想直接获取我整理好的Force Index策略源码
- 需要低延迟的Level2行情接口(主力资金数据配合FI效果炸裂)
- 想要免五佣金的量化专用账户
欢迎私信我开户(备注“Python量化”),额外赠送:
- 独家《量价结合策略手册》PDF
- 每日主力资金监控表
- 新用户赠送10次AI选股额度
最后提醒:任何指标都有局限性,建议先用模拟盘测试。下次我会分享如何用Force Index识别主力洗盘,关注我不迷路。
(免责声明:以上策略回测收益不代表未来表现,市场有风险,投资需谨慎)