Backtesting y realidad: esa esperanza perfecta te está mintiendo
Tu backtest: esperanza de 8R. Factor de beneficio 3,5. 50.000 $ de ganancia sobre una cuenta de 10.000 $.
Pasas a real. Primera semana: esperanza de -2R. Factor de beneficio 0,4. Cuenta un 12 % abajo.
¿Qué ha pasado? Tu backtest mintió.
🚨 Hablando claro
La mayoría de los backtests son pura fantasía. Dan por hechas ejecuciones perfectas, cero slippage, ningún spread y entradas mágicas que no existen en el mercado real.
Si tu backtest parece demasiado bueno para ser cierto, lo es. Te has ajustado al ruido, no a la señal.
En esta lección aprenderás:
- Por qué el 90 % de los backtests fracasa al pasar a real
- Los 4 pecados capitales: sobreajuste, sesgo de anticipación, costes irreales y sesgo de supervivencia
- Cómo modelar el slippage y los spreads de forma que reflejen la realidad
- Dentro de muestra frente a fuera de muestra (la única validación que importa)
⚡ Logros rápidos para mañana (haz clic para desplegar)
- Añade costes realistas a tu backtest — Incluye un 0,03-0,05 % de slippage por operación más el spread real. Si los resultados se hunden, tu ventaja era falsa.
- Divide tus datos 70/30 — Optimiza sobre el 70 % de los datos y valida sobre el 30 % que nunca has visto. Si falla fuera de muestra, has sobreajustado.
- Opera en simulado 30 días antes de pasar a real — Si los resultados en simulado difieren mucho del backtest, algo va mal. No pases a real hasta que coincidan.
Ejemplo real: cómo un backtest «perfecto» con esperanza de 1,3R se convirtió en un desastre de -0,45R en real
Contexto: En marzo de 2024, Chris (ejemplo compuesto) desarrolló una estrategia de rupturas tras 6 meses de optimización. El backtest tenía una pinta increíble: esperanza de 1,3R, factor de beneficio 4,9 y 67 % de aciertos, probado sobre 2 años de datos del SPY (2022-2023). En abril de 2024 puso 50.000 $ a trabajar. Para junio de 2024 la cuenta perdía 8.400 $ (-16,8 %). Esta es la autopsia completa.
El backtest «perfecto» (datos de 2022-2023)
| Métrica | Valor | Lo que pensaba Chris |
|---|---|---|
| Operaciones totales | 156 | Buen tamaño de muestra |
| Tasa de acierto | 67.3% (105W / 51L) | «¡Increíble! Muy por encima de la media.» |
| Ganancia media / pérdida media | +2.4R / -1R | «Excelente R:R, los ganadores son 2,4× los perdedores.» |
| Factor de beneficio | 4.9 | «Un número de nivel profesional.» |
| Esperanza | +1,3R por operación | «Territorio del santo grial.» |
| Máximo drawdown | -8.2% | «Un drawdown minúsculo. Segurísimo.» |
| Rentabilidad total (2 años) | +$40,600 (+406%) | «Es esta. Dejo mi trabajo.» |
El proceso de optimización de Chris:
- Probó 50 periodos de EMA distintos (encontró que EMA(34) era «perfecta»)
- Probó 20 multiplicadores de ATR para los stops (encontró que 1,47× ATR era «óptimo»)
- Probó 15 niveles de objetivo (encontró que 2,8R era «el mejor»)
- Estrategia final: cruce de EMA(34) + stop a 1,47× ATR + objetivo de 2,8R
- Combinaciones probadas en total: 50 × 20 × 15 = 15.000 variantes
Lo que Chris no incluyó en el backtest:
- El slippage (dio por hechas ejecuciones perfectas a precios exactos)
- La horquilla de compra-venta (dio por hecho un spread de cero)
- Las comisiones (se olvidó de modelarlas)
- El rechazo de órdenes (dio por hecho un 100 % de ejecución)
- La prueba fuera de muestra (nunca la probó sobre datos no vistos)
La realidad en real (abril-junio de 2024, 10 semanas)
| Métrica | Backtest | Realidad en real | Diferencia |
|---|---|---|---|
| Tasa de acierto | 67.3% | 51.4% (19W / 18L) | -15,9 puntos peor |
| Ganancia media | +2.4R (+$1,200) | +1.8R (+$900) | -25 % más pequeña |
| Pérdida media | -1R (-$500) | -1.3R (-$650) | -30 % más grande |
| Factor de beneficio | 4.9 | 1.46 | -70 % de hundimiento |
| Esperanza | +1.3R | -0,45R neto de costes | -1,75R NEGATIVO |
| Máximo drawdown | -8.2% | -21.4% | 2,6× peor |
| Rentabilidad total (10 semanas) | +9.600 $ proyectados | -$8,400 (-16.8%) | 18.000 $ de diferencia |
La contabilidad completa: adónde fueron a parar los 18.000 $
| Categoría de coste | Descripción | Impacto |
|---|---|---|
| 1. Sobreajuste (curva ajustada) | EMA(34) + 1,47× ATR funcionaba a la perfección con los datos de 2022-2023, pero estaba optimizado al ruido histórico. Las condiciones de 2024 = otro ruido. | -$6,200 |
| 2. Slippage (no modelado) | Un 0,08 % de slippage medio por operación × 25.000 $ de posición media × 37 operaciones de ida y vuelta = 1.480 $ en costes de slippage | -$1,480 |
| 3. Horquilla de compra-venta | Spread del SPY 0,01 $ × 500 acciones de media × 37 operaciones = 185 $. Opciones (usadas para apalancar) spread = 0,03 $ por acción × 100 acciones por contrato × 20 contratos × 37 operaciones = 2.220 $ de coste total de spread | -$2,405 |
| 4. Comisiones | Opciones: 0,65 $ por contrato × 20 contratos × 37 operaciones × 2 (ida y vuelta) = 962 $ | -$962 |
| 5. Rechazo de órdenes | En 8 operaciones las órdenes limitadas nunca se ejecutaron (se perdieron 5 ganadoras y 3 perdedoras). Coste de oportunidad neto: 5 ganadoras a +1,8R perdidas (-9R) menos 3 perdedoras a -1,3R evitadas (+3,9R) = -5,1R = 2.550 $ | -$2,550 |
| 6. Sesgo de anticipación | El código del backtest usaba close[0] para calcular la entrada y entraba en el cierre de esa misma vela (imposible en real). En real se entra en la apertura de la vela siguiente. Una entrada un 0,3 % peor de media = 2.775 $ de deterioro | -$2,775 |
| 7. Retrasos de ejecución | Latencia de la plataforma + tiempo de revisión de la orden = 2-8 segundos de retraso. Las rupturas rápidas se movían un 0,15 % de media antes de ejecutarse = 1.387 $ de slippage por retrasos | -$1,387 |
| DETERIORO TOTAL RESPECTO AL BACKTEST: | -$17,759 | |
Las cuentas:
- Beneficio proyectado por el backtest (10 semanas): +9.600 $
- Menos costes de deterioro: -17.759 $
- Resultado esperado en real: -8.159 $
- Resultado real: -8.400 $, es decir, la contabilidad se queda a 250 $ de lo que ocurrió de verdad
Lo que se debería haber hecho: la validación correcta
| Paso | Lo que hizo Chris (mal) | Lo que debería hacerse (bien) |
|---|---|---|
| 1. División de los datos | Usó todos los datos de 2022-2023 para optimizar | Usar 2022 para optimizar y reservar 2023 para la prueba fuera de muestra |
| 2. Optimización | Probó 15.000 combinaciones de parámetros | Usar parámetros estándar (EMA 20/50, stops a 2× ATR). Limitar las pruebas a menos de 10 variantes |
| 3. Modelado de costes | Dio por hechos unos costes de cero | Modelar un 0,10 % de slippage + 0,01 $ de spread + 2 $ de comisión por operación = -30 $ por operación como mínimo |
| 4. Comprobación de anticipación | Usó el cierre de la misma vela para la señal y la ejecución | Señal en close[0], ejecución en open[1] (vela siguiente). Un calendario realista. |
| 5. Prueba fuera de muestra | Nunca la probó sobre datos no vistos | Probar sobre los datos de 2023 (intactos). Si el resultado se deteriora más de un 30 %, la estrategia está sobreajustada |
| 6. Walk-forward | Un único periodo de backtest | Ventanas de optimización de 6 meses, prueba sobre los 3 meses siguientes. Repetir avanzando. Comprobar la consistencia. |
La prueba fuera de muestra que Chris debería haber hecho
El método correcto:
- Periodo dentro de muestra: Optimizar solo sobre los datos de 2022 (no tocar 2023)
- Encontrar los parámetros: EMA(34) + 1,47× ATR (mismo resultado, pero usando solo 2022)
- Congelar los parámetros: NO MÁS CAMBIOS. Los parámetros quedan fijados.
- Prueba fuera de muestra: Ejecutar exactamente esos parámetros sobre los datos de 2023
- Comparar resultados: Si el resultado de 2023 queda por debajo del 70 % del de 2022, la estrategia está sobreajustada
Lo que habría pasado:
| Periodo | Esperanza | Factor de beneficio | Veredicto |
|---|---|---|---|
| 2022 (dentro de muestra) | +1.4R | 3.1 | Rendimiento optimizado |
| 2023 (fuera de muestra) | +0.4R | 1.4 | ⚠️ 71 % de deterioro |
| Conclusión: La estrategia está gravemente sobreajustada. La esperanza de 2023 es el 29 % de la de 2022. Con costes realistas (-30 $ por operación = -0,15R), la esperanza neta queda en +0,25R (apenas por encima de cero). NO DESPLEGAR. | |||
La lección: el backtest de Chris era una fantasía. Probar 15.000 combinaciones de parámetros garantiza que encontrarás una que encaje a la perfección con el ruido histórico. Aquella esperanza «perfecta» de 1,3R era basura sobreajustada. Una prueba fuera de muestra lo habría revelado antes de perder 8.400 $. El backtesting no consiste en encontrar el mejor resultado histórico, sino en encontrar lo que funcionará de aquí en adelante. Y para eso hacen falta datos no vistos, costes realistas y cero sesgo de anticipación.
Por qué tu estrategia perfecta fracasará en real
Empecemos por la verdad incómoda: si optimizaste una estrategia para que encajara con datos históricos, no encontraste una ventaja. Encontraste ruido.
Ajustar la curva al ruido aleatorio
Qué es: Optimizar parámetros hasta que el backtest se ve perfecto
Ejemplo:
- Pruebas 100 periodos de EMA distintos (10, 11, 12… 110)
- EMA(47) da una esperanza de 4,2R en el backtest
- Crees que has encontrado el «número mágico»
Realidad: EMA(47) simplemente encajaba por casualidad con ese conjunto de datos concreto. ¿Y en la prueba hacia delante? Esperanza de -0,8R. Aprendiste el ruido, no la señal.
Mejor: Limita la optimización. Usa parámetros estándar. Prueba sobre datos no vistos.
Usar datos del futuro (imposible operando en real)
Qué es: Código que «espía» velas futuras para tomar decisiones actuales
Ejemplo:
if close[0] > high[5]: # usa las 5 velas FUTURAS
enter_long()
El problema: En el backtesting tienes datos del futuro. Operando en real, no.
Realidad: Este código sencillamente no puede ejecutarse en real. Tu backtest está probando una estrategia que no existe.
Mejor: Usa solo los datos disponibles en el momento de decidir.
Dar por hechas ejecuciones perfectas a precios perfectos
Supuesto del backtest: «Compro a 100,00 $ exactos»
Realidad: La orden a mercado se ejecuta a 100,12 $ (spread + slippage)
Impacto a lo largo de 100 operaciones:
- Beneficio del backtest: 5.000 $
- Coste del spread (0,10 $ por operación): -1.000 $
- Slippage (0,05 $ por operación): -500 $
- Comisiones (2 $ por operación): -200 $
Realidad: Beneficio real = 3.300 $ (un 34 % menos que el backtest)
Probar solo sobre los supervivientes
Qué es: Hacer backtesting solo sobre los valores actuales del S&P 500
El problema: Estás dejando fuera más de 200 valores que fueron excluidos del índice o quebraron
Ejemplo:
- Backtest sobre la lista del S&P 500 de 2024: esperanza de 1,8R, factor de beneficio 2,1
- Pero a lo largo de ese periodo habrías estado comprado en Hertz (quiebra en 2020), SVB Financial (colapso en 2023) y en cualquier otro nombre que se fue a cero.
Realidad: Tu esperanza deja fuera las pérdidas catastróficas de las exclusiones. Esperanza real: -0,2R (un sistema perdedor).
💡 El momento de la verdad
Un backtest no es la realidad. Es una simulación. Y si tu simulación incluye supuestos imposibles, tus resultados en real serán igual de imposibles.
Los costes ocultos que matan estrategias
Esto es lo que la mayoría de los backtests ignora, y por eso el tuyo es probablemente un 20-40 % demasiado optimista:
Paso 1: modelar la horquilla de compra-venta
Qué es: La diferencia entre el precio de compra y el de venta
Ejemplo:
- SPY demanda: 450,00 $ / oferta: 450,01 $ → spread = 0,01 $
- Compras: pagas 450,01 $ (media horquilla = 0,005 $)
- Vendes: recibes 450,00 $ (media horquilla = 0,005 $)
Coste por ida y vuelta: $0.01
Para 1.000 acciones: 0,01 $ × 1.000 = 10 $ por operación
100 operaciones: 1.000 $ en costes de spread
Paso 2: modelar el slippage
Qué es: Diferencia entre el precio buscado y la ejecución real
Slippage realista según las condiciones:
- Liquidez normal: 0.01-0.02%
- Mercados volátiles: 0.05-0.10%
- Liquidez escasa: 0.10-0.30%
- Posición de gran tamaño: 0.20-0.50%
Supuesto conservador: 0,05 % por operación
Posición de 10.000 $ × 0,05 % = 5 $ de slippage por lado = 10 $ de ida y vuelta
Paso 3: modelar las comisiones
Ejemplo: Interactive Brokers
- 0,005 $ por acción, 1 $ de mínimo
- 200 acciones × 0,005 $ = 1 $ por lado
- Ida y vuelta = 2 $
100 operaciones: 200 $ en comisiones
Paso 4: coste realista total
Por operación (ida y vuelta):
- Spread: 10 $
- Slippage: 10 $
- Comisión: 2 $
Total: 22 $ por operación
Si tu estrategia gana 50 $ brutos por operación → 28 $ netos (¡un 44 % menos!)
Ejemplo de ajuste del backtest
Antes y después de aplicar costes realistas
Estrategia: 100 operaciones, 50 $ de beneficio medio por operación
Backtest (fantasía):
100 operaciones × 50 $ = 5.000 $ de beneficio
Después de aplicar costes realistas:
- Bruto: 5.000 $
- Spread: -1.000 $
- Slippage: -1.000 $
- Comisiones: -200 $
Beneficio neto: 2.800 $ (un 44 % menos)
La única validación que importa
Así es como validan una estrategia los profesionales:
Divide tus datos en dos periodos.
- Dentro de muestra (60-70 %): Aquí desarrollas y optimizas tu estrategia
- Fuera de muestra (30-40 %): Validación sobre datos NO VISTOS
🎯 Ejemplo: 6 años de datos (2018-2024)
Dentro de muestra: 2018-2022 (optimiza aquí)
- Prueba distintos parámetros
- Encuentra las reglas con mejor rendimiento
- Afina la lógica de entrada y salida
Fuera de muestra: 2023-2024 (valida aquí)
- Ejecuta la estrategia sin NINGÚN cambio
- Compara el rendimiento con el de dentro de muestra
- Si es parecido → ¡no está sobreajustada!
- Si es mucho peor → sobreajustada al ruido de dentro de muestra
Señales de alarma de sobreajuste
🚩 Indicios de que tu estrategia tiene la curva ajustada
- Sharpe superior a 3,0: Demasiado bueno para ser cierto
- Esperanza superior a 5R: Extremadamente raro (revisa tus supuestos de ejecución)
- Solo 20-30 operaciones: Muestra demasiado pequeña (estadísticamente irrelevante)
- Curva de capital perfecta: Una línea lisa sin drawdowns (imposible)
- Probada sobre un solo activo: Probablemente ajustada a ese régimen concreto
- 10 o más parámetros optimizados: Has ajustado el ruido, no la señal
El método de validación profesional
Dentro de muestra frente a fuera de muestra está bien. Walk-forward está mejor.
Cómo funciona:
📊 El marco walk-forward
Periodo 1: Entrena con 2018-2019 → prueba sobre 2020
Periodo 2: Entrena con 2019-2020 → prueba sobre 2021
Periodo 3: Entrena con 2020-2021 → prueba sobre 2022
Periodo 4: Entrena con 2021-2022 → prueba sobre 2023
Si es consistente en todos los periodos: Estrategia robusta
Si el rendimiento se deteriora: Sobreajustada o dependiente del régimen
🎓 Ideas clave
- Modela costes realistas: Spread, slippage y comisiones (un 20-40 % menos de beneficio)
- Evita el sobreajuste: Limita los parámetros y prueba en varios mercados
- Dentro de muestra frente a fuera de muestra: Desarrolla sobre el 60-70 %, valida sobre el 30-40 %
- Prueba walk-forward: Verifica la consistencia a lo largo de los periodos
- Señales de alarma: Sharpe superior a 3,0, esperanza superior a 5R, menos de 30 operaciones
- Prueba hacia delante antes de ir a real: Simulado durante 3-6 meses como mínimo
🎯 Práctica de validación de backtest
Ejercicio: valida tu estrategia con el detector de señales de alarma
Coge tu estrategia actual (o una que estés valorando) y pásala por la validación:
- Haz el backtest sobre el 60 % de tus datos (dentro de muestra). Anota: operaciones, esperanza, Sharpe y DD máximo
- Identifica los parámetros usados (EMAs, umbrales, etc.). ¿Los optimizaste probando varios valores?
- Prueba sobre el 40 % restante (fuera de muestra). Compara los resultados con los de dentro de muestra.
- Usa la tarjeta de validación de la plantilla (8 categorías, 60 puntos como máximo)
- Calcula tu puntuación: 50-60 = adelante, 40-49 = revisar, menos de 40 = descartar
- Si la puntuación llega a 50: opera en simulado entre 30 y 60 operaciones antes de pasar a real
Objetivo: Detecta el ajuste de curva, el sesgo de anticipación y los supuestos irreales ANTES de que destrocen tu cuenta real. Mejor descartar una mala estrategia haciendo backtesting que perder dinero de verdad.
🎮 Comprobación rápida
P: Haces el backtest de una estrategia: esperanza de 5,2R, ratio de Sharpe de 4,2, probada sobre 25 operaciones, usando EMA(47) porque fue la que mejor resultado dio tras probar 100 periodos distintos. ¿Qué falla?
Haces el backtest de una estrategia de reversión a la media sobre el SPY de 2010 a 2024. Resultados: esperanza de 2,8R, 68 % de aciertos, 120.000 $ de beneficio. Los datos incluyen solo los componentes actuales del S&P 500 (los valores que hoy están en el índice). Pasas a real en 2025 y fracasa. ¿Qué salió mal?
Haces una prueba walk-forward de tu estrategia: entrenas con 2018-2020 y pruebas sobre 2021 (pasa). Entrenas con 2018-2021 y pruebas sobre 2022 (pasa). Entrenas con 2018-2022 y pruebas sobre 2023 (pasa). No modelaste el slippage ni las comisiones. ¿Deberías operar esta estrategia en real?
En el backtesting, la perfección es sospechosa. El realismo es la ventaja. Modela los costes, evita el sobreajuste y prueba hacia delante, o fracasarás en real.
Lecciones relacionadas
Dominar el diario de trading
Sigue el rendimiento en real y compáralo con los resultados del backtest.
Leer la lección →Tamaño de posición
Aplica un tamaño de posición correcto en los backtests para obtener resultados realistas.
Leer la lección →Reconocimiento de régimen
Prueba tu estrategia en todos los regímenes para comprobar su robustez.
Leer la lección →⏭️ A continuación
Lección #33: gestión avanzada del riesgo — marcos profesionales — Aprende el criterio de Kelly, el tamaño de posición dinámico y los protocolos de drawdown.
Solo con fines educativos. Operar conlleva un riesgo sustancial de pérdida. Los resultados pasados no garantizan resultados futuros.
💬 Debate (0 comentarios)
Cargando comentarios…
¿Listo para operar con Signal Pilot?
Aplica tu formación con indicadores profesionales y herramientas de análisis de mercado en tiempo real.
Volver a Signal Pilot →Solo con fines educativos. Operar conlleva un riesgo sustancial de pérdida. No es asesoramiento financiero. Los resultados pasados no garantizan resultados futuros.