- 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.4 KiB
description, tags
| description | tags | ||
|---|---|---|---|
| Ranks stocks by past cumulative or risk-adjusted returns and buys winners while selling losers, exploiting the empirical momentum effect in cross-sectional equity returns. |
|
Price-Momentum
Section: 3.1 | Asset Class: Stocks | Type: Momentum
Overview
The momentum effect describes the empirical tendency for future stock returns to be positively correlated with past returns. Stocks are ranked by a performance criterion computed over a formation period and a portfolio is constructed by buying the top-ranked stocks (winners) and shorting the bottom-ranked stocks (losers). The portfolio is then held for a predefined holding period before being reconstituted.
Construction / Signal
Let P_i(t) be the fully split- and dividend-adjusted price for stock i, with t measured in months and t=0 the most recent time. The monthly return is:
R_i(t) = P_i(t) / P_i(t+1) - 1 (266)
Cumulative return over the T-month formation period starting S months ago:
R_i^cum = P_i(S) / P_i(S+T) - 1 (267)
Mean monthly return over the formation period:
R_i^mean = (1/T) * sum_{t=S}^{S+T-1} R_i(t) (268)
Risk-adjusted mean return (Sharpe-like):
R_i^risk.adj = R_i^mean / sigma_i (269)
sigma_i^2 = 1/(T-1) * sum_{t=S}^{S+T-1} (R_i(t) - R_i^mean)^2 (270)
Stocks are sorted by R_i^cum, R_i^mean, or R_i^risk.adj (descending). The trader buys stocks in the top decile (winners) and shorts stocks in the bottom decile (losers).
Entry / Exit Rules
- Entry: At rebalance, buy top-decile stocks and short bottom-decile stocks according to the chosen ranking criterion.
- Exit: Hold for the predefined holding period (typically 1 month, but can be longer). Liquidate before end of holding period if unforeseen events occur (e.g., market crash).
- Skip period: Typically skip the most recent S=1 month to avoid short-term mean-reversion / microstructure effects.
Key Parameters
- Formation period T: Typically 12 months
- Skip period S: Typically 1 month
- Holding period: 1 month (longer periods show diminishing returns as momentum fades)
- Ranking criterion:
R_i^cum,R_i^mean, orR_i^risk.adj - Portfolio construction: Long-only (sum w_i = 1) or dollar-neutral (sum |w_i| = 1, sum w_i = 0)
- Weights: Uniform (1/N), or volatility-suppressed (w_i ∝ 1/sigma_i or 1/sigma_i^2)
Variations
- Long-only: Buy top-decile only; weights w_i ≥ 0, sum w_i = 1.
- Dollar-neutral (long/short): Buy winners, short losers; sum |w_i| = 1, sum w_i = 0. Modulus-uniform weights: w_i = 1/(2N_L) for longs, w_i = -1/(2N_S) for shorts.
- Overlapping portfolios: Multi-month holding via overlapping 1-month-holding portfolios (Jegadeesh and Titman, 1993).
- Nonuniform weights: w_i ∝ 1/sigma_i or w_i ∝ 1/sigma_i^2 to suppress volatile stocks.
Notes
- The momentum effect is well-documented but fades over longer horizons; holding periods beyond 12 months tend to reverse (value effect).
- Transaction costs can be significant, especially for high-turnover monthly rebalancing.
- The 1-month skip period is empirically motivated by microstructure/liquidity mean-reversion observed at the 1-month horizon.
- Dollar-neutral construction removes broad market beta exposure.
- Typical holding period: 1 month; diminishing returns for longer holds before trading costs.