Tu código no sale de tu ordenador en ningún momento. No nos lo mandas, no lo vemos y no lo ejecutamos nosotros. Lo que recibimos es un fichero con números.
Si ya te manejas con MT5, aquí está todo en cuatro líneas
Nivel 1: clic derecho en la pestaña de resultados del Probador → guardar el informe.
Nivel 2: los .opt de Tester\cache, si alguna vez optimizaste.
Nivel 3: copia Botospy.mqh en MQL5\Include, añade #include <Botospy.mqh> arriba de tu .mq5 y recompila.
Lanza una optimización completa (lenta), nunca la genética, con 2-3 parámetros y entre 30 y 150 combinaciones en total.
Al terminar, mándanos MQL5\Files\botospy_matrix.csv.
Y antes de nada: si tu bot escribe algún fichero mientras opera, haz una copia. En una optimización se ejecuta cientos de veces y lo va pisando.
Antes de empezar: una copia de seguridad
Piensa un momento si tu bot escribe algún fichero mientras opera: un registro de operaciones, un CSV, un informe. Si es así, haz una copia antes de seguir.
El motivo no es obvio: en una optimización tu bot no se ejecuta una vez, se ejecuta cientos. Si siempre escribe en el mismo sitio, cada ejecución pisa a la anterior, y acabas con el fichero de la última combinación probada — que no es la configuración que tú usas.
Nos pasó con nuestro propio bot. Perdimos el fichero de referencia y hubo que regenerarlo. Por eso está aquí arriba y no en una nota al final.
Nivel 1 — El informe que ya tienes
Si solo quieres saber qué podemos medirte, con esto basta para empezar. No hay que tocar nada del bot.
1
Abre el Probador de Estrategias
Menú Ver → Probador de estrategias, o el atajoCtrl+R. Se abre un panel en la parte de abajo: ahí vive todo lo que viene después, también en los niveles siguientes.
De paso fíjate en Símbolos, unas líneas más arriba de ese mismo menú. Lo necesitarás al final, para el histórico de precios.
2
Manda el informe que ya tengas guardado
Si ya has guardado alguna vez el informe de un backtest, ese fichero nos vale: lleva el resumen y la lista de operaciones, que es todo lo que necesita el nivel 1.
¿No lo tienes guardado y no encuentras cómo?Escríbenos y lo vemos contigo. La ruta exacta cambia entre versiones de MT5, y preferimos no ponerte aquí unos clics que quizá no coincidan con tu pantalla — si acabas dando vueltas por menús que no existen, la guía te está estorbando en vez de ayudarte.
Y si te resulta más cómodo, sáltate este nivel: con la matriz de optimización del nivel 3 tenemos bastante más, y esa sí está documentada aquí paso a paso.
Nivel 2 — El fichero que tu MT5 ya generó solo
Si alguna vez has optimizado tu bot, MT5 guardó el resultado de todas las pasadas sin que tú hicieras nada. Ese fichero es valioso para nosotros y no te cuesta ningún trabajo: solo hay que ir a buscarlo.
Con él calculamos cuántas veces buscaste de verdad y corregimos tu Sharpe por esa búsqueda. Es la diferencia entre creerte un buen resultado y saber cuánto de él es mérito.
1
Ve a la carpeta de datos
Menú Archivo → Abrir carpeta de datos, igual que antes. Pero esta vez, en lugar de entrar en MQL5, entra en la carpeta Tester y dentro en cache.
2
Coge los ficheros .opt
Ahí dentro hay ficheros con extensión .opt. Cada uno corresponde a una optimización que lanzaste en su día.
Mándanos el que corresponda al bot y al periodo que estás auditando. Si no sabes cuál es, mándanos los que haya y ya los identificamos nosotros: llevan dentro el nombre del experto.
¿No hay ninguno? Entonces nunca has optimizado ese bot en este ordenador, y este nivel no aplica. Pasa directamente al nivel 3, que además da más información.
Nivel 3 — La matriz de optimización
Esto es lo que desbloquea la prueba de sobreoptimización, que es la que de verdad distingue una estrategia de una casualidad bien elegida. Unos diez minutos de preparación; luego corre sola.
1
Pon nuestro fichero en su sitio
Te enviamos un fichero llamado Botospy.mqh. La carpeta de MT5 está escondida en un sitio raro de Windows, así que no la busques a mano: el propio MT5 te la abre.
Menú Archivo → Abrir carpeta de datos
Entra en la carpeta MQL5
Dentro, entra en Include
Pega ahí Botospy.mqh
123
2
Añade una línea a tu bot
Abre MetaEditor (viene con MT5: menúHerramientas, o la tecla F4) y carga el .mq5 de tu bot.
Arriba del todo verás un bloque de líneas que empiezan por#include. Añade la nuestra al final de ese bloque:
#include <Botospy.mqh>
Guarda y compila. Si compila sin errores, listo.
3
Prepara la optimización
En el Probador, pestaña Configuración. De toda esa pantalla solo tienes que tocar cuatro campos; el resto puedes dejarlo como esté.
Tu bot. En Experto eliges el archivo de tu robot, el mismo con el que trabajas siempre.
Todo tu periodo. En Intervalo, las fechas completas que usaste al desarrollarlo — no un trozo. Si acortas el periodo estás decidiendo tú qué parte de tu historial se audita, y eso es justo lo que no queremos.
Ticks reales. En Modelado, la opción de máximo detalle. Los modos rápidos se inventan cómo se movió el precio dentro de cada vela, y ese invento siempre favorece al resultado: se saltan stops que en la realidad sí habrían saltado. Es la diferencia entre una prueba y una ilusión.
Tu capital real. En Depósito inicial, el dinero con el que piensas operar de verdad. No es un detalle: la pérdida máxima en porcentaje se calcula sobre esa cifra, así que un depósito inventado te devuelve un riesgo inventado.
Lo único que no puedes elegir a tu gusto: entre las fichas de modo verás «Optimización genética» junto a «Optimización completa». La genética suena mejor porque es mucho más rápida. No la elijas. Es rápida precisamente porque se salta combinaciones: va descartando caminos que no le convencen. Y nosotros necesitamos verlastodas, también las malas — son justo las que dicen si tu bot aguanta. Elige «Optimización completa», aunque tarde más.
Con esto la prueba ya está configurada. El botónEmpezar está abajo a la derecha del panel — pero no lo pulses todavía: antes hay que elegir qué parámetros probar, que es el paso siguiente.
12
4
Elige qué parámetros probar
Pestaña Parámetros de entrada. A la izquierda de cada fila hay una casilla; marcarla significa «prueba varios valores de este», y activa tres columnas: el valor más bajo, de cuánto en cuánto sube, y el más alto. La última columna te dice cuántos valores saldrán.
Marca dos o tres parámetros, no más. Lo que importa es el total de combinaciones: multiplica los «pasos» de todos los que hayas marcado.
Total de combinaciones
¿Sirve?
Menos de 20
Se queda corto
Entre 30 y 150
Perfecto
Más de 300
No aporta más y tardas muchísimo
¿Los nombres no se parecen a nada de lo que te hemos dicho? Es normal y tiene solución. Sigue leyendo justo debajo.
Si los nombres no coinciden, no te estás equivocando
Estas dos imágenes son la misma pantalla, solo movida con la rueda del ratón. Arriba los parámetros aparecen comoInpVerbose o InpTB_TP1_Mult. Abajo, como «Max VolExp simultáneos» o «% caída desde pico».
No es un fallo tuyo ni nuestro: cuando el autor del bot escribe un comentario junto a un parámetro, MT5 muestra el comentario y esconde el nombre real. Y como cada bot lo escribe en su idioma —muchos vienen en ruso o en inglés—, lo que ves en tu pantalla puede no parecerse a nada.
Por eso nunca te diremos «marca InpEntryZ»: ese texto puede no existir en ninguna parte de tu pantalla. Te diremos dónde está.
El truco de los treinta segundos
Y si aun así necesitas los nombres de verdad, hay una forma de sacarlos todos de golpe:
Sitúate sobre la columna Variable.
Pulsa Ctrl+C. Ojo: no hay opción «Copiar» en el menú del botón derecho, tiene que ser el atajo.
Abre el Bloc de notas y pega con Ctrl+V.
Salen todos los nombres reales, y de propina el rango completo de cada uno:
nombre = valor || empezar || paso || fin || ¿marcado?
Así que de un vistazo ves también qué parámetros están marcados para optimizar: son los que acaban en Y. Es la forma más rápida de comprobar que has marcado lo que querías antes de lanzar una optimización de varias horas.
5
Lánzala y mira los primeros diez minutos
Pulsa Empezar. No hace falta que la vigiles entera, pero quédate los primeros diez minutos.
El fallo que más aparece es un error de espacio en disco, y siempre al arrancar: MT5 prepara los datos de precios en todos los núcleos a la vez y ocupa bastante de golpe. Si lo ves, párala, haz sitio y vuelve a lanzarla. Si pasan diez minutos y va bien, ya puedes dejarla sola.
6
Mándanos el fichero
Al terminar, vuelve a Archivo → Abrir carpeta de datos, entra en MQL5 y esta vez en Files. Ahí estará:
botospy_matrix.csv
Ese es el que necesitamos. Del resto nos encargamos nosotros.
Aparte: el histórico de precios de tu instrumento
Esto no es un nivel más ni depende de los anteriores: se puede mandar junto a cualquiera de ellos, y es un fichero que tu MT5 ya tiene.
Con él comprobamos algo que ninguna otra prueba puede: si los precios a los que tu bot dice haber entrado existieron de verdad en ese momento. Cogemos cada operación y miramos qué llegó a cotizarse esa hora. Si un precio queda fuera de lo que el mercado registró, esa operación no pudo ejecutarse como se declara.
Es el único hallazgo que no admite discusión, porque no es nuestro análisis contra tu plataforma: es tu informe contra los precios que registró el mercado.
1
Exporta las barras de tu instrumento
Menú Ver → Símbolos (o Ctrl+U), busca el instrumento con el que opera tu bot y entra en la pestañaBarras.
Elige el mismo marco temporal que usa tu bot (H1, M15…). No cojas M1 «por si acaso»: son millones de filas y no aportan nada si tu bot opera en otra escala.
Pon las mismas fechas que cubre tu backtest.
Pulsa Solicitar. Hasta que no lo pulses la tabla aparece vacía — no es que hayas hecho algo mal.
Con la tabla ya cargada, usa el botón de exportar para guardarla en un fichero.
Sale un fichero de texto de varios megas. Es normal.
2
Comprueba que es del mismo bróker
Ábrelo con el Bloc de notas para confirmar que tiene buena pinta: una cabecera con <DATE>, <TIME>,<OPEN>, <HIGH>,<LOW> y <CLOSE>, y debajo una fila por cada hora.
Importante: tiene que ser del bróker con el que hiciste el backtest. Los precios difieren entre brókeres, y si no coinciden lo detectamos y te lo decimos en vez de darte un resultado equivocado.
Lo mismo con la hora: si tu histórico viene de otro servidor con otro huso, lo detectamos y lo corregimos solos. No tienes que hacer nada.
Qué le estás mandando exactamente
Es normal querer saberlo antes de enviar nada. El fichero llevauna fila por cada combinación que probaste: el resultado mes a mes de esa combinación y los valores numéricos de los parámetros que usó.
No lleva tu código, ni tu lógica de entrada, ni nada que permita reconstruir cómo decide tu bot. Son números de resultado.