VasiliKolchanov: Hola a todos, ¿podrían decirme cómo pausar una función, no todo el EA, sino sólo una función, por ejemplo una alerta?
¿Cómo es eso? Hasta ahora, sólo aparece una situación bastante cómica: el hombre sigue, pero deja su cabeza en este lugar por un tiempo. Entonces lo traeremos de vuelta.
VasiliKolchanov: Hola a todos, ¿podrían decirme cómo pausar una función, no todo el EA, sino sólo una función, por ejemplo, las alertas?
Con un programa se puede hacer todo lo que se puede describir con palabras, en tu pregunta has descrito lo que tienes que hacer. Así es como se hace: se describe la variable global (bueno, casi al principio del programa) en el programa: bool pauza=false; Cuando es falso - la función funciona, verdadero - la función se detiene. Ahora la función debe reaccionar a la pauza. Para ello, añada if(pauza)return; al principio de la función, o algo similar en el lugar de la llamada a la función.
Queda en la función principal para comprobar la condición y gestionar la función a través de la variable pauza.
Si necesita controlar desde fuera del programa (desde otro script, Asesor Experto, indicador), entonces utilice la variable global del terminal
¿Cómo es eso? Hasta ahora, sólo aparece una situación bastante cómica: el hombre sigue, pero deja su cabeza en este lugar por un tiempo. Entonces lo traeremos de vuelta.
Activé la alerta en un determinado nivel de precios, hay muchos instrumentos y el precio no se alejará inmediatamente del nivel de acción de la alerta, por supuesto seguirá persiguiendo y persiguiendo. Se puede desactivar la alerta mediante la bandera, pero como hay muchos instrumentos, es fácil olvidarse de activar la alerta, así que para ello necesito desactivarla temporalmente y volver a activarla (o más bien su función) después de un periodo de tiempo determinado.
VasiliKolchanov: Tengo una alerta activada en un determinado nivel de precios, hay muchos instrumentos, y el precio no se aleja inmediatamente del nivel de activación de la alerta, por supuesto que se pica y se pica más. Se puede desactivar la alerta mediante una bandera, pero como hay muchos instrumentos, es fácil olvidarse de activar la alerta, así que para ello necesito desactivarla temporalmente y volver a activarla (o más bien su función) después de un periodo de tiempo determinado.
En este caso, puede establecer un periodo de activación de la alerta. Digamos que en segundos:
inputuint i_uAlertPeriod = 120; // Период отображения Alert, сек.
...
void DoAlert(string sText)
{
staticdatetime dtLastTime = 0;
if (TimeCurrent() - dtLastTime < i_uAlertPeriod)
return;
dtLastTime = TimeCurrent();
Alert(sText);
}
En este caso, se puede establecer un periodo de activación de la alerta. Digamos que en segundos:
Ihor gracias por la respuesta, sólo una pregunta, ¿no será un retraso de la acción, es decir, durante la pausa las alertas se acumularán con cada tick, y cuando el tiempo expire el EA me las seguirá dando (todas acumuladas)? Puede sonar ridículo, pero lo siento novato - estoy aprendiendo.
Todo esto es bastante factible
Hola a todos, ¿podrían decirme cómo pausar una función, no todo el EA, sino sólo una función, por ejemplo una alerta?
¿Cómo es eso? Hasta ahora, sólo aparece una situación bastante cómica: el hombre sigue, pero deja su cabeza en este lugar por un tiempo. Entonces lo traeremos de vuelta.
Probablemente se trate de otra cosa.
Hola a todos, ¿podrían decirme cómo pausar una función, no todo el EA, sino sólo una función, por ejemplo, las alertas?
Con un programa se puede hacer todo lo que se puede describir con palabras, en tu pregunta has descrito lo que tienes que hacer.
Así es como se hace: se describe la variable global (bueno, casi al principio del programa) en el programa: bool pauza=false;
Cuando es falso - la función funciona, verdadero - la función se detiene.
Ahora la función debe reaccionar a la pauza.
Para ello, añada if(pauza)return; al principio de la función, o algo similar en el lugar de la llamada a la función.
Queda en la función principal para comprobar la condición y gestionar la función a través de la variable pauza.
Si necesita controlar desde fuera del programa (desde otro script, Asesor Experto, indicador), entonces utilice la variable global del terminal
¿Cómo es eso? Hasta ahora, sólo aparece una situación bastante cómica: el hombre sigue, pero deja su cabeza en este lugar por un tiempo. Entonces lo traeremos de vuelta.
Debe ser otra cosa.
Tengo una alerta activada en un determinado nivel de precios, hay muchos instrumentos, y el precio no se aleja inmediatamente del nivel de activación de la alerta, por supuesto que se pica y se pica más. Se puede desactivar la alerta mediante una bandera, pero como hay muchos instrumentos, es fácil olvidarse de activar la alerta, así que para ello necesito desactivarla temporalmente y volver a activarla (o más bien su función) después de un periodo de tiempo determinado.
En este caso, puede establecer un periodo de activación de la alerta. Digamos que en segundos:
Necesito tomar los datos de la última operación cerrada, más precisamente, necesito el valor del lote, cómo puedo registrar esto en Mt4
He buscado por todas partes, hay uno para Mt5, pero no para Mt4
Necesito tomar los datos de la última operación cerrada, más precisamente, necesito el valor del lote, cómo puedo registrar esto en Mt4
He buscado por todas partes, hay uno para Mt5, pero no para Mt4
En realidad debería ser al revés)
En este caso, se puede establecer un periodo de activación de la alerta. Digamos que en segundos: