- Flink update_bars debouncing - update_bars subscription idempotency bugfix - Price decimal correction bugfix of previous commit - Add GLM-5.1 model tag alongside renamed GLM-5 - Use short Anthropic model IDs (sonnet/haiku/opus) instead of full version strings - Allow @tags anywhere in message content, not just at start - Return hasOtherContent flag instead of trimmed rest string - Only trigger greeting stream when tag has no other content - Update workspace knowledge base references to platform/workspace and platform/shapes - Hierarchical knowledge base catalog - 151 Trading Strategies knowledge base articles - Shapes knowledge base article - MutateShapes tool instead of workspace patch
3.0 KiB
description, tags
| description | tags | ||||
|---|---|---|---|---|---|
| Applies price-momentum to the residuals of a Fama-French factor regression rather than raw returns, isolating stock-specific momentum from common factor exposures. |
|
Residual Momentum
Section: 3.7 | Asset Class: Stocks | Type: Momentum
Overview
Residual momentum replaces raw stock returns in the price-momentum strategy with the residuals of a serial regression of stock returns on common risk factors (e.g., the 3 Fama-French factors). This isolates the stock-specific component of momentum, removing the influence of market, size, and value factor exposures. The approach is attributed to Blitz, Huij and Martens (2011).
Construction / Signal
Step 1 — Factor regression (36-month estimation period, with 1-month skip):
R_i(t) = alpha_i + beta_{1,i} MKT(t) + beta_{2,i} SMB(t) + beta_{3,i} HML(t) + epsilon_i(t) (278)
where:
MKT(t)= excess market return (market portfolio minus risk-free rate)SMB(t)= Small Minus Big (size factor)HML(t)= High Minus Low (book-to-market factor)
Estimated over a 36-month period to get coefficients alpha_i, beta_{1,i}, beta_{2,i}, beta_{3,i}.
Step 2 — Compute residuals for the 12-month formation period (S=1 skip):
epsilon_i(t) = R_i(t) - beta_{1,i} MKT(t) - beta_{2,i} SMB(t) - beta_{3,i} HML(t) (279)
Note: alpha_i is excluded from this computation (it was estimated over the 36-month period, not the 12-month formation period).
Step 3 — Risk-adjusted residual return:
epsilon_i^mean = (1/T) * sum_{t=S}^{S+T-1} epsilon_i(t) (280)
R_tilde_i^risk.adj = epsilon_i^mean / sigma_tilde_i (281)
sigma_tilde_i^2 = 1/(T-1) * sum_{t=S}^{S+T-1} (epsilon_i(t) - epsilon_i^mean)^2 (282)
Construct a dollar-neutral portfolio by buying stocks in the top decile by R_tilde_i^risk.adj and shorting stocks in the bottom decile.
Entry / Exit Rules
- Entry: At rebalance, buy top-decile stocks by risk-adjusted residual return; short bottom-decile stocks.
- Exit: Hold for typically 1 month (can be longer).
- Skip period: S=1 month.
Key Parameters
- Factor model: 3 Fama-French factors (MKT, SMB, HML); Carhart 4-factor model (adding MOM) is an alternative
- Regression estimation period: 36 months
- Formation period T: 12 months
- Skip period S: 1 month
- Holding period: Typically 1 month
- Portfolio construction: Dollar-neutral long/short decile
Variations
- 4-factor model: Add Carhart momentum factor MOM(t) to regression
- Alternative factor models: Industry factors, principal components, other risk models
Notes
- Alpha_i is deliberately excluded from the residual computation for the formation period, as it was estimated over the longer 36-month window.
- Typical holding period is 1 month but can be extended.
- The strategy removes common factor momentum (e.g., sector momentum) and isolates idiosyncratic stock momentum.
- Risk: residual momentum can be sensitive to the choice of factor model and estimation period.