Academy/Strategy Building/Momentum Strategies: Ride Winners
Strategy BuildingLesson 5

Momentum Strategies: Ride Winners

Learn momentum strategies that profit from price trends that have already started moving in one direction.

10 minute read
4 key takeaways

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)

Signal = LONG if Return(12-1 month) > 0, SHORT if < 0

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).

python
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.

python
# 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)

ROC = (P_now - P_N_periods_ago) / P_N_periods_ago × 100%

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.

python
# 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.

Key Takeaways
  • 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