Nivel 2 · 110–120 h
Estrategias sistemáticas y backtesting riguroso
De la hipótesis al backtest honesto: estadística para trading, familias de estrategias, motores vectorizados y por eventos, y la validación que separa un edge de un sobreajuste.
- Prerrequisito
- pandas sólido, OHLCV, rentabilidades y drawdown
- Perfil
- Analista de datos, trader discrecional técnico
Estadística y econometría para trading
2.1.1Contrastes de hipótesis, p-valores, bootstrap; regresión múltiple con errores robustos (Newey-West).2.1.2Estacionariedad: ADF, KPSS; diferenciación; diferenciación fraccional.2.1.3Modelos ARMA y ARIMA; autocorrelación (ACF, PACF).2.1.4Volatilidad: ARCH, GARCH, EGARCH, GJR (librería arch).2.1.5Cointegración: Engle-Granger, Johansen; half-life de reversión (Ornstein-Uhlenbeck).2.1.6Filtro de Kalman para hedge ratios dinámicos.2.1.7Detección de regímenes: modelos de Markov ocultos (HMM), cambios estructurales.2.1.8El problema de las pruebas múltiples: Bonferroni, FDR, «factor zoo».
Anatomía de un sistema de trading
2.2.1Hipótesis de ventaja (edge): de dónde puede venir (riesgo, comportamiento, estructura, información).2.2.2Universo, señal, filtro, entrada, salida, sizing, gestión del riesgo.2.2.3Frecuencias: intradía, swing, posicional; capacidad de la estrategia.2.2.4Diario de investigación y registro de experimentos, para controlar el data snooping.
Familias de estrategias
2.3.1Seguimiento de tendencia (cruces, breakouts Donchian y Turtle, momentum de series temporales) y momentum transversal o rotación sectorial.2.3.2Reversión a la media: RSI y Bollinger, reversión intradía, gaps.2.3.3Pairs trading y arbitraje estadístico: selección de pares, distancia, cointegración, Kalman.2.3.4Carry (FX, roll yield en futuros, bonos), estacionalidad y efectos calendario.2.3.5Factores (value, quality, low volatility, size; long-short) y estrategias de eventos (resultados, dividendos, rebalanceos de índices).2.3.6Introducción al market making: inventario, spread, selección adversa (modelo de Avellaneda-Stoikov).2.3.7Estrategias específicas de cripto (introducción): momentum en cripto, arbitraje de funding y basis (detallado en el nivel 3).
Backtesting: motores y paradigmas
2.4.1Backtest vectorizado con pandas y NumPy desde cero, y sus límites.2.4.2Backtest orientado a eventos desde cero: bucle, cartera, órdenes, fills.2.4.3vectorbt: barridos masivos de parámetros, simulación de cartera.2.4.4backtesting.py y backtrader (didácticos; estado de mantenimiento).2.4.5NautilusTrader: arquitectura (Rust y Python), datos, estrategias, el mismo código en backtest y en real.2.4.6LEAN/QuantConnect y Zipline-reloaded; bt para asignación de activos.2.4.7Modelado de costes: comisiones por broker, spread, slippage, impacto, financiación, préstamo de títulos.2.4.8Modelado de fills: órdenes limitadas, cola, fills parciales, gaps, stops.
Sesgos y validación
2.5.1Look-ahead, supervivencia, selección, data snooping, sesgo de narrativa.2.5.2In-sample y out-of-sample; walk-forward anclado y móvil.2.5.3Validación cruzada combinatoria purgada (CPCV) para estrategias.2.5.4Deflated Sharpe Ratio y Probability of Backtest Overfitting (PBO).2.5.5Monte Carlo: remuestreo de trades, bootstrap de bloques, permutaciones de señales.2.5.6Análisis de sensibilidad de parámetros (mesetas frente a picos); robustez entre activos y periodos.2.5.7Datos sintéticos (GBM, GARCH, bootstrapping) para pruebas de estrés.2.5.8Checklist de «backtest honesto» antes de pasar a paper trading.
Métricas de rendimiento
2.6.1CAGR, volatilidad, Sharpe, Sortino, Calmar, Omega; drawdown máximo, duración, Ulcer Index.2.6.2Win rate, payoff, expectativa, profit factor; alpha y beta, information ratio, turnover y capacidad.2.6.3Informes con QuantStats o pyfolio-reloaded; tearsheets propios.
Research del sitio para practicar este nivel
Práctica
- Tu primer sistema en Python: cruce de medias móviles sobre SPY
- Zipline en Python - Parte 1: Quant Stack y Pipeline.
- Zipline, Backtesting en Python 2 : Mi primer Data Analisis
- Estacionalidad en Python II - Backtesting
- Estacionalidad Intradiaria IV - Busqueda de campo
- Alpha Factors y Alpha Trading en Python