Cómo hacemos los backtests
Casi todo lo que probamos, lo descartamos
Un backtest positivo no demuestra nada: es fácil conseguirlo y es lo que enseña todo el mundo. Lo que decide si un sistema vale es el listón que tiene que pasar y cuántas cosas se han tirado por no pasarlo. Este es el nuestro, entero.
El listón
Siete pruebas
Se aplican en este orden. Cada una ha tumbado sistemas que parecían buenos, y las docenas de estrategias descartadas están registradas con su motivo.
01
El listón no es ganar dinero
Colocar las mismas operaciones al azar sobre la misma serie ya sale positivo, porque los mercados suben. El listón de cada sistema se calcula: es el percentil 90 de esa distribución aleatoria, y cambia según cuánto dure cada operación. Hemos medido sistemas con profit factor 1,21 que no llegan al listón, y otros con 1,15 que lo superan.
02
Monte Carlo: 3.000 recolocaciones
Se cogen las operaciones reales del sistema —misma dirección, misma duración, mismo volumen— y se sueltan en instantes aleatorios de la serie real, tres mil veces. Lo único que cambia es el momento de entrar. Si el resultado real no bate a esa nube, lo que hay es exposición al mercado, no ventaja.
03
Entrenamiento y validación, separados
Los parámetros se eligen mirando solo el tramo antiguo. El tramo reciente no se toca hasta el final, y tiene que pasar las pruebas por su cuenta. Un sistema que solo funciona en el tramo con el que se ajustó no es un sistema, es una descripción del pasado.
04
El precio de haber probado mucho
Si pruebas 272 combinaciones y te quedas con la mejor, esa mejor ya es buena por puro azar. Así que el listón sube según cuántas cosas se hayan probado. Es la prueba que más candidatas ha tumbado, y la que casi nadie aplica.
05
¿De cuántas operaciones vive?
Se mide qué parte del resultado aportan las 5, 10 y 16 mejores operaciones. Si sin ellas el sistema es negativo, hay que decirlo antes de alquilarlo, no después: significa que las rachas largas sin una de esas operaciones son lo normal y no una señal de avería.
06
Paridad Python ↔ MetaTrader
El sistema se porta a MQL5 y se corre en el Strategy Tester con el spread y el swap reales del bróker. Tiene que dar lo mismo que el motor de Python. Esta prueba ha suspendido a tres de los cuatro sistemas que han llegado a ella: por eso se hace pronto y no al final.
07
Stress de costes y segundo proveedor de datos
Se sube artificialmente el coste por operación hasta encontrar el punto en el que el sistema deja de ser rentable, y se repite el backtest con datos de otro proveedor. Un sistema que solo aguanta su coste exacto, o que solo existe en un feed de datos, no llega a la calle.
Qué no hacemos
- Enseñar la curva de beneficio del tramo con el que se ajustaron los parámetros.
- Presentar como ventaja una mejora que solo viene de operar menos.
- Comparar un sistema contra no hacer nada, en vez de contra mantener la posición un número fijo de velas.
- Publicar un resultado sin decir con qué modelo de riesgo se midió.
- Llamar validado a un sistema que no ha pasado por el Strategy Tester con costes reales.
Las cifras de esta página proceden de backtests sobre datos históricos. Ninguno de estos sistemas acumula histórico de operativa en cuenta real. Un backtest mide cómo se habría comportado el sistema en el pasado y no garantiza ningún resultado futuro. Alquilar un sistema es alquilar software: no gestiono tu capital, no te recomiendo qué invertir y las decisiones de operativa son siempre tuyas. Operar en mercados financieros conlleva riesgo de pérdida, incluida la pérdida total del capital.