作者:老余捞鱼
原创不易,转载请标明出处及原作者。
写在前面的话:最近发现一个超牛的交易策略:用Python结合CCI和VI指标,既能抓超跌反弹,又能跟趋势吃肉!今天我把代码和实战技巧全公开,从非常匹配A股的数据下载到信号生成手把手教学,还送你3个避开主力陷阱的绝招。
一、为什么说CCI+VI是散户的“躺赚神器”?
金融市场里,主力最擅长用“假突破”和“假摔”割韭菜。但有两个指标,却能看穿他们的套路:
- CCI(顺势指标):专抓价格“过热”和“过冷”区域,提前预警反转;
- VI(涡旋指标):识别趋势方向,避免抄底抄在半山腰。
对比其他指标:
指标 | 擅长领域 | 缺点 | 适合人群 |
---|---|---|---|
MACD | 中长期趋势 | 滞后明显 | 佛系投资者 |
RSI | 超买超卖 | 震荡市失效 | 短线赌徒 |
CCI+VI | 趋势+反转双杀 | 需参数优化 | 想躺赢的你 |
二、手把手教学
本工具使用Python结合CCI(抓超卖反转)和VI(跟趋势)指标,通过AKShare获取A股数据,自动生成买卖信号并可视化,适合量化交易新手快速发现优质标的。以下为核心的三个步骤:
1. 数据获取
专为A股优化:
- 使用AKShare数据源(稳定获取国内数据);
- 自动处理沪市(.SH)/深市(.SZ)代码;
- 采用后复权价格计算(更真实反映收益)。
# 1. 获取A股数据(自动重试机制)
def get_a_stock_data(stock_code="600519", years=3):
"""
获取A股数据(支持沪市.SH/深市.SZ)
示例:
- 贵州茅台: 600519 或 600519.SH
- 宁德时代: 300750 或 300750.SZ
"""
# 统一代码格式
stock_code = stock_code.replace(".SH", "").replace(".SZ", "")
market = "SH" if stock_code.startswith(("6", "9")) else "SZ"
2. 计算CCI指标
CCI窗口可根据实际情况调整,按242个交易日计算年化(A股实际)。
def calculate_cci(data, window=20):
tp = (data['High'] + data['Low'] + data['Close']) / 3 # 典型价格
sma_tp = tp.rolling(window).mean() # 20日均线
mean_dev = (tp - sma_tp).abs().rolling(window).mean() # 平均波动幅度
data['CCI'] = (tp - sma_tp) / (0.015 * mean_dev) # 最终公式
return data
data = calculate_cci(data) # 运行后数据新增CCI列
CCI >100代表市场“发烧”,<-100则是“冰点”。
3. 计算VI指标(趋势追踪利器)
采用了三屏联动可视化(K线+CCI+VI),A股特色红绿配色,三角标记买卖信号及暗黑模式护眼主题。
def calculate_vi(data, window=14):
# 计算正负趋势动量
data['+VM'] = abs(data['High'] - data['Low'].shift(1)) # 上涨动力
data['-VM'] = abs(data['Low'] - data['High'].shift(1)) # 下跌动力
# 计算真实波幅(ATR,防骗线神器)
tr = data[['High','Low','Close']].apply(lambda x: max(x['High']-x['Low'],
abs(x['High']-x['Close'].shift(1)),
abs(x['Low']-x['Close'].shift(1))), axis=1)
# 标准化处理
data['+VI'] = data['+VM'].rolling(window).sum() / tr.rolling(window).sum()
data['-VI'] = data['-VM'].rolling(window).sum() / tr.rolling(window).sum()
return data
data = calculate_vi(data) # 新增+VI和-VI列
关键点:+VI上穿-VI是趋势启动信号,下穿则是撤退警报。
三、3大实战技巧:避开主力陷阱,精准抄底逃顶
- “黄金坑”信号:CCI连续3天<-200,且+VI突然飙升(主力偷偷吸筹);
- “假摔”识别:股价新低但CCI未破前低,闭眼买入;
- “趋势加速”策略:CCI突破100且+VI>0.7,满仓跟进(见图例)。
买卖信号生成代码:
data['买入信号'] = (data['CCI'] < -100) & (data['+VI'] > data['-VI'])
data['卖出信号'] = (data['CCI'] > 100) & (data['+VI'] < data['-VI'])
同时为了增强稳定性,采用了以下方式:
- 自动重试机制(网络不稳定时);
- 异常处理+中文提示;
- 结果自动保存CSV。
四、策略优化:让你的收益再翻倍!
- 参数调优:短线用CCI(14)+VI(10),长线用CCI(30)+VI(20);
- 止损机制:用ATR动态止损,跌破5日均线强制离场;
- 多周期验证:日线信号+周线趋势共振,胜率提升60%。
五、观点总结
一句话总结:CCI抓反转,VI跟趋势,Python代码一键生成买卖点!
5条精华版:
- CCI <-100时别慌,配合+VI飙升就是黄金坑;
- 股价新低但CCI不破前低,闭眼抄底;
- 参数别死磕,根据行情灵活调整;
- 一定要加动态止损,防止黑天鹅!
引用说明
本文代码逻辑参考量化社区EAHub和CCI实战案例,ATR计算借鉴CodeTD波动率分析,策略优化结合和讯网多指标验证方法论。
如需源代码,请 【后台留言】索取。
阅读到最后,希望这篇文章为您带来了新的启发和实用的知识!如果觉得有帮助,请不吝点赞和分享,您的支持是我持续创作的动力。祝您投资顺利,收益长虹!如果对文中内容有任何疑问,欢迎留言,我会尽快回复!
本文内容仅限技术探讨和学习,不构成任何投资建议。