3. 策略定义与规则设计

行业均值回归轮动策略的核心思想并不复杂:在若干个具备长期经济逻辑的行业之间,利用行业相对强弱偏离其自身历史中枢的程度,做“低配过热、超配过冷”的轮动。但要把这个思想变成可回测、可执行、可复盘的规则,必须把四件事说清楚——选哪些行业、用什么信号度量偏离、什么时候触发调仓、调仓后持有多久与如何分配权重。本节围绕这四项逐一展开,并给出可直接落地的参数示例。

一、行业选择范围:先划定“可比、可交易、可轮动”的池子

行业池不是越多越好。均值回归成立的前提是行业之间存在可比的周期性与共同的驱动因素,同时每个行业都要有足够的流动性与可投资标的。实践中建议采用“一级行业为主、剔除结构性衰退与高相关冗余”的原则。

以A股为例,可选用申万一级行业或中信一级行业作为基础池,先做三步筛选:第一,剔除长期趋势性萎缩、均值本身持续下移的行业(如部分传统产能行业),因为均值回归假设“中枢稳定”,中枢漂移会破坏信号;第二,剔除与已有行业相关性过高(例如近三年日收益相关系数大于0.85)的冗余行业,避免同一风险被重复暴露;第三,要求行业指数成分股数量与日均成交额达到门槛,保证调仓冲击成本可控。经筛选后保留约12~18个行业较为合适,既能分散,又不至于信号被噪声淹没。

需要强调的是,行业池应定期复核但低频调整,例如每年末复核一次,避免因短期表现频繁换池造成“事后挑选”偏差。池子一旦确定,回测期内应尽量固定,这是策略可信度的基础。

二、均值回归信号构建:把“偏离”变成可计算的数值

信号构建的关键是定义“相对谁偏离、偏离多少、偏离是否显著”。推荐使用行业相对基准的累计相对强弱曲线作为基础序列,而非直接用行业绝对价格。具体做法是:以行业指数日收益率减去基准(如沪深300或全行业等权指数)日收益率,得到相对收益序列,再累乘得到相对强弱净值曲线 RSi,t。这样处理可以剥离市场整体涨跌,使信号只反映行业自身的相对强弱。

在此基础上计算两个核心量:其一是滚动Z分数,用过去N个交易日(示例取N=120)的RS均值与标准差,计算 Zi,t = (RSi,t − meanN) / stdN;其二是偏离持续时间,统计RS连续位于均值同一侧的交易日数。Z分数刻画“偏离幅度”,持续时间刻画“偏离韧性”,二者结合可过滤掉单日噪声造成的假信号。

为便于理解,下面给出一个简化的信号计算示例(示例参数,非实测结果):

# 示例:单行业相对强弱Z分数(伪代码,参数为教学假设)
rel_ret   = industry_ret - benchmark_ret      # 日相对收益
rs        = (1 + rel_ret).cumprod()           # 相对强弱净值
mean_120  = rs.rolling(120).mean()
std_120   = rs.rolling(120).std()
z_score   = (rs - mean_120) / std_120         # 偏离幅度
# 触发阈值示例:|z| >= 1.5 且 同侧持续 >= 5 日

阈值设定上,Z分数绝对值过小(如0.8)会导致信号频繁、换手过高;过大(如2.5)则信号稀少、错过修复窗口。示例可采用入场阈值1.5、极端阈值2.0的分层设计:Z ≤ −1.5视为“超跌候选”,Z ≥ +1.5视为“超涨候选”,而|Z| ≥ 2.0作为加强信号,用于在多个候选中排序。

三、轮动触发条件与持仓调整规则

触发条件应同时包含“信号条件”和“执行约束”,否则规则无法落地。信号条件方面,建议采用定期评估 + 条件触发的混合机制:每5个交易日评估一次全部行业,只有当候选行业的|Z|达到阈值且持续时间达标时才进入调仓流程;若当期无行业满足条件,则维持现有持仓不动,避免无谓换手。

持仓调整规则需要明确三件事:买什么、买多少、卖什么。买入端,从满足Z ≤ −1.5的行业中按Z分数由低到高排序,选取前K个(示例K=3)作为超配对象;卖出端,对持仓中Z已回升至0附近(示例|Z| ≤ 0.3)或持有期超过上限(示例60个交易日)的行业执行退出,前者对应“均值已修复”,后者对应“信号失效止损时间”。权重分配可采用等权或按偏离程度加权,示例采用等权,单行业上限40%,以控制集中度。

为清晰呈现从信号到调仓的完整判断链路,下图给出该策略的规则结构:

行业池(12~18个一级行业) 剔除中枢漂移 · 相关性冗余 · 流动性不足 均值回归信号构建 相对收益 → 相对强弱RS → 滚动Z分数(N=120) 叠加“同侧持续≥5日”过滤单日噪声 超跌候选(买入侧) Z ≤ −1.5 且持续达标 按Z由低到高排序取前K=3 超涨候选(卖出侧) Z ≥ +1.5 或持仓Z回升至|Z|≤0.3 或持有期超过60个交易日 持仓调整(每5个交易日评估) 等权分配 · 单行业上限40% · 无信号则维持不动 先卖后买,控制换手与冲击成本 执行约束:行业池年度复核 · 阈值分层(1.5/2.0)· 持有期上限60日 回测期内行业池固定,避免事后挑选偏差

上图把“池子—信号—买卖候选—调仓执行—约束”串成一条完整规则链,其中每个节点都对应正文中的具体参数。需要提醒的是,先卖后买的顺序在实盘中很重要:它保证资金先释放再配置,避免因同时下单造成临时资金不足或权重超限。

四、规则落地时的几个易错点

第一,均值窗口与持有期要匹配。若用120日窗口度量偏离,却只持有10日,信号尚未修复就被迫换仓,策略会退化为高频噪声交易。示例中持有期上限60日、评估周期5日,是与120日窗口相对协调的设置。第二,阈值不能只调一个。入场阈值、退出阈值、极端阈值应成组设定,单独放宽入场阈值会显著抬高换手。第三,要预留“无信号”状态。很多回测把每期都强制满仓轮动,忽略了现实中可能没有行业满足条件,这会高估策略活跃度。第四,权重上限与行业数量要联动,K=3且单行业上限40%时,实际最大暴露受限于候选数量,需在回测中检查是否出现权重无法分配的情况。

把上述规则写成一份可执行的参数表,便于回测与实盘对照:

规则项示例参数作用
行业池规模12~18个一级行业兼顾分散与信号纯度
均值窗口N120个交易日定义偏离中枢
入场阈值Z ≤ −1.5识别超跌候选
极端阈值|Z| ≥ 2.0候选排序加强
退出阈值|Z| ≤ 0.3均值修复离场
评估周期5个交易日控制换手频率
持仓数量K3集中度与分散平衡
单行业上限40%防单一行业风险
持有期上限60个交易日信号失效止损
上述参数均为教学示例与合理假设,用于说明规则设计方法,不代表任何实测收益或最优参数。实际使用前应通过样本外回测与敏感性分析验证,并关注交易成本、涨跌停与停牌等执行细节对结果的影响。

规则设计的完成标志,不是参数填满,而是每一条买卖动作都能被追溯到明确的信号条件与约束条件。当你能对任意一个调仓日回答“为什么买它、为什么卖它、为什么是这个权重”,这套策略定义才算真正闭环,也才具备进入回测验证阶段的基础。