4. 动量指标选择与计算规则

动量轮动策略的成败,很大程度上取决于“动量”这个核心变量如何被定义和计算。同样是“过去一段时间涨得好”,用绝对收益、相对强弱还是风险调整后收益来衡量,选出的行业可能截然不同。本节聚焦指标选择与计算规则,把“用什么算、算多长、多久算一次、数据怎么清洗”这四个问题讲清楚,为后续排序与调仓打下可复现的基础。

三类动量指标的本质差异

绝对动量衡量的是资产自身在一段时间内的累计收益,最常用的形式是区间收益率:

R_abs = P_t / P_{t-N} - 1

其中 P_t 为当期收盘价(或复权净值),N 为回看窗口长度。绝对动量的优点是直观、计算简单、对数据要求低;缺点是它把上涨和下跌的幅度一视同仁,一个波动剧烈、靠单次暴涨拉高收益的行业,会与一个稳步上行的行业得到相同甚至更高的分数。

相对动量衡量的是资产相对于基准(如沪深300或全市场等权指数)的超额表现,常见形式为区间收益之差或相对强弱比值:

R_rel = R_i - R_bench   或   RS = (1+R_i) / (1+R_bench)

相对动量剔除了市场整体涨跌的影响,更适合判断“谁在领涨”,在普涨行情中不会因为所有行业都为正而失去区分度。但它对基准的选择敏感,基准换一个,排序可能就变。

风险调整动量则把收益与承担的风险联系起来,典型做法是用区间收益除以同期波动率,或采用夏普式的比值:

R_adj = R_abs / σ_ann,  σ_ann = std(日收益率) × √252

它惩罚高波动行业,倾向于选出“涨得稳”的品种。代价是对窗口内波动率的估计较敏感,样本较短时噪声大,且会系统性压低高弹性行业的排名。

三类指标没有绝对优劣:绝对动量适合快速粗筛,相对动量适合市场内部比较,风险调整动量适合控制回撤。实务中常以相对动量为主排序、风险调整动量作辅助过滤,或对二者做加权合成。

计算窗口与频率的设计

窗口长度直接决定策略的“性格”。短窗口(如20日)反应快、换手高、易受噪声和短期反转影响;长窗口(如120日、250日)更稳定但滞后明显,容易在趋势反转时“高位站岗”。一个常见且稳健的做法是采用多窗口合成,例如将20日、60日、120日收益率分别标准化后等权相加,兼顾短期动能与中期趋势。为避免单点价格造成的偶然性,还可用“跳过最近5日”的窗口(即计算 P_{t-5}/P_{t-N-5}-1),规避短期反转效应。

计算频率方面,日频计算、周频或月频调仓是主流组合。日频计算保证信号及时,但若每日调仓,交易成本会吞噬大部分超额收益。建议日频计算信号、按固定周期(如每周最后一个交易日或每月末)执行调仓,并在两次调仓之间设置缓冲带,减少边界抖动带来的无效换手。

数据预处理规则

动量对数据质量极为敏感,预处理必须在计算之前完成,且规则要固定下来、全程一致:

  • 复权处理:必须使用后复权或前复权价格序列,避免分红除权造成的价格跳空被误判为下跌。同一策略内复权方式保持一致。
  • 缺失值:停牌、新股上市不足窗口长度时,该行业当期不参与排序,而非用0填充;若某行业连续缺失超过阈值(如10个交易日),应标记为不可选。
  • 异常值:对单日涨跌幅超过合理范围(如±20%)的记录核查是否为数据错误,确认错误则以前一有效值或行业指数替代,并记录处理日志。
  • 对齐:所有行业与基准的交易日历必须对齐到同一交易日序列,避免因交易日错位导致窗口错配。

下面这张图把“原始行情→预处理→三类指标计算→合成排序信号”的完整数据流与关键参数集中呈现,便于对照实现:

动量指标计算数据流与参数规则 原始行情数据 行业指数日收盘价 基准指数日收盘价 数据预处理 后复权 · 日历对齐 缺失不填0 · 异常核查 新股不足窗口则剔除 绝对动量 R = P_t / P_{t-N} − 1 窗口:20 / 60 / 120日 相对动量 R_i − R_bench 基准:沪深300 风险调整动量 R_abs / σ_ann σ = std(日收益)×√252 标准化与合成 各窗口Z-score 等权或加权求和 输出综合动量分 排序与信号 日频计算 · 周/月调仓 缓冲带减少换手 关键规则约定 ① 所有价格使用后复权序列,行业与基准交易日历对齐;② 缺失值不参与排序,连续缺失超10日标记不可选; ③ 多窗口合成前先做横截面Z-score标准化,消除量纲差异;④ 日频计算信号,按周/月末执行调仓,设缓冲带; ⑤ 风险调整动量的波动率用日收益年化,样本不足60日不启用该指标。

一个可复现的计算示例

假设某行业指数后复权收盘价在T日、T-20日、T-60日分别为1.25、1.18、1.10,基准同期收益为3%。则:

  • 20日绝对动量 = 1.25/1.18 − 1 ≈ 5.93%;60日绝对动量 = 1.25/1.10 − 1 ≈ 13.64%。
  • 20日相对动量 = 5.93% − 3% = 2.93%。
  • 若该行业近20日日收益率标准差为1.4%,年化波动率 ≈ 1.4%×√252 ≈ 22.2%,风险调整动量 ≈ 5.93%/22.2% ≈ 0.267。

把全部行业按同一规则算出三个指标后,先各自做横截面Z-score标准化,再按“相对动量0.5 + 风险调整动量0.3 + 绝对动量0.2”加权得到综合分。这样既保留了相对强弱的区分度,又对高波动行业施加了适度惩罚。权重不是拍脑袋定的,应通过历史回测比较不同权重下的年化收益、最大回撤与换手率,选择在样本外仍稳健的一组。

常见陷阱:一是混用前复权与后复权,导致历史窗口收益失真;二是用“当前成分股”回溯历史行业指数,引入幸存者偏差;三是窗口内包含停牌日却按自然日折算,使波动率被低估。这些都会让动量信号在实盘中系统性偏离回测结果。

指标与规则一旦确定,就应固化为可配置的参数表(窗口集合、权重、调仓频率、缺失阈值),并在每次调仓时输出各行业的原始指标值、标准化值与综合排名,便于事后归因。规则的价值不在于复杂,而在于定义清晰、口径统一、可重复执行——这正是动量轮动从想法走向策略的关键一步。