Momentum Strategies: Ride Winners
Learn momentum strategies that profit from price trends that have already started moving in one direction.
Momentum: Follow the Winners
Assets with strong recent returns tend to continue earning strong returns—at least for a while. This is momentum, and it's a real market anomaly.
Time-Series Momentum (Single Stock)
Buy winners, short losers based on 11-month return
The "12-1" means use the return from 12 months ago back to 1 month ago (skip this month, which is too recent and has different dynamics).
df['Return_12m'] = df['Close'].pct_change(periods=252) # 252 trading days/year
df['Return_11m'] = df['Close'].pct_change(periods=231) # 11 months back
# Skip the most recent month for a smoother signal
df['Momentum_Signal'] = np.where(df['Return_12m'] > df['Return_11m'], 1, -1)
Cross-Sectional Momentum (Ranking)
Within a universe of stocks, rank them by recent returns and buy the top performers, sell the bottom performers.
# Calculate momentum for all stocks
returns = df.pct_change().iloc[-1] # Last period returns
ranked = returns.rank()
# Long the top 10%, short the bottom 10%
long_stocks = ranked[ranked > ranked.quantile(0.9)].index
short_stocks = ranked[ranked < ranked.quantile(0.1)].index
# Equal weight portfolio: long long_stocks, short short_stocks
Rate of Change (ROC)
Percentage change over N periods
- ROC > 5% = strong momentum
- ROC < -5% = strong negative momentum
- ROC cross above 0 = reversal from bearish to bullish
The Momentum Crash
Momentum strategies can suffer massive drawdowns when the market reverses. March 2009, February 2020, June 2022 all saw momentum crashes of 30%+.
Momentum Crashes Are Real
Momentum crashes when the entire market suddenly rotates away from recent winners. Prepare for this with tight stops and reduced leverage.
Volatility Scaling: Your Defense
Reduce exposure during high volatility regimes (VIX > 30) when momentum crashes are more likely.
# Scale position size down when VIX is high
base_position_size = 100
vix_today = get_vix() # Get current VIX
if vix_today > 30:
position_size = base_position_size * 0.5 # 50% smaller
elif vix_today > 20:
position_size = base_position_size * 0.75 # 75% size
else:
position_size = base_position_size # Full size
Momentum + Mean Reversion = Balanced
Run momentum AND mean-reversion strategies together. In trending markets, momentum wins. In choppy markets, mean-reversion wins. Together = more stable.
- Winners tend to keep winning in the short-to-medium term
- Momentum crashes happen when the market reverses - prepare for drawdowns
- Buy stocks at 52-week highs paradoxically works (breaking through resistance)
- Combine momentum with valuation for better risk management