EventSetMillisecondTimer

Esta función indica al Terminal de Cliente que los eventos del temporizador para este EA o indicador deben generarse con una periodicidad inferior a un segundo.

bool  EventSetMillisecondTimer(
   int  milliseconds      // cantidad de milisegundos
   );

Parámetros

milliseconds

[in]  Cantidad de milisegundos que determina la frecuencia de los eventos del temporizador.

Valor devuelto

En caso de la ejecución exitosa devuelve true, de lo contrario false. Para obtener el código del error, hay que llamar a la función GetLastError().

Nota

Esta función sirve para los casos cuando se requiere un temporizador de alta resolución. Es decir, cuando es necesario obtener los eventos del temporizador con más frecuencia que una vez al segundo. Si un temporizador con el período más de 1 segundo es suficiente para Ustes, utilice la función EventSetTimer().

En el Probador de Estrategias se utiliza un intervalo mínimo de 1000 milisegundos. En general, con la disminución del período del temporizador se aumenta el tiempo de simulación, puesto que sube el número de llamadas al manejador de eventos del temporizador. Cuando se trabaja en tiempo real, los eventos del temporizador se generan con una frecuencia no más de 1 vez en cada 10-16 milisegundos, esto está relacionado con las limitaciones de hardware.

Por lo común, esta función debe llamarse desde la función OnInit() o en el constructor de la clase. Un EA o un indicador tiene que tener la función OnTimer() para poder manejar los eventos que llegan desde el temporizador.

Cada EA y cada indicador trabaja con su propio temporizador y recibe los eventos sólo de él. Cuando un programa mql5 finaliza su trabajo, el temporizador se destruye de manera forzada en caso si ha sido creado pero no ha sido desactivado por la función EventKillTimer().

Se puede iniciar sólo un temporizador para cada programa. Cada programa mql5 y cada gráfico tienen su propia cola de eventos en la que se colocan todos los eventos según vayan llegando. Si en la cola ya hay un evento Timer, o este evento se encuentra en el proceso de procesamiento, entonces el nuevo evento Timer no se coloca en la cola del programa mql5.