板块轮动策略
策略概述
板块轮动策略基于 CPLC 旋转指标(Cycle Price Location & Cycle),通过多周期 EMA 指数移动平均线的交叉关系,判断板块的轮动时机和趋势方向,指导资金在不同板块间的配置切换。
核心代码位于 E:\钱龙\py\量化策略\板块轮动.py,主函数为 calc_CPLC。
策略原理
CPLC 旋转指标
CPLC 指标的核心思想是通过短期 EMA 与长期 EMA 的交叉关系,判断价格所处的趋势阶段。
1. 计算 DI 值(中间价)
di = (H + L + C * 2) / 4.0
将最高价(H)、最低价(L)和两倍收盘价(C)加权平均,得到一个综合价格 DI,用于平滑价格波动。
2. 计算 EMA 平滑系数
kA = 2.0 / (short_period + 1) # 短期 EMA 系数
kB = 2.0 / (long_period + 1) # 长期 EMA 系数
k = 2.0 / (signal_period + 1) # 信号线 EMA 系数
3. 计算短期与长期 EMA
A[i] = di[i] * kA + A[i-1] * (1 - kA) # 短期 EMA(快线)
B[i] = di[i] * kB + B[i-1] * (1 - kB) # 长期 EMA(慢线)
4. 生成旋转信号
rotationMore:当短期 EMA 上穿长期 EMA 时产生买入信号
rotationNull:当短期 EMA 下穿长期 EMA 时产生卖出信号
核心参数
| 参数 | 默认值 | 说明 |
price_times | 0 | 价格缩放系数,0 表示不缩放 |
short_period | 5 | 短期 EMA 周期(快线) |
long_period | 53 | 长期 EMA 周期(慢线) |
signal_period | 6 | 信号线 EMA 周期 |
信号生成逻辑
短期 EMA (快线) > 长期 EMA (慢线) → 板块走强,rotationMore 信号
短期 EMA (快线) < 长期 EMA (慢线) → 板块走弱,rotationNull 信号
买入信号
- 短期 EMA 从下方上穿长期 EMA
- 表示板块进入上升趋势
- 适合加仓或切换资金进入该板块
卖出信号
- 短期 EMA 从上方下穿长期 EMA
- 表示板块进入下降趋势
- 适合减仓或将资金切换至其他板块
策略特点
- 趋势追踪:通过 EMA 交叉捕捉板块趋势变化
- 参数可调:可调整长短周期参数适应不同市场节奏
- 板块轮动:适合多板块间的资金配置切换
- 多语言实现:Python / C / C++ / Dart 多版本
相关文件清单
Python 实现
| 文件 | 路径 | 说明 |
板块轮动.py | E:\钱龙\py\量化策略\板块轮动.py | Python 主算法实现 |
板块轮动 copy.py | E:\钱龙\py\量化策略\板块轮动 copy.py | 备份版本 |
C / C++ 实现
| 文件 | 路径 | 说明 |
板块轮动.c | E:\钱龙\py\量化策略\板块轮动.c | C 语言实现 |
板块轮动.c++ | E:\钱龙\py\量化策略\板块轮动.c++ | C++ 实现 |
Dart 手机版
| 文件 | 路径 | 说明 |
手机板块轮动indicatorcplcutils.dart | E:\钱龙\py\量化策略\手机板块轮动indicatorcplcutils.dart | 手机端 Dart 实现 |
辅助文件
| 文件 | 路径 | 说明 |
统计.py | E:\钱龙\py\量化策略\统计.py | 策略统计工具 |
策略统计.xlsx | E:\钱龙\py\量化策略\策略统计.xlsx | 策略统计结果 |