4. 动量因子入门
在价值、质量、低波等因子之外,动量因子是量化投资中使用最广泛、也最容易被误解的一类因子。它的核心思想非常朴素:过去表现较强的资产,在未来一段时间内往往仍有较大概率延续相对强势;过去表现较弱的资产,也容易继续落后。但真正把动量因子做成可复现、可交易、可解释的信号,需要先厘清定义、分类与背后的经济逻辑。
一、动量因子的定义:从“收益率排序”开始
动量因子最基础的定义,是把资产在某个“形成期”内的累计收益作为打分依据,再在横截面上排序。形成期通常记为 lookback,持有期记为 holding。例如,用过去 12 个月收益率(剔除最近 1 个月)排序,买入前 20%、卖出后 20%,每月调仓,这就是经典的 12-1 动量。
用公式表达,个股 i 在 t 时刻的动量得分可以写成:
mom_i,t = P_i,t-1 / P_i,t-1-lookback - 1
其中:
P_i,t-1 表示剔除最近一个月后的价格
lookback 形成期长度,如 12 个月、6 个月
mom_i,t 动量因子原始值
这里有两个关键细节。第一,动量不是“涨得多”本身,而是“相对排名靠前”。因子值必须做横截面标准化或排序,才能转化为组合权重。第二,形成期与持有期之间通常要留出间隔,最典型的是剔除最近 1 个月,以规避短期反转效应和买卖价差、流动性冲击带来的偏差。
二、价格动量与基本面动量:两条不同的信号来源
动量因子并不只有价格一条路径。按照信号来源,可以分成价格动量与基本面动量两大类。
| 维度 | 价格动量 | 基本面动量 |
|---|---|---|
| 信号来源 | 历史价格、收益率序列 | 盈利、营收、ROE、分析师预期等 |
| 典型构造 | 12-1 月收益率、52 周高点距离 | 盈利超预期、盈利上调、ROE 环比改善 |
| 数据频率 | 日频、月频,更新快 | 季频、事件驱动,更新慢 |
| 主要风险 | 反转、拥挤、交易成本 | 财报滞后、预期修正不持续 |
| 常见组合 | 与低波、质量因子配合 | 与价值、质量因子配合 |
价格动量的优势是数据干净、覆盖广、可回测性强;缺点是容易在市场拐点遭遇剧烈反转。基本面动量更接近“业绩趋势”,逻辑上更稳健,但数据频率低、披露滞后,且需要处理预期数据中的前视偏差。实务中,很多多因子模型会把两者同时纳入,用价格动量捕捉交易行为,用基本面动量捕捉盈利趋势。
三、动量因子的逻辑:为什么它会存在
动量因子长期存在,主要来自三类解释。
- 行为金融解释:反应不足与反应过度。投资者对新信息往往反应不足,导致价格逐步调整;当信息持续验证时,又可能反应过度,形成趋势延续。动量因子正好捕捉这一过程。
- 风险补偿解释:高动量资产可能承担了更高的宏观风险、流动性风险或拥挤风险,因此需要更高预期收益补偿。
- 微观结构解释:资金流、机构调仓、指数纳入等机制会带来持续买卖压力,使强势资产在短期内继续强势。
但动量也是典型的“脆弱因子”。它在市场剧烈反转、波动率骤升或流动性枯竭时容易失效。因此,动量因子很少单独使用,通常需要与低波、质量、价值等因子配合,形成更稳健的多因子组合。
四、方法流程:从原始价格到可交易信号
一个可复现的动量因子构建流程通常包括以下步骤:
1. 确定股票池与调仓频率
2. 计算形成期累计收益
3. 剔除最近 1 个月,避免短期反转
4. 横截面排序或标准化
5. 分组构建多空组合
6. 加入交易成本、涨跌停、停牌处理
7. 回测与归因分析
下面是一个简化的 Python 示例,展示如何计算 12-1 动量:
import pandas as pd
# 假设 price 为月度收盘价,index 为日期,columns 为股票代码
# 计算 12 个月累计收益
mom_12 = price / price.shift(12) - 1
# 剔除最近 1 个月,得到 12-1 动量
mom_12_1 = mom_12.shift(1)
# 横截面排序,转为分位数
mom_rank = mom_12_1.rank(axis=1, pct=True)
# 选择前 20% 作为多头,后 20% 作为空头
long_signal = mom_rank >= 0.8
short_signal = mom_rank <= 0.2
五、案例场景:动量因子在 A 股的应用差异
在 A 股市场,动量因子的表现与存在明显差异。由于散户占比高、涨跌停制度、壳价值与主题炒作等因素,短期动量容易反转,而中期动量(如 6 至 12 个月)相对更稳定。一个常见做法是:用 12-1 价格动量捕捉中期趋势,同时用盈利上调、ROE 改善等基本面动量做过滤,剔除纯题材驱动、缺乏业绩支撑的强势股。
例如,某组合在 2020 年至 2023 年的回测中,单纯价格动量多空组合年化收益约 8%,但最大回撤超过 25%;加入质量因子(ROE 稳定性)与低波因子后,年化收益降至 6.5%,但最大回撤收窄至 14%。这说明动量因子的价值不在于“收益最高”,而在于与其他因子形成互补。
六、常见误区与复盘
- 误区一:把动量等同于追涨。动量因子是系统化、规则化的横截面排序,不是主观追热点。
- 误区二:忽略交易成本。动量因子换手率通常较高,若不做成本约束,回测收益会被严重高估。
- 误区三:不做行业中性化。动量得分可能集中在少数行业,导致组合行业暴露过大。
- 误区四:用未来数据。财务数据、分析师预期数据必须按公告日对齐,不能按报告期直接使用。
复盘时,建议重点检查三件事:因子覆盖度、分组单调性、多空收益稳定性。如果分组收益不单调,或多空收益主要来自空头,说明因子可能被某些风格暴露主导,需要进一步中性化或与其他因子合成。