El futuro de MQL5 es MQL5+ o incluso MQL6 - página 8

 
Karputov Vladimir:

No sé lo que es probar simultáneamente en varios TFs, pero el hecho de no poder cambiar a otros TFs al menos después de probar no es bueno. Bueno, el cambio durante las pruebas visuales sería impresionante.
 

El futuro... Bueno, bueno. "Gracias, es divertido" (c).



 
Al optimizar, me gustaría ver el resultado de la ejecución en forma de porcentaje, en lugar de los números que aparecen en la columna "Resultado". Y en el backtest estaría bien que el resultado "Beneficio neto" tuviera un beneficio en %.
 
Rinat Tukaev:
Al optimizar, me gustaría ver el resultado de la ejecución en forma de porcentaje, en lugar de los números que aparecen en la columna "Resultado". Y en el backtest, estaría bien que el resultado "Beneficio neto" tuviera un beneficio en %.
Inserte su fórmula en el manejador del evento OnTester() y vea el resultado que necesita.
 
Yury Reshetov:
Inserte su fórmula en el manejador del evento OnTester() y vea el resultado que necesita.
¡Gracias! No lo sabía)
 
Sugiero hacer que las variables globales del programa no se crucen con las variables y parámetros de los plugins en MQL4 y MQL5. Declaré una variable 'punto' en mi Asesor Experto y ahora estoy recibiendo un montón de mensajes como: "La declaración de 'punto' oculta la declaración global en el archivo 'expert.mq4' en la línea 153 ChartObject.mqh 154 39". Es horrible cuando no se puede declarar una variable en un módulo, programa, que está en los parámetros de otro módulo. ¿Por qué el módulo ChartObject.mqh necesita ver mi Asesor Experto, expert.mq4, si ChartObject.mqh no lo declara explícitamente?
 
Mihail Matkovskij:
Sugiero hacer que las variables globales del programa no se crucen con las variables y parámetros de los plugins en MQL4 y MQL5. Declaré una variable 'punto' en mi Asesor Experto y ahora estoy recibiendo un montón de mensajes como: "La declaración de 'punto' oculta la declaración global en el archivo 'expert.mq4' en la línea 153 ChartObject.mqh 154 39". Es horrible cuando no se puede declarar una variable en un módulo, programa, que está en los parámetros de otro módulo. ¿Por qué el módulo ChartObject.mqh necesita ver mi Asesor Experto, expert.mq4, si ChartObject.mqh no lo declara explícitamente?
Obviamente te ayudaría
#property strict
 
Igor Volodin:
Obviamente te ayudará.
Sí, tengo esta línea en mi EA, pero no está en el módulo ChartObject.mqh. No voy a reescribir todos los módulos estándar por ello...
 
Mihail Matkovskij:
Sí, tengo esta línea en mi Asesor Experto, pero no está en el módulo ChartObject.mqh. No voy a reescribir todos los módulos estándar por ello...


Lo tengo. En ese caso, no cree variables globales. Puedes prescindir de ellos. Si no, con cualquier coincidencia, por ejemplo, un nombre muy común:

int i;

declarados globalmente serán sobrescritos por los declarados localmente. Esto es lo que se advierte.

Y el plugin no tiene ámbito propio, no es un módulo, es sólo un trozo de código que se insertará donde se escriba include.

 
Igor Volodin:


Lo tengo. Entonces no cree variables globales. Puedes prescindir de ellos.

¿Cómo que no los crean? En cualquier lenguaje de programación las variables globales se usan libremente y no pasa nada, pero el compilador lo jura. El error no es crucial, pero sigue siendo un inconveniente.

double point = MarketInfo(EA_Symbol(), MODE_POINT);

El punto variable informa del precio de 1 punto y es un sustituto del Punto estándar. La función MarketInfo(EA_Symbol(), MODE_POINT) da el precio de 1 punto para cualquier símbolo. Además, el punto de la variable se puede utilizar en cualquier función, en el cuerpo de la EA, si es una variable global, por supuesto. Estoy de acuerdo en que estos casos causan algunos inconvenientes con bastante frecuencia (si ciertamente tiene experiencia en la programación MQL). Y aunque se pueden evitar, la pregunta es por qué, si en otras lenguas modernas esos problemas simplemente no existen.