Momentum window selection¶
¿Qué formation period usar para momentum en la strategy recomendada? Consenso académico: 3-12 meses funcionan, con skip-1-month obligatorio. Recomendación para el proyecto: ensemble 12-1 + 6-1 para robustez ante regime shifts.
Reglas inflexibles¶
Skip-month obligatorio¶
Nunca usar "past 12 months return" directo. Siempre 12-1: return_past_12m - return_past_1m.
Razón: el past 1-month tiene short-term reversal (Jegadeesh 1990) — stocks que subieron mucho last month tienden a bajar next month. Incluirlo en el score contamina momentum con anti-momentum.
Notación¶
- "12-1" = 12 months lookback, skip 1 month.
- "6-1" = 6 months lookback, skip 1.
- "12-2" = 12 months lookback, skip 2.
Windows con evidence¶
| Formation | Holding | Period funcionó |
|---|---|---|
| 12-1 | 1m | 1988-2008 US equity — estándar académico |
| 6-1 | 1m | 2008-2019 US equity — post-GFC mejor |
| 3-1 | 1m | 2008-2019 equity-bond mixed |
| 12 (TS momentum) | 1m | Moskowitz 2012 — múltiples asset classes |
Sum formation + holding peak: 14-18 meses (US equity post-J&T research).
Regime dependence — riesgo y fix¶
El window óptimo cambia. No hay un "12-1 es siempre mejor". Opciones:
Opción A: 12-1 clásico¶
- Simple, máxima evidence histórica.
- Riesgo: regime shift post-2008 puede haber cambiado óptimo.
Opción B: Ensemble (recomendado)¶
- Captura tanto medium- como shorter-term persistence.
- Robusto si un régimen predomina.
- Baja overfitting risk.
Opción C: Adaptive¶
- Elegir window según régimen (VIX, trend strength).
- Alto overfitting risk — cada regla adaptive es otro parámetro tuneado.
- No recomendado para MVP.
Recomendación final para este proyecto¶
Opción B — ensemble 12-1 + 6-1, equal weight.
Actualización al composite score de analysis/recommended-strategy-for-user:
score = 0.5 × momentum_ensemble + 0.3 × quality_score + 0.2 × value_score
donde:
momentum_ensemble = 0.5 × normalize(ret_12m - ret_1m)
+ 0.5 × normalize(ret_6m - ret_1m)
Normalización: z-score o rank-based sobre el universe (top 500 S&P). Mezclar levels brutos (12-month return) con z-scores sesga.
Tests que el backtest debe incluir¶
- 12-1 solo vs ensemble → ver si ensemble justifica su complejidad.
- Decay analysis: performance por mes del holding period (1, 2, 3... 12). Si decae rápido, rebalance mensual correcto; si persiste 12 meses, trimestral puede alcanzar con menos fricción.
- Sub-period breakdown: performance 2000-2009 vs 2010-2019 vs 2020-2026. Consistency check.
Gaps¶
- Correlación 12-1 vs 6-1 empírica: idealmente <0.8 para que el ensemble agregue valor. Si >0.95, usar solo 12-1.
- Incluir 3-1 como tercera componente del ensemble: agrega señal o ruido?
- Time series momentum layer (above cross-sectional): si SPY TS momentum >0, go; si <0, reduce exposure. Adds regime filter.
Relaciones¶
- Source: sources/momentum-window-academic-consensus.
- Actualiza: analysis/recommended-strategy-for-user (composite score refinado).
- Relacionado con: concepts/evidence-based-strategies, analysis/momentum-crash-risk (crashes afectan cualquier window).
- Resuelve: PP-04.