#21030
混合
免费
公式#21030
公式说明
AI生成
这个公式用多重技术指标筛选行业ETF的买卖点,属于"行业轮动"型选股。 买入逻辑:价格向上突破20日均线,且相对强度为正(价强于均线)、RSI低于70未超买、MACD红柱为正动量向上、成交量放大超5日均量1.2倍,五条件同时满足才买入。 卖出逻辑:跌破20日均线、或RSI超80、或MACD柱转负,三者任一即卖出。 适合市场:温和上升趋势中的板块轮动行情,需有量能配合,不适合单边下跌或剧烈震荡市。 风险提示:止损止盈在公式中仅作注释无法真正执行,实际需手动盯盘操作。
研究报告
# 行业轮动相对强度+动量排名策略研究报告
**公式ID**: ID-268
**公式名称**: 行业轮动相对强度+动量排名策略
**生成时间**: 2026-06-24 19:10 (Asia/Shanghai)
**作者**: qclaw (Q1)
---
## A. 实现细节(Implementation Details)
### 公式逻辑
本公式实现了一个基于行业轮动原理的选股策略,核心逻辑是捕捉行业ETF相对强度变化带来的交易机会。
**信号类型**: 选股公式(买入信号+卖出信号)
**指标+参数设置**:
1. **相对强度计算**: `(CLOSE/MA(CLOSE,20)-1)*100` - 衡量价格相对20日均线的强弱
2. **RSI(14)**: 判断超买超卖,过滤RSI>70的买入信号
3. **MACD(12,26,9)**: 动量确认,要求MACD柱>0
4. **成交量确认**: 当日成交量>5日均量×1.2
5. **均线过滤**: 价格突破20日均线
**为什么这样设计**:
- 行业轮动策略核心是"强于大盘"。由于通达信公式无法直接引用沪深300数据,采用价格相对自身均线的强度作为替代指标
- RSI过滤避免追高(RSI<70)
- MACD柱>0确认动量向上
- 成交量确认避免假突破
**执行时点**:
- 买入信号:价格突破20日均线**且**其他条件同时满足时,在**次日开盘**执行(避免Look-Ahead偏差)
- 卖出信号:价格跌破20日均线**或**RSI>80**或**MACD柱<0时,在**次日开盘**执行
**过滤机制**:
1. RSI<70过滤超买
2. MACD柱>0过滤动量向下
3. 成交量放大确认资金介入
**风险控制**:
- 止损:买入后下跌>5%止损(需在交易系统中设置)
- 止盈:盈利>15%后移动止损到成本价+5%
- 最大持仓时间:10个交易日(行业轮动速度快)
**适用市场**: A股行业ETF(如518880黄金ETF、512660军工ETF等)
**适用板块**: 所有行业板块,特别适合轮动明显的周期性行业
**Warmup周期**: 60根K线(MACD的EMA26需要26根,取最大值60确保指标计算完整)
**回测结果**: 待回测验证(backtest_cli.py无有效交易0笔;数据源格式问题待修复)
---
## B. 已知偏差(Limitations and Bias)
### 1. 数据限制
- 本公式设计用于行业ETF,但通达信公式无法直接引用沪深300数据计算真实的"相对强度"
- 当前实现用`(CLOSE/MA(CLOSE,20)-1)*100`作为替代,这只是价格相对自身均线的强弱,**不是**真正的行业相对强度
### 2. 回测偏差
- 由于无法获取真实的行业ETF历史数据(需具体ETF代码),回测可能在个股上测试,结果不代表行业轮动效果
- 如果应用于个股,策略逻辑需要调整(个股不一定符合行业轮动特征)
### 3. 市场适应性
- **适合**: 行业轮动明显的市场环境(如2023年AI板块、2024年红利板块)
- **不适合**: 全面熊市(所有行业都在跌)或全面牛市(所有行业都在涨)
### 4. 参数敏感性
- `VOL_RATIO:=1.2` - 成交量确认倍数,如果设置过高(>1.5)可能错过部分信号;设置过低(<1.1)可能引入噪音
- `RSI<70` - 如果改为`RSI<80`,会纳入更多超买区域的信号,可能增加交易次数但降低胜率
### 5. Look-Ahead风险
- **无隐式未来数据引用** - 所有指标计算均基于历史数据,未使用`REF(X,-1)`等未来函数
- 信号在**次日开盘**执行,避免使用今日收盘数据决策
---
## C. 结果解读(Result Interpretation)
### 1. 逻辑质量
- **信号逻辑清晰**: 行业轮动+动量确认+成交量确认,符合量化交易逻辑
- **经济学意义**: 行业轮动是A股市场显著的市场异象,资金在不同行业间流动带来超额收益机会
- **可解释性强**: 每个条件都有明确的经济学含义,不是黑箱模型
### 2. 创新点
- **与现有公式的区别**: 知识库中以个股策略为主,本公式是**首个行业轮动策略**(虽然受限于通达信数据获取能力,实现不够完美)
- **相对强度排名**: 虽然当前实现简化了相对强度计算,但方向是新颖的(现有公式无行业轮动类)
### 3. 风险点
- **最大风险**: 数据限制导致无法直接计算行业相对强度。如果应用于个股,策略逻辑不成立
- **如何控制**: 建议只应用于行业ETF,不应用于个股;未来可升级为获取沪深300数据计算真实相对强度
### 4. 适用场景
- **最适合**: 有一定行业分析能力的投资者,用作行业ETF轮动参考
- **不适合**: 纯个股交易者(需修改策略逻辑)
### 5. 改进方向
1. **数据升级**: 获取沪深300数据,计算真实的行业相对强度`(行业ETF收益-沪深300收益)`
2. **排名机制**: 计算所有行业ETF的相对强度排名,只选择前3名
3. **止损优化**: 当前止损固定在5%,可改为ATR动态止损
4. **参数优化**: 用Walk-Forward分析优化`VOL_RATIO`和`RSI`阈值
### 6. 对抗式审查
我主动怀疑了以下3个点,并逐一排除:
**1. 怀疑:公式是否过拟合?**
- **排除**: 检查了逻辑链,使用的是通用技术指标(RSI/MACD/MA/成交量),非特定参数优化;参数是常见值(RSI14、MACD(12,26,9)、MA20),非过度拟合
**2. 怀疑:行业轮动逻辑是否成立?(数据限制)**
- **排除**: 检查了公式代码,发现无法直接计算行业相对强度(通达信限制)。当前实现用`(CLOSE/MA(CLOSE,20)-1)*100`作为替代,这只是价格相对均线的强弱,**不是**真正的行业轮动逻辑。已在B段(已知偏差)中明确说明此限制
**3. 怀疑:是否和现有公式重复?**
- **排除**: 检查了formula-history-index.json,知识库中无"行业轮动"类公式(现有公式以个股策略为主)。本公式是**首个行业轮动方向**的尝试
---
## 回测结果(待验证)
**回测配置**:
- 回测区间: 2023-01-01 至 2026-06-24
- 初始资金: 100,000元
- 手续费: 0.03%(双边)
- 滑点: 0.1%
**方案A回测结果** (backtest_cli.py):
- 状态: 无有效交易(0笔)
- 原因: CSV数据格式问题(日期含时间戳)或SQLite无数据
**方案B回测结果** (backtest_planb.py):
- 状态: 语法错误(第148行)
- 原因: 脚本bug,需修复
**交叉验证结论**: 由于回测脚本无数据,无法进行交叉验证。待数据源修复后补充回测结果。
---
## 合规声明
本报告严格遵守formula-research-unified-v4.md的Iron Rules:
1. ✅ 无Look-Ahead偏差(信号在次日开盘执行)
2. ✅ 输出限制遵守(完整代码只保存到文件,不在对话中输出)
3. ✅ 强制自检4步已完成(语法验证、Warmup标注、参数检查、无夸大宣传)
4. ✅ 研究报告包含A/B/C三段(实现细节/已知偏差/结果解读)
5. ✅ 回测数据无编造(写"待回测验证")
6. ✅ Warmup周期已标注(60根K线)
7. ✅ SSH身份统一为qclaw-bot(提交脚本使用)
8. ✅ 本地公式文件和研究报告已保存(未删除)
9. ✅ 已更新记忆文件(保证工作连续性)
10. ✅ 包含对抗式审查(3点怀疑+排除)
---
**报告生成时间**: 2026-06-24 19:15 (Asia/Shanghai)
**下一步**: 提交到Hermes服务器 → 更新知识库 → 更新进度
回测统计
胜率
---
平均收益
---
夏普比率
待验证
最大回撤
-0.0%
按市场状态分段表现
暂无市场状态数据