Hora universal
En MQL5, puede averiguar la hora GMT global (UTC) basándote en la hora local del ordenador y su zona horaria.
datetime TimeGMT()
datetime TimeGMT(MqlDateTime &dt)
La función devuelve la hora GMT en el formato datetime, contándola a partir de la hora local del ordenador, y teniendo en cuenta la transición al horario de invierno o verano.
Fórmula de cálculo generalizada:
TimeGMT() = TimeLocal() + TimeGMTOffset() |
Así, la precisión de la representación de la hora universal depende de la correcta configuración del reloj del ordenador local. Lo ideal es que el valor recuperado coincida con el valor conocido por el servidor.
Para las estrategias de trading basadas en noticias económicas externas, lo más fácil es utilizar calendarios en la zona horaria GMT: así se puede hacer un seguimiento de los eventos venideros TimeGMT. Para vincular un evento a la hora del servidor en el gráfico, debe corregir el evento para la diferencia entre la zona horaria del servidor y GMT (TimeTradeServer() - TimeGMT()). Pero recuerde que MQL5 tiene su propio calendariointegrado.
int TimeGMTOffset()
La función devuelve la diferencia actual entre GMT y la hora local del ordenador en segundos, basada en la configuración de zona horaria de Windows, teniendo en cuenta el horario de verano actual. En la mayoría de los casos, la zona horaria se indica como un número entero de horas respecto a GMT, por lo que TimeGMTOffset es igual a la zona horaria multiplicada por -3600 (convertido a segundos). Por ejemplo, en invierno la zona horaria puede ser igual a UTC + 2, lo que da un desfase de -7200, y en verano puede ser UTC + 3, lo que da -10800. El signo menos es necesario porque las zonas horarias positivas, al convertir su hora a GMT, requieren restar el número de segundos mencionado, y las negativas requieren sumarlos.
Un script que usa TimeGMT y TimeGMTOffset se mostró en la sección anterior.