Python para Trading Algorítmico: Descarga de Datos Históricos y Estrategias de Momentum
Lo Que Dominarás en Este Tutorial
- Obtener datos históricos limpios de acciones y ETFs mediante APIs modernas de Python
- Calcular indicadores técnicos vectorizados: Medias Móviles Exponenciales (EMA), MACD y RSI
- Generar señales sistemáticas de compra y venta sin sesgo de anticipación (lookahead bias)
- Calcular métricas cuantitativas clave: Máximo Drawdown, Ratio de Sharpe y CAGR
PYTHON
import pandas as pd
import numpy as np
def calculate_momentum_strategy(df: pd.DataFrame, fast: int = 20, slow: int = 50) -> pd.DataFrame:
"""
Calcula cruces de EMA y evalúa la curva de capital de la estrategia.
"""
df = df.copy()
df['EMA_Fast'] = df['Close'].ewm(span=fast, adjust=False).mean()
df['EMA_Slow'] = df['Close'].ewm(span=slow, adjust=False).mean()
# Señal de posición (1 para Comprado, 0 para Liquidez)
df['Signal'] = np.where(df['EMA_Fast'] > df['EMA_Slow'], 1, 0)
df['Position'] = df['Signal'].shift(1) # Desplazar para evitar anticipación
# Retornos logarítmicos diarios
df['Market_Return'] = np.log(df['Close'] / df['Close'].shift(1))
df['Strategy_Return'] = df['Position'] * df['Market_Return']
df['Cumulative_Market'] = df['Market_Return'].cumsum().apply(np.exp)
df['Cumulative_Strategy'] = df['Strategy_Return'].cumsum().apply(np.exp)
return df
Publicidad
Ver Blueprints →
Patrocinador Verificado
Trading Cuantitativo y 30 Modelos de Negocio con IA
Genera ingresos predecibles con retainers mensuales y bots automatizados.
Preguntas Frecuentes
¿Por qué es fundamental evitar el sesgo de anticipación (lookahead bias)?
El sesgo de anticipación ocurre cuando un algoritmo toma decisiones con datos que aún no estaban disponibles al abrirse la vela. Desplazar las señales 1 período garantiza un backtest 100% realista.