Problema con el Probador de Estrategias (Strategy Tester) MT4

 

Saludos a todos.

Tengo un problema muy singular con el Probador de estrategias de la plataforma MetaTrader 4 (MT4)

Al realizar pruebas de cualquier EA, en el Strategy Tester, estos no se ejecutan de forma correcta, por lo que no hace lo que se les pide que hagan. El problema está en la "asignación de valores" a las variables que se utilizan en el mismo EA, para poder evaluar las condicionantes IF y que ejecuten las acciones correspondientes dependiendo de su valor.

¿Por que lo digo? Me di a la tarea de investigar este problema y comencé a incorporar instrucciones Print() y Comment(), para que paso a paso, durante la ejecución del EA, se pudiera ver los distintos valores que cada una de dichas variables contienen en cada uno de los paso dentro del proceso del EA.  Al hacerlo, miré que todas las variables "bool" invariablemente contienes el valor "false" y de la misma forma, todas las variables "int" y "double" contienen el valor " 2147483647.0". De este particular número investigué que es un "vacío" (no hay valor) en la variable. Únicamente las variables (string) si contienen algún valor, pero que de cualquier forma no lo toman en consideración.  Lo anterior se observa a lo largo de todo el proceso hasta el término del  test. Esto se ve claramente en el siguiente ejemplo copiado directo la sección Junal de Strategy Tester:

2021.11.17 06:57:05.661 2021.11.01 00:30:00  PQM_EA_TrendLine_V8 USDJPY,M15:   Valor Compra=  2147483647.0 / Valor Venta= 2147483647.0  Precio_1=  2147483647.0 / Precio_2=  2147483647.0  Tendencia= Bajista.

Todos los AEs están sin errores y perfectamente compilados, con todas las variables correctamente definidas y quizá sea algo en la lógica del AE.

Al momento de ejecutarlos ya en la plataforma, de forma real (cuenta demo), es cuando se observa que las variables sí llegan a contener los valores correctos, sin embargo tampoco el MetaTrader 4 los toma en consideración.

Pensando que pudiera ser el MetaTrader o MetaEditor del brocker que estoy utilizando (DarwinEX), baje el de otro broker (IC Market), obteniendo exactamente los mismos resultados.

Pensando fuera el ordenador en el que se tiene instalado el MT4, también baje e instalé las dos plataformas mencionadas en otro ordenador, obteniendo nuevamente los mismos resultados.


Esperando contar con la ayuda de alguien que domina el MegaTrader 4, quedo atento a sus apreciables comentarios.


¡Saludos!


P. Quijano 


Simulación de estrategias - Trading algorítmico, robots comerciales - Guía de ayuda de MetaTrader 5
Simulación de estrategias - Trading algorítmico, robots comerciales - Guía de ayuda de MetaTrader 5
  • www.metatrader5.com
El Probador de Estrategias permite probar y optimizar las estrategias comerciales ( Asesores Expertos ) antes de empezar a utilizarlas en el...
 
Pablo Quijano:

Saludos a todos.

Tengo un problema muy singular con el Probador de estrategias de la plataforma MetaTrader 4 (MT4)

Al realizar pruebas de cualquier EA, en el Strategy Tester, estos no se ejecutan de forma correcta, por lo que no hace lo que se les pide que hagan. El problema está en la "asignación de valores" a las variables que se utilizan en el mismo EA, para poder evaluar las condicionantes IF y que ejecuten las acciones correspondientes dependiendo de su valor.

¿Por que lo digo? Me di a la tarea de investigar este problema y comencé a incorporar instrucciones Print() y Comment(), para que paso a paso, durante la ejecución del EA, se pudiera ver los distintos valores que cada una de dichas variables contienen en cada uno de los paso dentro del proceso del EA.  Al hacerlo, miré que todas las variables "bool" invariablemente contienes el valor "false" y de la misma forma, todas las variables "int" y "double" contienen el valor " 2147483647.0". De este particular número investigué que es un "vacío" (no hay valor) en la variable. Únicamente las variables (string) si contienen algún valor, pero que de cualquier forma no lo toman en consideración.  Lo anterior se observa a lo largo de todo el proceso hasta el término del  test. Esto se ve claramente en el siguiente ejemplo copiado directo la sección Junal de Strategy Tester:

2021.11.17 06:57:05.661 2021.11.01 00:30:00  PQM_EA_TrendLine_V8 USDJPY,M15:   Valor Compra=  2147483647.0 / Valor Venta= 2147483647.0  Precio_1=  2147483647.0 / Precio_2=  2147483647.0  Tendencia= Bajista.

Todos los AEs están sin errores y perfectamente compilados, con todas las variables correctamente definidas y quizá sea algo en la lógica del AE.

Al momento de ejecutarlos ya en la plataforma, de forma real (cuenta demo), es cuando se observa que las variables sí llegan a contener los valores correctos, sin embargo tampoco el MetaTrader 4 los toma en consideración.

Pensando que pudiera ser el MetaTrader o MetaEditor del brocker que estoy utilizando (DarwinEX), baje el de otro broker (IC Market), obteniendo exactamente los mismos resultados.

Pensando fuera el ordenador en el que se tiene instalado el MT4, también baje e instalé las dos plataformas mencionadas en otro ordenador, obteniendo nuevamente los mismos resultados.


Esperando contar con la ayuda de alguien que domina el MegaTrader 4, quedo atento a sus apreciables comentarios.


¡Saludos!


P. Quijano 


Si dices que en cuenta real te funciona imagino que es un problema de la instalación, a mí me pasa algo parecido con el cálculo de lotes para los pares de JPY en este PC y no sé cómo solucionarlo.

 
Pablo Quijano:

Saludos a todos.

todas las variables "int" y "double" contienen el valor " 2147483647.0". De este particular número investigué que es un "vacío" (no hay valor) en la variable. Únicamente las variables (string) si contienen algún valor, pero que de cualquier forma no lo toman en consideración.  Lo anterior se observa a lo largo de todo el proceso hasta el término del  test. Esto se ve claramente en el siguiente ejemplo copiado directo la sección Junal de Strategy Tester:

2021.11.17 06:57:05.661 2021.11.01 00:30:00  PQM_EA_TrendLine_V8 USDJPY,M15:   Valor Compra=  2147483647.0 / Valor Venta= 2147483647.0  Precio_1=  2147483647.0 / Precio_2=  2147483647.0  Tendencia= Bajista.

 



Hola. Esto que comentas suena muy raro. No puede ser que todas las variables tengan el mismo valor. 

Por ejemplo, ¿si pones la siguiente instrucción en tu código te da también el valor " 2147483647.0" ?

      double VarTest1=123.45;
      Comment(StringFormat("El valor de VarTest1 es:  %f",VarTest1));
Razón de la queja: