Trabajar con temporizador

Para muchas tareas aplicadas, es importante poder realizar acciones conforme a un horario, con algún intervalo especificado. En MQL5, esta funcionalidad la proporciona el temporizador, un contador de tiempo del sistema que puede configurarse para enviar notificaciones periódicas a un programa MQL.

Existen varias funciones para establecer o cancelar notificaciones de temporizador en la API de MQL5: EventSetTimer, EventSetMillisecondTimer, EventKillTimer. Las propias notificaciones entran en el programa como eventos de un tipo especial: el manejador OnTimer está reservado para ellas en el código fuente. Este grupo de funciones se abordará en este capítulo.

Recuerde que en MQL5 los eventos sólo pueden ser recibidos por programas interactivos que se ejecutan en los gráficos, es decir, indicadores y Asesores Expertos. Scripts y servicios no admiten ningún evento, incluidos los del temporizador.

No obstante, en el capítulo Funciones para trabajar con el tiempo, abordamos ya temas relacionados:

  • Obtener las marcas de tiempo del reloj local o del servidor actual (TimeLocal / TimeCurrent)
  • Pausar la ejecución del programa durante un periodo de tiempo utilizando Sleep
  • Obtener el estado del contador de tiempo del sistema del ordenador, contado desde el inicio del sistema operativo (GetTickCount) o desde el lanzamiento del programa MQL (GetMicrosecondCount)

Estas opciones están abiertas a absolutamente todos los tipos de programas MQL.

En los capítulos anteriores ya hemos utilizado muchas veces las funciones de temporizador, aunque su descripción formal sólo se dará ahora. Debido al hecho de que los eventos de temporizador sólo están disponibles en indicadores o Asesores Expertos, sería difícil estudiarlo antes que los programas en sí. Después de haber dominado la creación de indicadores, el tema de los temporizadores será una continuación lógica.

Básicamente, utilizamos temporizadores para esperar a que se construya la serie temporal. Encontrará ejemplos de ello en las secciones Esperar datos, Indicadores multidivisa y de marco temporal múltiple, Soporte para múltiples símbolos y marcos temporales y Utilización de los indicadores integrados.

Además, cronometramos (cada 5 segundos) el tipo de indicador subordinado en la demostración del indicador «animación» en la sección Borrar instancias de indicadores.