Saltar a contenido

Data sources para backtest de la strategy

Qué data necesita la strategy recomendada + dónde obtenerla con/sin budget. Resuelve un bloqueador real para Fase 0 del rollout.

Qué datos necesita

Para la strategy en analysis/recommended-strategy-for-user:

  1. S&P 500 constituents point-in-time (mensual) 2000-2026.
  2. Daily bar prices (OHLCV) adjusted splits + dividends.
  3. Fundamentals point-in-time: ROE, debt/equity, P/E, P/B, operating margin. Idealmente con restatements.
  4. Factor data si se usa factor momentum: returns de factores value/quality/momentum históricos (AQR datasets free).

Setup mínimo viable ($0)

Data Fuente Cobertura
Constituents fja05680/sp500 GitHub 1996+ monthly
Prices yfinance (Python) EOD desde ~1970
Fundamentals SimFin free tier 20+ años, limited API calls
Factor returns AQR datasets 1926+ factor monthly

Pros: costa $0, suficiente para validar sistema y primera pasada de backtest. Cons: yfinance puede fallar por cambios en scraping; sin restatements de fundamentals; monthly-only constituents (no intra-mes changes).

Setup serio (~$150-250/mes)

Data Fuente Costo
Constituents + prices (US equity universe histórico) Norgate Data NDU ~$40/mes
Fundamentals point-in-time con restatements Sharadar (Nasdaq Data Link) ~$100-200/mes
Real-time prices (post-MVP, live trading) Polygon.io o Tiingo ~$30-50/mes

Pros: point-in-time real, sin survivorship bias, restatements incluidos. Backtest tiene validez académica. Cons: ~$150-250/mes compromiso.

Data pitfall #1: Survivorship

Si usas S&P500 actual (503 companies a 2026) como universe histórico → estás excluyendo las que quebraron, fusionaron, fueron adquiridas. Overstates returns +1-4%/año, Sharpe inflado, max DD subestimado.

Fix: fja05680/sp500 (free) tiene constituents históricos mensualmente. Norgate tiene point-in-time real con delisted included.

Data pitfall #2: Fundamentals sin restatements

Muchas APIs cheap reportan fundamentals de lo que la empresa dijo al filing → después suelen ser corregidos (restatements). Si tu backtest usa los números finales pero "desde la fecha del filing original", es look-ahead disfrazado.

Fix: Sharadar es gold standard retail porque reporta lo que se sabía en cada momento + restatements marcados.

Data pitfall #3: Adjusted prices

yfinance y otros aplican split/dividend adjustments retro. Un precio "ajustado" de 2010 refleja splits posteriores — OK para retornos, NO OK para decisions históricas (un trader en 2010 vio el precio no-ajustado). Usar adj_close para signals y close crudo para ejecución simulada.

Data pitfall #4: Opciones / derivatives

Out of scope por ahora, pero si se explora: opciones data es caro y de calidad variable. CBOE DataShop, OptionsDX — $100-500/mes.

Factor data para combo momentum + quality + value

La strategy usa composite score. Cada factor tiene datos free:

  • Momentum: calculable de prices (12-month - 1-month return).
  • Quality: requiere fundamentals (ROE, debt/equity, margin) → SimFin gratis o Sharadar pagado.
  • Value: P/B o P/E → mismo.

AQR libera datasets de factor returns históricos gratis — útil para benchmark vs factor puro.

Plan secuencial recomendado

  1. Semana 1: clonar fja05680/sp500, armar pipeline yfinance → pandas DataFrame con prices por ticker.
  2. Semana 2: SimFin free tier para fundamentals básicos; ROE, debt/equity para los ~500 tickers.
  3. Semana 3: backtest momentum-only primer pass con VectorBT.
  4. Semana 4: agregar quality + value, combo score.
  5. Si los números son prometedores: upgrade a Norgate + Sharadar antes de real money.

Relaciones