Un EA está sobreoptimizado cuando sus parámetros se ajustaron tanto al pasado que el resultado del backtest ya no dice nada sobre el futuro. La señal más clara es un Sharpe alto que no sobrevive a tres pruebas: descontar el número de configuraciones que probó el optimizador, duplicar los costos y correr el robot en un tramo de datos que nadie tocó. Aquí ves cómo hacer cada prueba con el reporte del tester y el XML de optimización que ya tienes.
Qué hace el optimizador
El optimizador de MT4 y MT5 recorre miles de combinaciones de parámetros y guarda el resultado de cada una. Un rango de 1 a 50 en el periodo de una media móvil y otro de 1 a 100 en el stop ya da cinco mil combinaciones. El optimizador no entiende el mercado: solo mide qué combinación habría dado el mejor resultado en ese historial exacto.
Ese historial incluye ruido: movimientos que no se van a repetir. Cuando pruebas suficientes combinaciones, alguna encaja con el ruido por casualidad y queda primera en la tabla. El vendedor publica esa fila y tú solo ves esa.
Por qué la mejor de muchas luce bien por suerte
Puedes ponerle número a ese efecto. Con tres años de retornos diarios y ninguna ventaja real, la mejor de 10 configuraciones muestra un Sharpe cercano a 0.9. La mejor de 100 llega a 1.5, la mejor de 200 a 1.6 y la mejor de 1,000 a 1.9. Nada de eso es habilidad: es el resultado esperado de elegir el máximo.
El historial corto empeora todo. Con un año de datos, la mejor de 200 configuraciones ronda un Sharpe de 2.8; con dos años, la mejor de 500 ronda 2.2. Con cinco años, la mejor de 50 baja a 1.0.
Pico aislado o meseta
Abre el XML de optimización y ordena las pasadas por resultado. Toma la configuración elegida y mira a sus vecinas: la misma con un parámetro un paso arriba o abajo, todo lo demás igual. Si el stop pasa de 40 a 45 y el resultado cae a la mitad, estás parado en un pico aislado.
Una estrategia que capta algo real se sostiene en una meseta: las vecinas conservan la mayor parte del resultado. Cuenta cuántas vecinas siguen en positivo y qué parte del resultado conserva su mediana; esa cifra te dice más que la curva de capital.
Costos al doble
Muchos robots viven de operaciones pequeñas y frecuentes, donde el costo pesa más que la señal. Vuelve a correr el backtest con el doble del costo por operación que declara el vendedor. Si el resultado se vuelve negativo, el EA no tenía margen, solo costos optimistas.
Haz la misma prueba con el triple y anota en qué costo el resultado llega a cero. Ese costo de equilibrio es el número que debes comparar con el spread real de tu bróker en las horas en que el robot opera, no con el promedio del día.
Un tramo que nunca tocaste
Antes de optimizar, separa el último tramo del historial y no lo abras hasta el final. El optimizador no debe verlo, y tú tampoco. Cuando tengas la configuración final, córrela una sola vez en ese tramo y compara el Sharpe con el del tramo de optimización.
Si vuelves al optimizador después de ver el resultado y ajustas algo, el tramo ya está contaminado y cuenta como una pasada más. Un tramo fuera de muestra sirve una vez. Por eso importa que el vendedor diga qué fechas usó para optimizar y cuáles no.
Qué preguntar al vendedor
Pregunta cuántas pasadas corrió el optimizador en total, no solo cuántas versiones publicó. Pide el XML de optimización completo, no la captura de pantalla de la mejor fila. Pregunta qué fechas quedaron fuera de la optimización y qué costo por operación usó el backtest.
Pide también el reporte del Strategy Tester con los parámetros impresos, para comprobar que coinciden con la pasada que te vende. Sin esas cuatro respuestas no tienes forma de medir lo que compras.
Cómo medirlo en el XML real
El XML de optimización de MT5 guarda cada pasada con sus parámetros y su resultado, así que el número de configuraciones probadas pasa a ser un dato medido, no una declaración. Con ese número y los años del backtest, la calculadora de Rigor te dice qué Sharpe daría la pura suerte y cuánto queda después del descuento. Es gratis y no pide registro.
Si subes el reporte y el XML a una auditoría, Rigor cuenta las configuraciones probadas, calcula el Sharpe deflactado, vuelve a correr los costos a 1x, 2x y 3x con su costo de equilibrio y revisa el tramo fuera de muestra que declares. Cada número sale etiquetado como Medido, Declarado o No medido, para que sepas qué viene del archivo y qué viene del vendedor.
Preguntas frecuentes
¿Cuántos años de datos necesito para confiar en un Sharpe de 1.8?
Depende de cuántas configuraciones se probaron. Con 1,000 intentos hacen falta unos 3.3 años de retornos diarios para que la pura suerte quede por debajo de 1.8. Con menos historial, ese Sharpe cabe dentro de lo que explica el azar.
¿Un forward test de MT5 sustituye al tramo que nunca tocaste?
Solo si lo corriste una vez y no volviste a optimizar después de verlo. Si el vendedor repitió el ciclo varias veces hasta que el forward se vio bien, el forward es otra configuración más, elegida por su resultado.
¿La optimización genética cambia algo?
Sí: el algoritmo genético no prueba todas las vecinas de la configuración elegida, así que al XML pueden faltarle las pasadas que muestran la meseta. Cuando falten, corre una optimización completa en un rango estrecho alrededor de la configuración final.