4. 动量因子基础:动量策略的定义、逻辑与经典文献回顾(Jegadeesh & Titman)

动量因子,说白了就是「追涨杀跌」的学术版。听起来有点俗气对吧?但别急着笑,这玩意儿在量化金融里可是拿过诺贝尔奖级别的待遇。我刚开始做策略研究那会儿,第一个实盘跑通的策略就是动量策略,虽然赚得不多,但那种「市场确实有规律可循」的感觉,至今难忘。

4.1 动量策略的核心定义

动量策略的逻辑其实特别简单:过去涨得好的股票,未来一段时间还会继续涨;过去跌得惨的股票,未来还会继续跌。你想想看,这不就是趋势的延续吗?

具体操作上,我们通常这样做:

  • 排序期(Formation Period):比如过去6个月,计算每只股票的累计收益率
  • 分组:按收益率从高到低排序,买入前10%(赢家组合),卖出后10%(输家组合)
  • 持有期(Holding Period):持有这个多空组合一段时间,比如6个月

嗯,这里要注意:排序期和持有期可以灵活调整。我见过有人用3个月排序+3个月持有,也有人用12个月排序+1个月持有。没有标准答案,全看你的数据特征。

4.2 经典文献回顾:Jegadeesh & Titman (1993)

说到动量因子,绕不开这篇神作。1993年,Jegadeesh和Titman在《Journal of Finance》上发表了那篇著名的论文——"Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency"

他们做了什么?简单说:

  • 用美国股市1965-1989年的数据
  • 测试了各种排序期和持有期的组合(3、6、9、12个月)
  • 发现6个月排序+6个月持有这个组合效果最好

核心发现:买入过去6个月的赢家组合,卖出过去6个月的输家组合,持有6个月,平均每月能获得约1%的超额收益。而且这个收益在统计上极其显著,t值高得吓人。

为什么会这样?Jegadeesh和Titman给出了两个解释:

  1. 价格反应不足:市场对新信息的消化需要时间,不是一步到位的
  2. 趋势延续:投资者的跟风行为会强化已有的趋势

我个人习惯把这种现象叫做「市场的惯性」。就像你推一个重物,刚开始推不动,但一旦动起来,它就会沿着原来的方向滑一段。市场也是这个道理。

4.3 动量策略的数学表达

咱们用公式来定义一下动量因子。假设在时刻 \( t \),我们要构建动量因子 \( MOM_t \):

# 动量因子计算伪代码
def compute_momentum_factor(prices, formation_period=126, holding_period=126):
    """
    prices: 股票日度价格矩阵 (T x N)
    formation_period: 排序期天数(默认126个交易日 ≈ 6个月)
    holding_period: 持有期天数(默认126个交易日)
    """
    # 1. 计算排序期累计收益率
    returns = prices[-formation_period:] / prices[-formation_period-1] - 1
    
    # 2. 按收益率排序,取前10%和后10%
    top_decile = np.argsort(returns, axis=1)[:, -int(N*0.1):]
    bottom_decile = np.argsort(returns, axis=1)[:, :int(N*0.1)]
    
    # 3. 构建多空组合
    momentum_factor = (top_decile.mean() - bottom_decile.mean()) / 2
    
    return momentum_factor

这段代码看着简单,但坑不少。我曾经在实盘里踩过一个雷:排序期和持有期之间要跳过一天。为什么?因为要避免微观结构噪声,比如买卖价差、非同步交易这些。Jegadeesh和Titman原文里也特意强调了这一点,他们用的是「跳过一周」的版本。

避坑指南:计算动量因子时,一定要在排序期和持有期之间留一个间隔期(通常1周或1个月)。否则你算出来的收益里混入了短期反转效应,结果会失真。我曾经因为这个疏忽,回测曲线漂亮得不像话,实盘一跑就崩了。

4.4 动量因子的变体

经典动量策略是「过去6个月收益」,但后来研究者们玩出了各种花样:

变体名称 定义 特点
短期动量 过去1个月收益 容易受噪声干扰,但捕捉短期趋势
中期动量 过去6-12个月收益 经典版本,最稳健
长期动量 过去3-5年收益 接近价值因子,趋势性弱
残差动量 剔除市场、行业等因素后的动量 更纯粹,但计算复杂

我个人比较喜欢用残差动量。为什么?因为经典动量里混杂了行业趋势和市值效应。比如过去半年涨得好的股票,可能只是因为它们都在新能源行业。残差动量把行业因素剥离掉,剩下的才是真正的个股动量信号。

4.5 动量策略的争议与局限

动量策略不是万能的。我见过太多人一上来就无脑跑动量,结果遇到风格切换直接亏到怀疑人生。这里有几个关键点要注意:

  • 动量崩溃:2009年3月,动量策略一个月亏了40%以上。市场剧烈反转时,动量会死得很惨
  • 交易成本:动量策略换手率高,频繁交易会吃掉大量利润。我建议用期货或ETF来降低摩擦成本
  • 样本外失效:Jegadeesh & Titman的数据是1965-1989年,后来很多研究发现在90年代后期动量效应减弱了

警告:动量策略在牛转熊的初期会遭遇「动量崩溃」。2009年、2020年3月都是典型案例。如果你不做风险控制,一次崩溃就能把你之前所有的收益全部抹平。我自己的做法是:动量策略永远搭配一个波动率止损机制,当组合波动率超过阈值时,立刻减仓。

4.6 本章知识体系

下面这张图帮你理清动量因子的核心逻辑:

动量因子知识体系 动量因子 核心定义 过去涨 → 未来涨 经典文献 Jegadeesh & Titman (1993) 策略变体 短期/中期/长期/残差 排序期 + 持有期 6个月排序 + 6个月持有 残差动量更纯粹 ⚠ 局限与风险 动量崩溃 · 高换手率 · 样本外失效 核心:趋势延续 + 风险控制

这张图把动量因子的三个核心维度串起来了:定义是基础,文献是证据,变体是延伸。但最下面那个红色框框里的内容,才是你真正要记住的——动量策略不是印钞机,它需要严格的风险控制

好了,关于动量因子的基础就聊到这儿。记住Jegadeesh & Titman那篇论文的核心结论,然后自己去跑一遍数据。纸上得来终觉浅,绝知此事要躬行。


专注资料整理