Metodología de backtesting
Cómo simula Drogo el desempeño histórico de las estrategias, qué supuestos hay incorporados y qué sesgos controlamos explícitamente.
Última revisión:
Fuentes de datos y resolución
Los backtests de Drogo se ejecutan contra los mismos datos históricos por barras que alimentan los gráficos en vivo: OHLCV de cierre de jornada de Polygon para acciones y ETFs estadounidenses, con resoluciones intradía (1m, 5m, 15m, 60m) disponibles para los mismos instrumentos. Los pares cripto usan datos spot de Binance. Los pares de Forex usan Polygon FX. Todos los datos se entregan a través del endpoint /history de la API de datos de Drogo y se cachean en el edge para garantizar consistencia de lectura dentro de una misma corrida de backtest.
Cada instrumento se identifica por su listado primario —los corporate actions (splits, dividendos especiales en efectivo, cambios de ticker) se aplican a la serie histórica, de modo que una posición de 100 acciones de AAPL comprada en 2014 se refleja como 700 acciones a los precios de hoy, con la base de costo ajustada en consecuencia—. Los spin-offs se aplican como ingresos equivalentes en efectivo en la fecha del spin-off cuando Polygon publica el ratio; en caso contrario, la posición se cierra al cierre del día previo al spin-off y se emite una nota en el log de la corrida.
Modelo de órdenes y slippage
Por defecto, Drogo simula órdenes a mercado que se ejecutan en la apertura de la siguiente barra después de que se dispara la señal en el cierre de barra. Esto evita el sesgo de look-ahead: una estrategia que dispara a las 15:30 en marco diario no puede operar al cierre de las 16:00 del mismo día.
El slippage se modela como una fracción fija del rango de la barra, con valores por defecto de 5 bps para acciones estadounidenses líquidas, 10 bps para acciones menos líquidas (ADV < 20 M USD), 15 bps para cripto majors y 30 bps para cripto altcoins. El slippage se aplica simétricamente en entrada y salida, por lo que el costo round-trip duplica al unilateral. Los usuarios pueden sobreescribir estos valores por corrida.
Las órdenes limit y stop se simulan contra el high/low de la barra: un buy-stop a 101 USD se ejecuta solo si el high de la barra correspondiente ≥ 101 USD, con precio de fill = max(stop, open). Los stop-losses en posiciones largas se ejecutan si low ≤ stop, con fill = min(stop, open) para modelar honestamente las pérdidas por gap a la baja.
Ejemplo trabajado: la señal de AAPL dispara el 2024-01-10 al cierre de 185,92 USD. El nivel de slippage por defecto es 5 bps. La barra siguiente abre a 186,40 USD. Fill simulado = 186,40 × (1 + 0,0005) = 186,49 USD. En la salida cinco días después en apertura de 192,10 USD, fill simulado = 192,10 × (1 − 0,0005) = 192,00 USD. Costo round-trip de slippage = (186,49 − 186,40) + (192,10 − 192,00) = 0,19 USD por acción ≈ 10 bps round-trip. P&L reportado = 192,00 − 186,49 = 5,51 USD por acción, antes de fees SEC/FINRA en la pata de venta.
Comisiones y financiación
Acciones estadounidenses: 0 USD de comisión (alineado con los brokers retail modernos). Se aplica la SEC fee del 0,00229 % en ventas y la FINRA TAF de 0,000119 USD por acción en ventas, salvo que el usuario las desactive. Cripto: 10 bps maker / 10 bps taker por defecto (Binance VIP-0). Forex: 0 USD de comisión, con el spread incorporado al modelo de slippage.
Margen y financiación de cortos: el motor cobra financiación overnight sobre las posiciones cortas a SOFR + 50 bps anualizados, prorrateado por día. Las posiciones largas no devengan financiación por defecto (cuenta cash). Los usuarios pueden cambiar a un modelo de cuenta margen que cobra SOFR + 200 bps sobre el efectivo prestado por encima del 100 % de utilización del equity.
Controles de sesgo de supervivencia y look-ahead
El universo histórico de Drogo incluye tickers deslistados y quebrados siempre que el proveedor de datos los suministra, de modo que una estrategia que se backtestea en "acciones del S&P 500 entre 2015 y 2024" se ejecuta en realidad contra la pertenencia histórica al índice de cada año, no contra la pertenencia actual. Los eventos de reconstitución del índice se toman de los archivos históricos de índices de Polygon cuando están disponibles; en su defecto utilizamos un CSV curado que actualizamos trimestralmente.
Las fechas de earnings, dividendos y otros eventos corporativos se toman del timestamp de anuncio, no del timestamp del reporte. Una estrategia clavada en "comprar 2 días antes de earnings" conoce, por tanto, la fecha de earnings solo después de su anuncio público, no a posteriori.
No se utilizan datos de fundamentales con menos de 75 días desde el cierre del trimestre, dado que las revisiones a los financieros GAAP son comunes en los primeros 75 días tras la publicación. Es un criterio conservador; los usuarios pueden bajarlo.
Estadísticas reportadas
Cada corrida de backtest reporta: retorno total, CAGR, max drawdown, Sharpe (rf = T-bill 1Y, retornos diarios), Sortino (semidesviación a la baja), Calmar (CAGR / |max DD|), win rate, profit factor (ganancia bruta / pérdida bruta), ganador / perdedor promedio, expectativa por trade, holding period promedio, exposición (% del tiempo en mercado) y la curva de equity completa.
Sharpe y Sortino se anualizan por √252 para estrategias diarias y por √(365×24×60) para estrategias cripto de 1m. No computamos "Sharpe mensual" por defecto porque infla la cifra en estrategias de alta frecuencia; si lo necesitas, hay que activarlo de forma explícita.
El drawdown se calcula sobre la curva de equity incluyendo el P&L no realizado, no solo el realizado. Esto se ajusta a lo que un titular real de la cuenta vería día a día.
Lo que un backtest no puede decirte
Los backtests asumen que la estrategia que corriste en código es la que correrías en tiempo real, sin override conductual. En la práctica, la mayoría de los traders retail anula su estrategia tras 3–4 pérdidas consecutivas. El max drawdown reportado es una cota inferior de lo que experimentaría un humano.
Los backtests no pueden modelar eventos de liquidez que no ocurrieron: una estrategia que siempre operó 10 000 USD en AAPL habría movido el mercado escalada a 100 M USD. No reducimos automáticamente el sizing en función del volumen diario promedio; eso es responsabilidad del usuario.
Los backtests no son consejo de inversión y no establecen que la estrategia vaya a funcionar a futuro. Drogo no realiza revisiones de riesgo a nivel de cartera y no actúa como fiduciario.
Registro de cambios
- — Initial publication.
- — Added survivorship-bias and look-ahead-bias control sections; clarified default slippage tiers.
Referencias
Drogo Research — Editorial cuantitativa
Reviewed for factual accuracy; methodology linked below.