Has pasado semanas creando tu estrategia. El backtest muestra un Sharpe Ratio de 2.5, Profit Factor de 3.2, y una curva de equity impecable. La pones en real y pierde dinero.
No eres tú. No es mala suerte. Es que tu backtest mintió.
Los backtests tienen problemas estructurales que inflan artificialmente los resultados. Algunos son errores técnicos, otros son sesgos estadísticos sutiles, y otros son producto de cómo funciona tu plataforma. Si quieres entender primero que es el trading algoritmico antes de profundizar en sus trampas, te recomiendo empezar por ahi. Este articulo documenta los 7 problemas mas peligrosos y como detectarlos.
"Más del 90% de estrategias que funcionan en backtest fallan en implementación real." — Marcos López de Prado, Advances in Financial Machine Learning
¿Tu backtest dice la verdad?
Sube tu estrategia y obtén métricas profesionales. Nuestro análisis detecta señales de alerta automáticamente.
Analizar mi estrategia →Los 7 sesgos mortales del backtesting
Cualquiera de estos sesgos puede invalidar completamente un backtest. La mayoría de traders tienen al menos 2 o 3 activos en sus tests sin saberlo.
| # | Sesgo | Qué hace | Impacto típico |
|---|---|---|---|
| 1 | Look-ahead bias | Usa información futura | Crítico |
| 2 | Survivorship bias | Ignora activos quebrados | Crítico |
| 3 | Overfitting | Ajusta ruido, no señal | Crítico |
| 4 | Data snooping | Minería de patrones espurios | Alto |
| 5 | Sin slippage/comisiones | Ignora costes reales | Alto |
| 6 | Sin datos intrabar | Ignora movimiento interno | Medio-Alto |
| 7 | Spot vs Futuro | Productos diferentes | Medio |
Deteccion y prevencion de cada sesgo
| Sesgo | Como detectarlo | Como evitarlo |
|---|---|---|
| Look-ahead bias | Revisar si la senal usa datos no disponibles en tiempo real | Usar solo datos hasta la barra actual; evitar funciones future-looking |
| Survivorship bias | Comprobar si el universo incluye activos deslistados | Usar bases de datos con historial completo incluyendo quiebras |
| Overfitting | Sharpe > 3, Profit Factor > 3, equity perfecta | Limitar parametros, validar out-of-sample y Walk Forward |
| Data snooping | Muchas combinaciones probadas sin ajuste estadistico | Aplicar Deflated Sharpe Ratio o White's Reality Check |
| Selection bias | Solo se muestra el mejor activo o periodo | Testear en multiples activos y periodos; reportar todos |
| Costes ignorados | Resultados sin descontar costes reales | Incluir slippage y comisiones realistas por activo |
| Datos intrabar | Stops o targets que se activan sin reflejarse | Activar bar magnifier o usar datos tick/minuto |
Para profundizar en como interpretar correctamente estas senales de alerta, consulta nuestra guia de metricas avanzadas de trading.
Veamos cada uno en detalle.
Look-ahead bias: el viajero del tiempo
El look-ahead bias ocurre cuando tu backtest usa información que no existía en el momento de la decisión. Es como hacer trading con una bola de cristal que muestra el futuro.
Look-ahead bias (definición): Sesgo que introduce información futura en decisiones pasadas de un backtest. Cualquier dato que no estaba disponible en el momento de la operación contamina los resultados.
Ejemplos comunes
Usar el precio de mañana hoy
"Si el precio de apertura de mañana es mayor que el cierre de hoy, compro hoy". Imposible en real porque no conoces el futuro. Importante: En lenguajes genéricos como Python o C++, este tipo de error es posible porque puedes acceder a cualquier índice del array de datos. En cambio, lenguajes específicos de trading como EasyLanguage (TradeStation) o Pine Script (TradingView) están diseñados para prevenir esto: solo permiten acceder a datos pasados o actuales, nunca futuros.
Indicadores recalculados con datos futuros
Algunos indicadores "repintan" - se recalculan con cada nueva barra, cambiando el historial. Lo que ves hoy no es lo que existía ayer.
Datos económicos antes de su publicación
"Si el PIB trimestral es positivo, estar largo". Pero el PIB se publica semanas después del cierre del trimestre. Tu backtest usa el dato desde el día 1 del trimestre.
Cómo detectarlo
- Resultados demasiado buenos: Si tu estrategia parece "saber" cuándo vienen los movimientos grandes, probablemente tenga look-ahead
- Indicadores que repintan: Compara el indicador actual con capturas históricas. Si difieren, repinta
- Revisa el orden de operaciones: ¿La decisión se toma ANTES de tener el dato que usa?
Cómo evitarlo
- Usa solo datos disponibles en el momento de la decisión
- Ejecuta órdenes al precio de apertura de la SIGUIENTE barra, no la actual
- Verifica que los indicadores no repinten (muchos de TradingView lo hacen)
- Para datos económicos, usa la fecha de publicación, no la fecha del dato
Survivorship bias: los muertos no hablan
El survivorship bias ocurre cuando backtesteas solo con activos que existen hoy, ignorando los que quebraron, fueron deslistados o absorbidos. Es como estudiar "el secreto del éxito" entrevistando solo a millonarios.
Survivorship bias (definición): Sesgo que sobreestima resultados al excluir del análisis los activos que dejaron de existir (quiebras, fusiones, delisting). Solo se analizan los "supervivientes".
El caso Enron/Lehman
Un backtest del S&P 500 desde 2000 hasta hoy con los componentes ACTUALES del índice excluye automáticamente:
- Enron - quiebra en 2001, fue el 7º empresa más grande de EEUU
- WorldCom - quiebra en 2002, fraude contable masivo
- Lehman Brothers - quiebra en 2008, crisis financiera
- Cientos de empresas más que fueron absorbidas, deslistadas o quebradas
Tu estrategia nunca compró estas empresas en tu backtest porque hoy no existen. Pero en 2007, Lehman Brothers era una de las mayores del mundo. Tu estrategia de momentum la habría comprado.
El impacto real
Estudios demuestran que el survivorship bias puede inflar los retornos anuales entre 0.5% y 1.5%. En un backtest de 20 años, eso puede convertir una estrategia mediocre en aparentemente brillante.
Cómo evitarlo
✅ Usar datos "point-in-time"
Proveedores como CRSP, Compustat, o servicios premium incluyen todos los componentes históricos del índice, no solo los actuales.
✅ Incluir delisted
Si una empresa fue deslistada, asumir pérdida parcial o total. No ignorarla simplemente porque ya no existe.
Overfitting: la curva perfecta que miente
El overfitting ocurre cuando tu estrategia captura ruido del pasado en lugar de patrones reales. Es el pecado más común y más peligroso del backtesting.
Overfitting (definición): Ajustar excesivamente una estrategia a datos históricos, capturando fluctuaciones aleatorias en lugar de patrones generalizables. La estrategia funciona perfectamente en el pasado pero falla en el futuro.
"Con suficientes parámetros, puedo ajustar un elefante." — John von Neumann
Señales de alerta
| Métrica | Valor sospechoso | Valor realista | Por qué |
|---|---|---|---|
| Sharpe Ratio | > 3.0 | 0.5 - 2.0 | Los mejores fondos del mundo rara vez superan 2.0 |
| Profit Factor | > 3.0 | 1.3 - 2.0 | Estrategias robustas están en 1.5-2.0 |
| Win Rate | > 80% | 40% - 65% | Estrategias de tendencia suelen tener 35-45% |
| Max Drawdown | < 5% | 15% - 30% | Si el DD es muy bajo, probablemente esté ajustado |
| Trades totales | < 30 | > 100 | Pocos trades dan resultados estadísticamente no significativos |
Según Bailey y López de Prado (2014), un backtest con Sharpe Ratio superior a 3.0 tiene alta probabilidad de ser producto de overfitting. Para evaluar si un resultado es genuino, proponen el Deflated Sharpe Ratio (DSR), que ajusta el Sharpe observado por el número de tests realizados, la asimetría y la curtosis de los retornos. Si has probado decenas de variantes, necesitas un Sharpe mucho mayor para que sea estadísticamente significativo.
Por qué más parámetros = más peligro
Cada parámetro que añades es un "dial" que puedes ajustar hasta que el backtest funcione. Con 10 parámetros y 10 valores cada uno, tienes 10 mil millones de combinaciones. Garantizado que alguna será "rentable" por pura casualidad.
Robert Pardo en Design, Testing, and Optimization of Trading Systems recomienda: "Si necesitas más de 5 reglas para describir tu estrategia, probablemente estés ajustando ruido".
Regla práctica
Si tu estrategia tiene más de 4 parámetros, pregúntate por qué. Cada uno debería tener una justificación económica clara, no simplemente "porque mejora el backtest".
Monte Carlo: el test de estrés definitivo
¿Tu estrategia sobreviviría a 10,000 escenarios aleatorios? Nuestra simulación Monte Carlo revela si es robusta o si es ruido.
Probar Monte Carlo →Data snooping: minería de ruido
Data snooping es probar tantas variantes hasta encontrar una que funcione por casualidad. Es la versión estadística de lanzar dardos hasta dar en la diana y luego presumir de puntería.
Data snooping (definición): Buscar patrones en datos de forma intensiva hasta encontrar algo que parezca funcionar, inflando la significancia estadística porque el mismo dataset se usa repetidamente para generar y probar hipótesis.
El estudio de las 7,846 reglas
Sullivan, Timmermann & White (1999) realizaron un estudio seminal publicado en el Journal of Empirical Finance. Analizaron 7,846 reglas técnicas de trading sobre 100 años de datos del Dow Jones.
Resultado: Muchas reglas mostraron retornos altos en el período de prueba. Pero cuando aplicaron White's Reality Check (un método estadístico que ajusta por múltiples tests), casi ninguna mostró poder predictivo real.
Ejemplo absurdo que "funciona"
Andrew Lo de MIT documenta casos como: "Ir largo en acciones con la letra S en la tercera posición del ticker y corto en las que tienen U". Con suficientes pruebas, incluso esto puede parecer "rentable" en un período específico.
El problema del múltiple testing
Si pruebas 100 estrategias con un nivel de confianza del 95%, esperas que 5 de ellas parezcan "significativas" por pura casualidad. Si pruebas 1,000, serán 50. Si pruebas 10,000 (fácil con ordenadores modernos), serán 500 estrategias "ganadoras" que son puro ruido.
Según Harvey, Liu y Zhu (2016), al menos el 50% de los factores publicados en finanzas académicas son falsos positivos producto del data snooping. Si esto ocurre en la investigación académica con revisión por pares, imagina lo que sucede cuando un trader retail prueba miles de combinaciones sin ningún ajuste estadístico.
Soluciones
El Deflated Sharpe Ratio (DSR)
David H. Bailey y Marcos López de Prado propusieron el Deflated Sharpe Ratio como solución al problema de múltiples tests. La idea es ajustar el Sharpe Ratio observado para tener en cuenta cuántas estrategias probaste antes de encontrar "la buena":
Deflated Sharpe Ratio (DSR):
DSR = SR * sqrt(T) / sqrt(1 + (skew/6)*SR + ((kurt-3)/24)*SR^2)
Ajustado por N tests realizados. Donde: SR = Sharpe Ratio observado, T = numero de observaciones, N = numero de backtests probados, skew = asimetria de retornos, kurt = curtosis. Cuantos mas tests hayas ejecutado (N mayor), mas alto debe ser el SR para considerarse significativo.
- Deflated Sharpe Ratio (DSR): Métrica de David H. Bailey que ajusta el Sharpe Ratio por el número de estrategias probadas
- White's Reality Check: Test estadístico de Sullivan, Timmermann y White (1999) que evalúa si la mejor estrategia encontrada realmente supera al benchmark tras considerar todas las variantes probadas
- Pre-especificar hipótesis: Documenta tu estrategia ANTES de ver los resultados
- Out-of-sample: Reserva datos que nunca uses para generar ideas
- Menos parámetros: Cuantos menos "diales", menor riesgo de snooping
Slippage y comisiones: el coste invisible
Un backtest sin slippage y comisiones es fantasía. He visto estrategias de scalping que parecían rentables pero invertían la curva de equity al añadir costes realistas.
"Cualquier backtest que no modele comisiones y slippage no debe considerarse representativo de la estrategia." — Trader profesional anónimo
Cada trade tiene un coste real que va mucho mas alla de la comision del broker. Para calcular el impacto verdadero, utiliza estas formulas:
Slippage estimado por lado:
Slippage = spread medio / 2 + impacto de mercado
El impacto de mercado depende del volumen de tu orden en relacion al volumen medio del activo. A mayor tamaño relativo, mayor slippage.
Coste total por trade (ida y vuelta):
Coste = comision entrada + comision salida + slippage entrada + slippage salida
Cada trade tiene 4 impactos de coste. Un scalper con 50 trades diarios sufre 200 impactos de coste al dia. Por eso las estrategias de alta frecuencia son tan sensibles a costes.
El slippage tipico en futuros ES (E-mini S&P 500) es aproximadamente $12.50 por lado (1 tick) en condiciones normales, pero puede superar $50 en eventos de alta volatilidad como publicaciones de datos macroeconomicos o decisiones de la Fed. Incluir estos escenarios extremos en tu backtest es clave para evaluar la robustez real de la estrategia.
Cuanto slippage incluir por activo
| Activo | Slippage típico (por lado) | En condiciones adversas |
|---|---|---|
| ES (S&P 500 Futures) | ~$12.50 | $25-50 |
| NQ (Nasdaq Futures) | ~$20 | $40-80 |
| Acciones/ETFs líquidos (SPY) | $0.02-0.05 | $0.10-0.20 |
| Acciones pequeñas | $0.05-0.15 | $0.30+ |
| EUR/USD (Forex) | 0.5-1 pip | 2-5 pips |
| Crypto (BTC/USDT) | 0.01% - 0.05% | 0.1% - 0.5% |
| Futuros iliquidos (KC, OJ) | $20-40 | $50-100+ |
Regla del 2%
El slippage no debería superar el 2% del valor del trade. Si lo supera, probablemente estás operando un activo demasiado ilíquido para tu tamaño de posición.
Tests de estrés para slippage y comisiones
Nuestra herramienta Algo Strategy Analyzer incluye tests de estrés que simulan aumentos de slippage y comisiones. Puedes ver cómo se comportaría tu estrategia si los costes reales fueran 2x o 3x mayores de lo esperado - algo común en condiciones de alta volatilidad.
Comisiones que cambian la ecuación
Las comisiones varían enormemente entre brokers y tipos de cuenta. Una estrategia de scalping que hace 50 operaciones diarias con $5 de comisión por trade paga $250/día = $62,500/año solo en comisiones.
Para datos de mercado de calidad también hay que considerar los costes de suscripción.
Datos intrabar: lo que no ves te mata
Las barras son agregaciones. Esconden todo el movimiento que ocurrió durante su formación. Un backtest que solo usa barras asume que el precio fue en línea recta de apertura a cierre. Irreal.
El problema de backtestear en barras
Imagina una barra de 30 minutos verde (cierre > apertura). Tu backtest asume que el precio subió continuamente. Pero si miras el gráfico de 1 minuto del mismo período, verás:
- El precio subió, luego cayó 2%, luego volvió a subir
- Tu stop loss de 1.5% se habría ejecutado a mitad de la barra
- Pero el backtest no lo sabe, porque solo ve el cierre verde
Comparativa: ejecución de trades con y sin datos intrabar
Escenario: una vela cuyo rango incluye tanto el nivel de entrada como el stop loss
Asume que el precio subió directo de apertura a cierre, pasando por entrada sin tocar el stop.
Ve que primero tocó entrada, luego bajó al stop loss, y finalmente subió. El trade cerró en pérdida.
Mismo trade, resultados opuestos. Sin datos intrabar, el backtest miente.
Este problema afecta a todas las plataformas
El problema de los datos intrabar no depende de la plataforma sino de la lógica del backtest. TradingView, TradeStation, NinjaTrader, MultiCharts - todas usan barras por defecto. Si no activas la opción de datos intrabar, los stops y targets pueden ignorarse completamente durante la simulación.
Bar Magnifier y alternativas
La solución es activar datos intrabar:
| Plataforma | Opción | Ubicación |
|---|---|---|
| TradeStation | Look-Inside-Bar Backesting | Format Strategy → Properties → General |
| MultiCharts | Bar Magnifier | Strategy Properties → Backtesting |
| NinjaTrader | Tick Replay | Strategy Analyzer → Data Series |
| TradingView | Bar Magnifier / Amplificador de barras | Strategy Settings → Properties → Execution |
En Python con Backtrader o similares, puedes usar dos datasets: uno para las señales (30M) y otro para los stops/targets (1M o tick).
Spot vs Futuro: productos diferentes
Backtestear en el índice SPX y operar futuros ES es comparar manzanas con naranjas. Son productos relacionados pero con dinámicas distintas.
Diferencias críticas
Spot/Índice
- Precio "teórico" del activo
- Sin expiración
- No incluye costes de carry
- Dividendos incluidos en el precio
Futuro
- Contrato derivado
- Expira (roll cada trimestre)
- Contango/backwardation afecta precio
- Dividendos NO incluidos
El problema del roll
Los futuros expiran. Cada trimestre (o mes, según el producto) tienes que "rodar" al siguiente contrato. Esto tiene un coste:
- Contango: El futuro siguiente es más caro → pierdes en el roll
- Backwardation: El futuro siguiente es más barato → ganas en el roll
Un backtest en datos spot ignora este coste. En materias primas con contango fuerte (VIX, petróleo), el roll puede costar un 15-20% anual que tu backtest no muestra.
Solución
Backtestea con datos de futuros continuos ajustados (backadjusted). O usa el contrato real y programa el roll manualmente. Nunca backtestees en spot si vas a operar futuros.
Cómo hacer un backtest que NO mienta
No existe el backtest perfecto, pero puedes minimizar las mentiras. Aquí la checklist que uso antes de confiar en cualquier resultado.
Checklist de Validación de Backtest
Si pasas todos los puntos, tienes un backtest en el que puedes empezar a confiar. Pero aún no es garantía de éxito en real. Para eso necesitas la validación completa: Walk Forward, Monte Carlo, y paper trading.
Conclusión
Los backtests mienten. Es su estado natural. No por malicia, sino porque simular el pasado es inherentemente imperfecto. Tu trabajo como trader algorítmico es minimizar las mentiras, no eliminarlas.
Los 7 sesgos que hemos visto (look-ahead, survivorship, overfitting, data snooping, sin costes, sin intrabar, spot/futuro) son los mas peligrosos porque son invisibles. Una curva de equity perfecta es la mayor senal de alerta. Presta especial atencion al drawdown en trading: si tu backtest muestra un drawdown maximo inferior al 5%, es casi seguro que hay sobreajuste.
El verdadero valor de un backtest no es validar estrategias ganadoras. Es descartar las perdedoras. Si tu estrategia sobrevive a un backtest riguroso, tienes algo que vale la pena probar en real. Si no lo sobrevive, mejor saberlo antes de arriesgar dinero.
El siguiente paso es aprender a validar correctamente las estrategias que pasen esta primera prueba.
Valida tu estrategia con rigor profesional
Walk Forward, Monte Carlo, métricas avanzadas. Descubre si tu backtest dice la verdad antes de arriesgar capital real.
Validar mi estrategia gratis →