Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1350

 
Evgeny Dyuka #:

... En relación con la pregunta anterior

¿Existe la posibilidad de un buffer de intercambio entre el Asesor Experto y los indicadores abiertos en el mismo gráfico?
Es decir, el Asesor Experto pone algo ahí, y los indicadores leen algo de él.

Base de datos
 
Aliaksandr Hryshyn #:
Base de datos
Sí, esta es la mejor opción, especialmente si se sube a un marco
 

Me he encontrado con un extraño problema. Mientras se ejecuta el EA, a veces el EA se termina debido a la división por cero.

C (HYDR-12.21,M2)  zero divide in 'C.mqh' (1321,60)

Aquí está la línea 1321.

 if( B != 0 && A/B > 1.1)

¿Cómo es posible? Porque en la primera condición "B" no es igual a cero. Así que en el segundo caso no puede ser la división por cero también. ¿O es que las condiciones se comprueban fuera de orden?

 
pivomoe #:

Enfrentados a un problema confuso.

Dices bien, las condiciones se comprueban en orden. Si la primera es falsa, la segunda no se comprueba.

Sin embargo, su terminal está jurando el carácter 60 de la cadena, mientras que la división es como máximo 17. Quizás no sea 'C.mqh' lo que estás viendo.


También me gusta hacerlo así:

if(A > B*1.1)
 
Aleksei Stepanenko #:

Sin embargo, tienes el terminal jurando en el carácter 60 de la cadena, y la división es como máximo 17.

He cambiado la cadena para facilitar la lectura. Aquí está el original.

if( BestSymmaSchtrafov != 0 && IdealnaySymmaSchtrafov/BestSymmaSchtrafov > 1.1)

El signo de división está exactamente en la posición 60.

 

Haz una huella "B" delante de la condición. ¿Qué va a escribir?


if( BestSymmaSchtrafov != 0)
   {
   printf(BestSymmaSchtrafov);
   if(IdealnaySymmaSchtrafov/BestSymmaSchtrafov > 1.1)
       {

       }
   }
 
Lo intentaré. Pero, por desgracia, sólo se produce en la vida real. Y muy raramente. Tenemos que esperar...
 
pivomoe #:
Lo probaré. Pero, por desgracia, las chispas sólo en real. Y muy raramente. Tenemos que esperar...

Hago como Alexei, 2 si. En un ifa con AND lógico también se captó la división por cero en los siguientes ANDs. Con 2 ifas se solucionó el problema.

 
Valeriy Yastremskiy #:

Y también estaba cogiendo la división por cero en las siguientes E. Dos IPHs resolvieron el problema.

Gracias.

 
He eliminado todo Lo que no te gusta ha sido eliminado. ¡¡El cierre sigue en marcha!!
Razón de la queja: