Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1590

 
законопослушный гражданин:

Lo ajusto de la siguiente manera:

1.Hago clic en el deslizador una vez, entonces el ratón se puede mover, lo principal es no hacer clic en otros espacios

2.Lo ajusto pulsando las flechas del teclado - más rápido más lento

P.D., sobre el probador de estrategias incorporado en MT4

Eh, sería un cuento de hadas si pudieras hacer clic en un gráfico y el efecto de las teclas de acceso rápido no se reseteara. Pero es mejor que nada
 

Ha surgido una pregunta. ¿Tiene sentido declarar variables estáticas en el ámbito global?

En el local entiendo que no hay visibilidad fuera del cuerpo de la función y se guardan los valores de la llamada anterior.

¿Y qué sentido tiene una global?

 
Valeriy Yastremskiy:

Ha surgido una pregunta. ¿Tiene sentido declarar variables estáticas en el ámbito global?

En el local entiendo que no hay visibilidad fuera del cuerpo de la función y se guardan los valores de la llamada anterior.

¿Y qué sentido tendría una global?

Sólo si se puede cambiar en diferentes funciones

 
MakarFX:

Sólo si puede cambiar en diferentes funciones

No lo entiendo) La variable global también cambia en diferentes funciones. La variable stat.en este caso no es diferente de la variable global habitual. Y la memoria se encuentra en el pool global. De la referencia:

Variables

Existen tres clases de memoria: estática, de entrada y externa. Estos modificadores de clase de memoria indican explícitamente al compilador que las variables correspondientes se asignan en una zona predefinida de la memoria, llamada pool global.

A veces me encuentro con variables estáticas declaradas en el ámbito global del código. No puedo entender la lógica de los autores.

 
Valeriy Yastremskiy:

No lo entiendo) Global también cambia en diferentes funciones. En este caso no es diferente de una variable global normal. Y la memoria se encuentra en el pool global. De la referencia:

Variables

Existen tres clases de memoria: estática, de entrada y externa. Estos modificadores de clase de memoria indican explícitamente al compilador que las variables correspondientes se asignan en una zona predefinida de la memoria, llamada pool global.

A veces me encuentro con variables estáticas declaradas en elámbito global delcódigo. No puedo entender la lógica de los autores.

Sí, tienes razón y no hay lógica. Así es como lo ve el autor del código.

Mi post anterior no estaba bien pensado.

 

Valeriy Yastremskiy:

No entiendo la lógica de los autores.

No hay lógica, sólo esquizofrenia. La expresión "aceite mantecoso" es una definición tan educada de "esquizofrenia".

 
MakarFX:

Sí, tienes razón y no hay lógica. Es sólo cómo lo ve el autor del código.

Alexey Viktorov:

No hay lógica, sólo esquizofrenia. La expresión "engrasado" es una definición tan educada de "esquizofrenia".

Gracias, a veces es difícil encontrar la lógica del autor a través del código))))

 
MakarFX:

¿Podría aconsejarnos?

Cómo devolver el lote inicial -Lot, (para abrir la siguiente orden), tras la ejecución de esta parte de la función:

if(GetProfitFromStart()>CountProfit || GetProfitFromStart()<CountLoss*-1)
     {
      if (IsTesting()) 
        {
         CloseOrder(); ObjectSetInteger(0,"lab_Button",OBJPROP_STATE,false);
        }
      else
        {
         CloseOrder();
        }
     }
Archivos adjuntos:
 
законопослушный гражданин:

¿Podría aconsejarnos?

cómo devolver el lote inicial -Lot, (para abrir la siguiente orden), tras la ejecución de esta parte de la función:

después de

CloseOrder();
añadir
Start = TimeCurrent();
 

con la estática en mql todo se ejecuta y está lleno de errores. El código siempre se construye/compila como un todo, sin obj intermedio y la declaración de estática es sólo un tributo a la tradición.

Si uno usa estática en mql - eso es casi 100% del mundo C/C++/C# ; o uno se asoma e imita ridículamente :-)

pero también hay __hilo__ :-)

Razón de la queja: