行业轮动策略(优化版)
由xiaoshao创建,最终由xiaoshao 被浏览 22 用户
行业轮动策略(优化版)介绍
本策略只做量化投研的学习交流,提供的策略模版存在历史数据失效的可能,不做任何其他建议!
一、策略概览
这是一个基于变盘指数驱动的行业轮动策略,叠加行业内四因子选股,持仓为 每周动态调整的 6 只个股(3 个行业 × 每行业 2 只)。策略的核心思路可以概括为:
先用一个衡量"市场风格是否稳定"的指数,判断当下该用动量还是反转逻辑挑行业; 再在选出的强势行业内部,用"短期反转 + 低关注度"的四因子挑出最值得买的个股。
回测区间 2015-01-06 ~ 2026-08-12,标的为 A 股(申万一级行业指数 + 个股),基准为 沪深 300。原始版本(选行业 3 只 × 每行业选股 3 只、行业内等权、不做信号过滤)夏普 0.69、最大回撤 53.46%、年化 21.37%——选股逻辑本身有效,但风险端明显偏松。本文 介绍的优化版在不改变原有选行业 / 选股逻辑的前提下,通过三项独立优化,把夏普 提升到约 1.04,最大回撤压缩到约 23.87%,年化收益基本不变甚至略升。
二、核心逻辑:变盘指数驱动的行业轮动
策略行业层的关键概念是"变盘指数" T,用来衡量行业排名格局的稳定性,思路来自银河 证券研报,分四步构建:
- 月度收益率排名:对每个申万一级行业计算过去 20 个交易日的收益率,做横截面排名。
- 排名迁移幅度:把当前排名与 220 个交易日前的排名比较,取绝对差值,再对所有 行业取横截面均值,得到"整体排名迁移强度"这一时间序列。
- 迁移强度的波动率:对上述迁移强度序列做 220 日滚动标准差,衡量行业格局变化 是否剧烈。
- 平滑:再做 20 日滚动均值,得到最终的变盘指数 T。
变盘指数本身不参与选股排序,真正起作用的是它的变化方向 T' = T.diff():
- T' < 0(变盘指数收敛,行业格局趋于稳定)→ 用 240 日动量因子选行业,强者 恒强。
- T' > 0(变盘指数发散,行业格局趋于混乱)→ 用 60 日反转因子选行业(取负), 强者恒弱、弱者恒强的切换概率更高。
每个自然周的最后一个交易日作为信号日,按当天生效的动量/反转因子取排名前 3 (TOP_IND=3)的行业作为下一周的多头行业池。
三、选股层:行业内四因子复合排名
在选出的行业内部,策略用四个方向一致的因子(全部取"越大越买"的方向,原始意义均 为反转 + 低关注度信号)做复合排名:
| 因子 | 含义 | 方向 |
|---|---|---|
| turn_ratio | 5 日/60 日换手率比值 | 取负,短期关注度降温的股票优先 |
| px_ma20 | 收盘价相对 20 日均线的偏离度 | 取负,超买回归 |
| mom_20 | 20 日动量 | 取负,短期反转 |
| liq_amount | 20 日均成交额 | 取负,低流动性溢价 |
四个因子在行业内分别做百分位排名后取均值,得到复合分,每个行业选出排名最高的 N_PER_IND=2 只个股,叠加成交额门槛(日均成交额 > 2000 万元)、上市天数 > 252 天、非 ST、非停牌等基础过滤。
为降低不必要的换手,策略还引入了持仓缓冲机制:老持仓只要仍在行业内前 N_PER_IND × BUF_MULT = 6 名以内就继续保留,只有跌出该范围才被替换。这项设计把 周均换手从 0.64 降到 0.48,年化收益提升约 9 个百分点。
四、三项风险端优化
原始策略的问题不在"选谁",而在"何时买、买多少、买了多少个"——三项优化都是针对 这一点,且相互独立、均已用真实回测验证:
1. 提高持仓集中度 每行业选股数从 3 只降到 2 只(选行业数不变,仍是 3 个行业),总持仓从 9 只压缩到 6 只。四因子复合分排名越靠后的股票平均质量越低,减少每行业选股数相当于变相提高 入选门槛,把资金集中在信号更强的个股上。
2. 信号稳定性过滤(效果最大的一项) 这是本次优化中贡献最大的部分。经过实测发现:变盘指数驱动的行业轮动存在明显的 "伪信号"现象——只要本周入选的 3 个行业相较上周发生任何变动(哪怕只换 1 个), 下一周这些行业的远期收益会显著走弱。据此,策略只有在本周所选行业与上周完全 一致时才维持满仓;一旦发生任何轮换,就直接空仓一周,等信号重新稳定后再入场。 回测期内该规则触发空仓 380/595 周,占比约 63.9%——这是一个高频过滤、宁可少赚 不确定行情、也要规避伪信号损耗的设计。
3. 个股内部风险平价 行业内选出的股票不再简单等权,而是按 20 日波动率倒数分配权重,高波动个股获得 更低的仓位。行业之间仍保持等权,只是把行业内部的权重结构从"平均分配"改成 "风险平价",从源头降低单一高波动个股对组合整体波动的贡献。
值得一提的是,诊断过程中也验证并排除了两类看起来合理但实际会拖累夏普的方案: 用沪深 300 200 日均线做趋势过滤,或用行业波动率做仓位目标化。原因是这是一个 "反转 + 低关注度"选股策略,不是跟随大盘贝塔的策略——实测本策略在沪深 300 熊市期 反而收益更高(熊市周均收益 0.42% 明显高于牛市周均收益 0.19%),用大盘趋势或波动 率去降仓,降的恰恰是策略最能赚钱的时期,结果夏普不升反降。
五、回测表现
| 指标 | 原始版本 | 优化版 |
|---|---|---|
| 夏普比率 | 0.69 | 1.04 |
| 最大回撤 | 53.46% | 23.87% |
| 年化收益 | 21.37% | 21.71% |
| 累计收益 | — | 801.23% |
| 基准(沪深300)累计收益 | — | 28.83% |
| Beta | — | 0.25 |
| Alpha | — | 0.20 |
| 信息比率 IR | — | 0.72 |
| 胜率 | — | 62.81% |
| 盈亏比 | — | 1.06 |
| 年化波动率 | — | 17.62% |
三层优化叠加后,在样本内 2015-01~2026-08 及两次样本分段回测(2015-2020/ 2020-2026、2015-2022/2022-2026)中均一致地把夏普从 0.69 提升到约 1.0,最大回撤 从 53% 降到约 24%,年化收益基本保持不变甚至略有提升,说明优化效果并非过拟合某个 特定区间,而是稳健地改善了策略的风险收益比。
回测参数:初始资金 1000 万元,买入费率 0.03%,卖出费率 0.13%,单笔最低手续费 5 元,不计滑点。
六、策略特点总结
- 双因子体系:行业层用变盘指数做动量/反转风格切换,选股层用四因子复合分做 个股筛选,两层逻辑独立、互不干扰。
- 换手可控:周均换手 0.23,单边年化约 12 倍,叠加信号稳定性过滤后有六成以上 的周直接空仓,交易频率并不激进。
- 逆势特征:策略在大盘熊市期表现反而更好,与传统跟随贝塔的行业轮动策略有本质 区别,不适合用大盘趋势指标去做仓位管理。
- 风险优化优先于收益优化:三项优化均未改变原有的选行业/选股逻辑,只是在何时 持仓、持仓集中度、持仓内部权重结构三个维度上做文章,这也是夏普大幅提升但年化 收益基本不变的原因。
七、风险提示
本文所述策略及回测结果基于历史数据统计规律构建,历史表现不代表未来收益。策略中 的信号稳定性过滤会导致较高比例的空仓周,实盘中可能面临踏空风险;个股层面的换手 和集中持仓也会放大跟踪误差和交易成本敏感度。使用者应结合自身风险承受能力审慎 评估,不构成投资建议。
https://bigquant.com/codesharev3/e2b68404-9f77-4398-add1-1407745ab0e8
\