A lo largo de estos años he hecho miles de backtest y optimizaciones. En muchas ocasiones he usado esos backtest y optimizaciones para animarme a ir a cuenta real. ¿Y cual ha sido el resultado? En un porcentaje altisimo, un fraude: no se comportaba igual, ni parecido, en real que en backtest. Incluso, una vez el EA corriendo en real y viendo operaciones que no me cuadraban en el real, repetia un backtest sobre ese mismo periodo que habia quedado confirmado por un forward test y la operacion no aparecia en el backtest !!!!
Llegue a pensar lo mismo que muchos: que los backtest de MT4, como poco, no son fiables. Y como mucho, que no valen para nada.
PERO no me rendí. Intenté comprender por qué no funcionaban esos backtest. En realidad, uno de los pilares del Trading Cuantitativo es poder probar una
estrategia con datos pasados, o incluso ficticios, y que esos resultados te den cierto nivel de certeza con lo que va a hacer a continuación.
Bueno, pues tras meses preguntándomelo empecé a entender lo que ocurría: mi EA detectaba
señales en la
vela actual en TF de M1. Al estar testeando TODOS los tick, la
señal no tenía por qué producirse en la apertura o en el cierre, sino en cualquier momento. Y como ya sabéis,
MT4 no almacena datos de ticks, sino que los interpola. Así pude ver que ese EA tenía cierto grado de "aleatoriedad" en sus backtest: podía ser solo 1 o 2 operaciones de miles, en varios años, pero había aleatoriedad en el sentido de que en algunos backtest abría esas órdenes (1 o 2) que en otros no.
Aquí os mando un ejemplo de backtest poco fiable: uno hecho en
Renko que parece un "Holy Grail", frente a lo que sería más posiblemente su backtest real: el "real" es simulación en Excel, y el "Grial" es en MT4. La diferencia está en que MT4 detecta muchas operaciones de pérdida de 0
pips -
spread, cuando en realidad esa pérdida es de X pips (caja renko) - spread , que es lo que se corrige en el Excel.
En definitiva:
hay que conocer MT4 hasta las entrañas, y saber fielmente lo que está haciendo. Y si te encuentras un problema de este estilo, seguramente hay solución. Por ejemplo, para el primer caso, el del indicador que pinta en la vela actual, es tan sencillo como usar un indicador que pinte no en la vela actual, sino en la vela terminada, y que no dependa de los ticks, sino de aperturas y o cierres de las
velas.
Y en el segundo caso, con el backtest Renko, usar otras herramientas, como Excel en mi caso.
Tendremos problemas si ignoramos cómo funciona MT4, y backtest con "bugs" generan pérdidas en cuentas reales... Lo digo por propia experiencia.
Si nos ceñimos a los que MT4 sí puede hacer, que es tratar datos de M1, no tendremos ningún problema y nuestros backtest sí que serán fiables (con precisión máxima de M1, no de ticks).