¿Cuándo consideráis que un backtest deja de ser fiable?

Llevo un tiempo trabajando con sistemas automáticos y hay una cuestión que cada vez me parece más importante: ¿cuánta confianza podemos depositar realmente en un backtest?

Un EA puede mostrar resultados excelentes durante varios años y aun así fracasar cuando pasa a demo o real. No necesariamente porque el backtest esté mal hecho, sino por factores como el spread, slippage, comisiones, calidad de los datos, latencia o simplemente sobreoptimización.

Personalmente, cada vez me interesa menos encontrar el backtest con mayor beneficio y más comprobar qué tan robusto es el sistema cuando las condiciones dejan de ser ideales.

Por ejemplo: cambiar ligeramente los parámetros, aumentar costes de ejecución, probar periodos que no participaron en la optimización, separar datos in-sample/out-of-sample o realizar Monte Carlo.

Me gustaría conocer cómo lo hacéis vosotros.

¿Qué pruebas consideráis imprescindibles antes de pasar un EA de backtest a una cuenta real?

¿Walk-forward? ¿Monte Carlo? ¿Forward test? ¿Pruebas con spreads y slippage más agresivos? ¿Un periodo mínimo de datos?

Creo que puede salir un debate interesante porque muchas veces nos centramos en el beneficio y el drawdown del backtest, cuando quizá la pregunta más importante es cuánto empeoran los resultados cuando sometemos el sistema a condiciones diferentes.

Abel Masferrer Vinolas:
La cuestión es interesante, pero creo que el título plantea mal el problema. Un backtest no deja de ser fiable porque el EA falle después en real; puede haber reproducido perfectamente el histórico.

Lo que realmente estás intentando medir con walk-forward, out-of-sample, Monte Carlo, variación de parámetros, etc. no es la fiabilidad del backtest, sino la robustez y capacidad de generalización de la estrategia.

Para mí esa distinción es importante, porque un backtest puede ser técnicamente impecable y, aun así, estar evaluando una estrategia completamente sobreajustada.
Miguel Angel Vico Alba #:
La cuestión es interesante, pero creo que el título plantea mal el problema. Un backtest no deja de ser fiable porque el EA falle después en real; puede haber reproducido perfectamente el histórico.

Lo que realmente estás intentando medir con walk-forward, out-of-sample, Monte Carlo, variación de parámetros, etc. no es la fiabilidad del backtest, sino la robustez y capacidad de generalización de la estrategia.

Para mí esa distinción es importante, porque un backtest puede ser técnicamente impecable y, aun así, estar evaluando una estrategia completamente sobreajustada.
Buen punto. Estoy de acuerdo en que hay que separar la fiabilidad del backtest de la robustez y capacidad de generalización de la estrategia.
Lo que realmente me interesa es lo segundo: ¿qué combinación de out-of-sample, walk-forward, Monte Carlo y variación de parámetros consideras suficiente para tener evidencia razonable de que un EA es robusto y no simplemente está sobreajustado al histórico?

Abel, coincido con Miguel Ángel en la distinción. Sobre tu pregunta: ninguna combinación es «suficiente». Ninguna prueba demuestra que un EA es robusto; lo que hacen es acumular evidencia o quitártela. Lo que para mí es imprescindible:


1. Saber cuántas configuraciones has probado. Bailey, López de Prado y otros (2014) mostraron que con 5 años de datos y estrategias sin ventaja real, basta probar unas 45 configuraciones independientes para encontrar casi seguro una con Sharpe anual de 1 en el in-sample, con un Sharpe esperado fuera de muestra de cero. Una optimización de MT5 prueba miles.


2. Meseta, no pico. Si al mover un poco los parámetros el resultado se hunde, es ruido. Busca una zona amplia donde casi todas las configuraciones cumplan tus mínimos y elige su centro, aunque no sea la número 1 de la tabla.


3. Fuera de muestra usado una sola vez. Si miras el forward, ajustas y vuelves a optimizar, el forward ya es in-sample. Que empeore algo es normal; lo preocupante es que las mejores pasadas del in-sample se hundan.


4. Operaciones, no años. Con pocas operaciones la incertidumbre es enorme. Y si quitando las 5 mejores el sistema queda plano, la ventaja es frágil.


5. Costes más duros. Spread, comisión y slippage al alza. Si con costes x1,5 la ventaja desaparece, no hay colchón para la vida real.


6. Monte Carlo, sabiendo lo que mide. Sirve para dimensionar el drawdown y las rachas de pérdidas, pero no detecta el sobreajuste: usa las mismas operaciones del backtest.


Después, demo o real con riesgo mínimo, comparando con lo esperado. Si tuviera que quedarme con tres: meseta, fuera de muestra limpio y suficientes operaciones.


(Por transparencia: estoy desarrollando Orometra, una herramienta gratuita que hace parte de esto a partir del XML de la optimización de MT5.)