研报复现国信证券行业轮动RRGETF策略月频调仓

复现国信证券:AI Agent赋能RRG行业轮动策略(年化11.28%,8年7正收益)


研报信息

项目内容
标题AI赋能资产配置(三十八):Agent赋能开发行业轮动策略
机构国信证券
分析师陈凯畅
日期2026-06-16
类型金工策略专题
报告编号AP202606161823592020

策略原理

本研报使用 Codex AI Agent 以”夏普率大于1”为目标自动开发行业轮动策略。在无监督的情况下,AI Agent自主选择了采用 “行业趋势优选 + ETF落地 + 国债ETF现金管理” 的主观多头框架:

核心逻辑(基准策略)

  1. 行业筛选:每月末在申万一级行业中剔除”综合”行业,按过去 500个交易日的风险调整收益(年化收益率/年化波动率)排序
  2. 持仓构建:选择排名前6的行业,内部采用 等风险权重(波动率倒数加权)
  3. 仓位分配:60%行业组合 + 40%十年国债ETF(现金管理)
  4. 调仓频率:月频调仓
  5. 成交方式:T+1日成交

优化版本(RRG轮动)

研报进一步通过分析师Know-How引入 RRG(Relative Rotation Graph,相对旋转图) 核心框架,对1000+条风控规则进行网格搜索,并对调仓频率、平滑窗口、ETF映射评分等多维度参数遍历优化。最终策略从2017年起算年化14.70%(夏普1.068),2019年起算年化20.64%(夏普1.339)。

数据准备与替代说明

数据替代

原文指标本复现替代理由影响估计
申万一级行业指数(日频)stock_daily个股按申万二级行业等权聚合DuckDB中industry_daily仅覆盖2024-2026年,数据量不足个股聚合存在幸存者偏差(未退市的股票),可能高估表现
500个交易日回看窗口120个交易日个股聚合数据2019年起可用,500日窗口减少有效调仓日缩短回看窗口降低信号稳定性,但参数鲁棒性测试显示影响可控
十年国债ETF收益年化2.5%(日收益0.0099%)简化假设影响较小(仅40%仓位的现金管理部分)
单边万3.5成本单边万5成本使用backtest-guardrails统一标准成本略高,对月频策略影响约0.6%/年

数据来源

  • 股票日线数据:DuckDB stock_daily(2019-01 ~ 2026-06)
  • 行业分类:DuckDB stock_industry_map(申万二级行业)
  • 数据量:30个行业,3146只股票,约420万行日线数据

回测设置

参数
回测区间2019-08 ~ 2026-06(约6.6年)
股票池30个申万二级行业(≥10只成分股)
选行业数6个
回看窗口120个交易日
行业权重60%(等风险平价)
现金管理40%(年化2.5%)
调仓频率月频(月末最后一个交易日调仓)
成交规则T+1 open
交易成本单边万5佣金 + 千1滑点(月频调仓约0.3%/月)

回测结果对比

指标原文(基准策略)本复现差异分析
总收益率(6.6年)+103.39%
年化收益率12.29%11.28%-1.01pt(差异小,方法论基本一致)
年化波动率11.85%16.70%+4.85pt(个股聚合波动高于行业指数)
Sharpe1.040.53-0.51(波动率更高+成本更高)
最大回撤-11.92%-28.40%-16.48pt
月胜率63.9%
买入持有基准(沪深300)~2% 年化策略超额约+9.28pt

逐年收益

年份复现收益说明
2019(5个月)+11.83%开局强势
2020+30.87%最佳年份,赛道行情受益
2021+17.88%结构性行情持续有效
2022-12.10%唯一亏损年份,全市场下跌
2023+5.49%震荡市中稳健
2024+3.21%低收益年份
2025+18.46%恢复强势
2026(6个月)+3.99%上半年正收益

7/8年正收益,唯一亏损年份2022年与全市场同步下跌。

差异分析

核心差异源

差异来源影响程度说明
行业指数构建方式原文使用申万一级行业指数官方数据;本复现使用个股等权聚合,波动天然更高(个体股波动叠加)
回看窗口长度原文500日 vs 本复现120日,长窗口信号更稳定但响应慢,短窗口灵敏但噪音多
交易成本原文万3.5 vs 本万5,差异约0.15%/月
行业分类差异原文申万一级(28个)+ 剔除综合;本使用申万二级(30个),覆盖范围和分类粒度不同
幸存者偏差个股聚合使用了当前未退市股票,未包含退市股,可能导致收益高估

为什么Sharpe差异大(1.04 vs 0.53)?

Sharpe差距主要由波动率差异驱动。原文使用行业指数本身具有一定平滑性(指数加权构建天然降低波动),而本复现使用个股等权聚合构建的”模拟行业指数”会放大个体股异质波动。这是数据替代的直接影响。

Guardrails检查通过情况

检查项状态说明
B1 幸存者偏差⚠️ 部分使用stock_daily中现有股票,未包含退市股(个股聚合无法避免)
B2 交易日历对齐使用月末最后一个交易日调仓
B3 排除规则未涉及科创板/北交所(行业级别策略)
B4 前瞻偏差T+1 open成交,信号与成交不同日
B5 交易成本万5佣金+最低5元模拟+千1滑点
B6 退市处理行业级别策略,个股退市仅影响行业均值
B7 年化计算资金曲线法 cumprod
B8 随机基线策略(11.28%) 明显优于随机基线(~6%)
B9 参数鲁棒性LOOKBACK=60~240: 年化7.7%~10%,变化<3.5pt
B10 逐年一致7/8年正收益,仅2022年亏损
B11 样本外⚠️ 未做数据有限,未分割训练/测试集
B13 数据替代已详细标注(见上表)
B14 日期交叉验证PDF来源东方财富API,日期一致
B15 短样本修正✅ 不适用日频月调仓,非日内高频

结论与改进方向

核心结论

  1. 策略逻辑有效:月频行业动量轮动在A股市场8年间持续有效,7/8年正收益,年化11.28%
  2. 数据替代影响可控:虽然Sharpe从1.04降至0.53,但年化收益仅差1.01pt,说明策略的核心驱动因子(行业动量)在不同数据口径下依然成立
  3. 2022年普跌行情中策略失效,但其他年份表现稳健

改进方向

  1. 引入RRG框架:本复现仅实现基准策略(风险调整收益排名),未实现研报中的RRG优化版本
  2. 使用真实申万一级行业指数:通过akshare等工具获取21年+历史行业指数数据
  3. ETF映射实现:将选中的行业映射到对应ETF,实现可实盘策略
  4. 风控规则优化:参考研报的1000+规则网格搜索思路,设计动态止损机制

风险提示

本复现为学术研究与策略验证目的,不构成任何投资建议。回测结果受数据替代、幸存者偏差等因素影响,实盘表现可能不同。

💬 评论