动量交易策略

动量交易策略(Momentum Trading)是基于”价格趋势具有持续性”原理的交易方法,核心假设是:价格走势具有惯性,过去表现较好(差)的资产在短期内可能继续表现较好(差)。

基本原理

动量策略的理论基础来自于投资者行为偏差和信息传播不完全:

  • 投资者对新信息反应不足(Under-reaction)导致价格调整滞后
  • 羊群效应(Herding Behavior)强化了趋势的持续性
  • 市场摩擦(Market Friction)使信息在市场中逐步扩散

策略类型

时间序列动量

基于单一资产自身历史价格表现:

  • 当资产价格高于过去N期均价时做多
  • 当资产价格低于过去N期均价时做空
# 简单时间序列动量策略
def time_series_momentum(prices, lookback=12):
    # 计算过去lookback期的收益率
    returns = prices.pct_change(lookback)
    
    # 生成信号:正收益率做多,负收益率做空
    signals = np.sign(returns)
    
    # 移动信号以避免前瞻偏差
    signals = signals.shift(1)
    
    return signals

横截面动量

比较不同资产在同一时期的相对表现:

  • 买入过去N期表现最好的资产组合
  • 卖出过去N期表现最差的资产组合
# 横截面动量策略
def cross_sectional_momentum(returns_df, lookback=12, n_top=10):
    # 计算每个资产过去lookback期的累计收益
    lookback_returns = returns_df.rolling(window=lookback).apply(
        lambda x: (1 + x).prod() - 1
    )
    
    # 每期选出表现最好的资产
    signals = pd.DataFrame(0, index=returns_df.index, columns=returns_df.columns)
    
    for t in signals.index:
        if t < lookback: continue
            
        # 按收益率排序
        ranked = lookback_returns.loc[t].sort_values(ascending=False)
        
        # 做多表现最好的n_top只资产
        signals.loc[t, ranked.index[:n_top]] = 1
    
    return signals

行业轮动策略

利用行业之间表现的周期性差异:

  • 投资于近期表现最好的行业ETF
  • 定期调整持仓以跟踪最强势行业

参数选择

动量策略的关键参数包括:

  1. 回溯期(Lookback Period):常用时长为3-12个月

    • 太短:容易受噪音影响
    • 太长:信号滞后性增强
  2. 持有期(Holding Period):通常与回溯期相近

    • 短期持有:更高换手率和交易成本
    • 长期持有:可能错过趋势转折点

策略增强方法

波动率调整

根据资产波动率调整持仓比例,平衡风险贡献:

# 波动率调整的动量策略
def volatility_adjusted_momentum(returns, lookback=12, target_vol=0.15):
    # 计算动量信号
    momentum_signals = np.sign(returns.rolling(lookback).mean())
    
    # 计算历史波动率
    volatility = returns.rolling(lookback).std() * np.sqrt(252)  # 年化
    
    # 根据目标波动率调整头寸
    position_size = target_vol / volatility
    
    # 结合动量信号和头寸大小
    final_signals = momentum_signals * position_size
    
    return final_signals

动量因子结合

将动量指标与其他因子结合:

  • 与价值因子结合:避免追高泡沫资产
  • 与质量因子结合:筛选基本面健康的动量股

择时策略

根据市场环境调整动量策略的暴露:

  • 牛市:增加动量暴露
  • 熊市:减少动量暴露或转向反转策略

风险管理

动量策略面临的主要风险:

  1. 趋势反转风险

    • 设置止损限制最大损失
    • 监控趋势减弱信号如背离
  2. 拥挤交易风险

    • 监控策略受欢迎程度指标
    • 在极端市场情绪时减少仓位
  3. 波动率风险

    • 实施波动率控制机制
    • 在高波动率环境减少杠杆

与其他策略的结合

动量策略可以与其他策略结合,形成更全面的交易系统:

策略绩效评估

评估动量策略表现的指标:

  1. 信号准确率:计算signal × 实际收益的胜率
  2. 风险调整收益:常用夏普比率、索提诺比率
  3. 最大回撤:评估策略承受市场逆转的能力

实证研究结果

学术研究普遍发现动量效应:

  • Jegadeesh和Titman (1993)首次系统化记录了动量现象
  • 动量效应在大多数市场和资产类别中均有表现
  • 典型动量效应持续时间为3-12个月,随后可能出现反转