Cross-Sectional Equity Momentum (refresh)
Classic cross-sectional momentum (12-month returns, skip most recent month) applied to S&P 500, with crowding adjustment and sector-neutral overlay.
12-1 momentum revival, robust to factor crowding metric. Approved with 0.4 vol target.
How It Works
Long top decile winners, short bottom decile losers based on trailing 12-month returns (excluding last month), rebalanced monthly with sector neutrality.
Mechanics
- 1.Rank S&P 500 stocks by 12-month total return (t-12 to t-1)
- 2.Skip most recent month (t-1 to t-0) to avoid microstructure reversal
- 3.Long top decile (50 stocks), short bottom decile (50 stocks)
- 4.Apply sector-neutral constraint (max ±2 stocks per sector)
- 5.Adjust position sizes by factor crowding score (reduce size when momentum is crowded)
- 6.Rebalance monthly on last trading day
Signals
Performance Results
Implementation
S&P 500 constituents (100 long/short positions)
MOC orders (market-on-close) for monthly rebal, VWAP for intradaily needs
Monthly (last trading day of month, 3:55 PM MOC)
Target 8% ann. vol (0.4% daily), max 12% per stock, sector neutral ±2
Python research stack, live execution via Interactive Brokers API
Risk Analysis
Factor Crowding
Medium ImpactCrowding score reduces size when momentum is popular
Reversal Events
Medium ImpactSkip recent month reduces short-term reversal impact
Sector Concentration
Low ImpactSector-neutral constraint enforced
Execution
Low ImpactMOC orders ensure fair pricing, minimal slippage
Backtest Results
Stress Period Analysis
Long/short structure provided downside protection
Brief momentum crash, recovered within 2 months
Defensive positioning paid off
Deployment Status
Live since Mar 30, 2026
$12000 (12% of AUM)
Interactive Brokers (execution), Charles Schwab (backup)
Daily P&L tracking, monthly rebalance verification, quarterly factor exposure review