Saltar a contenido

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)

momentum_score = 0.5 × momentum(12-1) + 0.5 × momentum(6-1)
  • 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

  1. 12-1 solo vs ensemble → ver si ensemble justifica su complejidad.
  2. 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.
  3. 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