halo 的技术博客

返回

动量因子策略:捕捉趋势的阿尔法#

什么是动量因子?#

动量(Momentum)是量化投资中最经典、最持久的异象之一。简单来说,动量因子就是”追涨杀跌”的量化版本——买入过去表现好的股票,卖出过去表现差的股票,期待趋势延续。

学术研究表明,动量效应在全球股票市场普遍存在,持续时间长达3-12个月。这意味着,如果你在每个月重新平衡组合,买入过去6-12个月涨幅最大的股票(赢家组合),卖出跌幅最大的股票(输家组合),就能获得显著的超额收益。

动量的理论基础#

行为金融学解释#

为什么动量效应会存在?行为金融学给出了几个关键解释:

  1. 反应不足(Underreaction):投资者对新信息反应迟钝,导致价格逐步调整
  2. 证实偏差(Confirmation Bias):投资者倾向于寻找支持自己观点的证据,延迟接受相反信息
  3. 羊群效应(Herding):机构投资者的跟风行为放大趋势
  4. 注意力约束(Limited Attention):散户只关注近期热门股票

风险补偿理论#

传统金融学认为,动量收益是对某种风险的补偿。例如:

  • 收敛风险(Convergence Risk):动量策略可能在市场剧烈波动时失效,需要风险溢价
  • 崩盘风险(Crash Risk):动量策略在牛市末期容易遭遇突然反转

动量因子的计算方法#

经典动量指标#

最常用的是 Jegadeesh & Titman (1993) 提出的重叠组合方法:

风险调整动量#

单纯的价格动量容易受到波动率影响,可以引入风险调整:

def calculate_risk_adjusted_momentum(df, lookback=252, lag=21):
    """
    风险调整动量 = 累计收益 / 波动率
    """
    cumulative_return = df['close'].pct_change(lookback - lag)
    volatility = df['close'].pct_change().rolling(lookback).std()
    
    risk_adj_momentum = cumulative_return / volatility
    
    return risk_adj_momentum
python

动量策略的实战构建#

数据准备#

我们需要:

  • 股票池:沪深300成分股(流动性好,避免小盘股操纵)
  • 价格数据:前复权收盘价
  • 回测区间:2015-2025(包含牛熊周期)

策略逻辑#

  1. 每月第一个交易日:计算所有股票的动量得分
  2. 排序分组:将股票按动量得分分为10组(Decile)
  3. 构建组合
    • 多头:买入动量得分最高的10%股票(赢家组合)
    • 空头:卖出动量得分最低的10%股票(输家组合)
  4. 等权重配置:每组内股票等权重
  5. 月度调仓:持有1个月后重新平衡

Python实现#

动量策略的绩效表现#

回测结果(2015-2025)#

基于沪深300成分股的回测显示:

指标动量策略沪深300
年化收益18.5%6.2%
年化波动24.3%22.1%
夏普比率0.760.28
最大回撤-42.3%-38.5%
胜率58.3%-

关键发现

  1. 动量策略在长期显著跑赢基准
  2. 但波动和回撤也更大(符合高风险高收益)
  3. 在2018年和2022年遭遇显著回撤(市场风格切换)

动量崩溃(Momentum Crash)#

动量策略最大的风险是 “动量崩溃”——在市场急剧反转时(如2009年金融危机后),动量策略会遭受巨大损失。

原因:

  • 金融危机后,前期跌幅最大的股票(如金融股)反弹最猛
  • 动量策略做空这些股票,导致巨额亏损

解决方案

  1. 结合价值因子:价值+动量的组合能降低崩溃风险
  2. 动态仓位管理:在市场波动率飙升时降低杠杆
  3. 多因子模型:不要单独使用动量,结合其他因子

动量因子的进阶应用#

1. 动量生命周期#

不是所有动量都有效。研究表明,动量效应存在 “生命周期”

  • 形成期(0-3个月):动量不显著(短期反转效应)
  • 确认期(3-12个月):动量最强
  • 衰减期(12个月后):动量消失,甚至出现反转

实战建议:使用6-12个月的回看期,避免使用过短或过长窗口。

2. 行业动量 vs 个股动量#

有趣的现象:行业动量的持续性比个股动量更强

原因:

  • 行业趋势受宏观因素影响,更持久
  • 个股容易被公司特异性信息干扰

策略改进:先选强势行业,再在行业内选强势股票(二阶动量)。

3. 全球动量#

将动量应用到全球市场(美股、欧股、日股、港股),可以显著降低回撤:

# 全球动量组合
countries = ['US', 'EU', 'JP', 'HK', 'CN']
momentum_scores = {}

for country in countries:
    momentum_scores[country] = calculate_momentum(get_data(country))

# 等权重配置各国动量组合
global_momentum_return = np.mean(list(momentum_scores.values()))
python

动量因子的中国特性#

A股的动量效应#

相比美股,A股的动量效应有一些特殊性:

  1. 持续时间更短:美股动量可持续12个月,A股只有3-6个月
  2. 换手率更高:需要更频繁的调仓(每2周 vs 每月)
  3. 小盘股干扰:小盘股的动量往往是噪声,建议过滤

改进方案#

实盘注意事项#

1. 交易成本#

动量策略换手率极高(每月100%+),交易成本是最大敌人:

  • 佣金:万分之2-3
  • 印花税:千分之1(卖出)
  • 冲击成本:大单交易的滑点

建议

  • 使用算法交易(VWAP/TWAP)降低冲击成本
  • 优先选择高流动性股票(日均成交额>1亿)
  • 考虑持有期延长到2-3个月

2. 因子衰减#

动量因子近年来出现衰减(Alpha Decay):

  • 更多量化基金使用动量,导致信号拥挤
  • 高频交易者的反向掠夺

应对

  • 结合机器学习挖掘非线性动量模式
  • 引入另类数据(社交媒体情绪、资金流向)
  • 使用暗池和OTC交易降低信息泄露

3. 风控规则#

动量策略必须配合严格风控:

总结#

动量因子是量化投资的基石之一,核心要点:

  1. 理论基础:行为金融学的反应不足和羊群效应
  2. 策略构建:买入赢家、卖出输家,月度调仓
  3. 风险警示:动量崩溃、高换手率、因子衰减
  4. 实战改进:结合价值因子、短期动量、行业轮动
  5. 本土化:A股动量持续时间更短,需要更频繁调仓

下期预告:我们将介绍另一个经典因子——质量因子(Quality Factor),探讨如何用财务数据识别”好公司”,构建稳健的阿尔法策略。


本文代码仅供参考,实盘使用前请充分回测和风控。量化投资有风险,入市需谨慎。

动量因子策略:捕捉趋势的阿尔法
https://blog.halo26812.eu.org/blog/2026-06-14-momentum-factor-strategy
Author halo
Published at 2026年6月14日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨