La versión de DealingWithTime.mqh v. 1.01 del artículo "Gestionando el Horario (Parte 2): Funciones" ( https://www.mql5.com/es/articles/9929 ) dejó de funcionar porque MetaQuotes cambió el comportamiento de CopyTime() y ahora ya no funcionan algún tiempo después de la publicación de este artículo. Ahora esta función ya no devuelve valores de tiempo futuros si son mayores que TimeCurrent() especificado para los parámetros start_time y/o stop_time. En su lugar, el tiempo de apertura de la última barra actual se devuelve como el mayor valor posible.
Dado que el final de la sesión de FX se determinó de esta manera para determinar la compensación de tiempo del corredor, ¡esto ahora conduce a valores incorrectos!
Este cálculo se modificó en la versión 2.03. Esta versión ya está disponible en CodeBase aquí: https://www.mql5.com/en/code/45287 .
Pero también se cambió por completo el cálculo del cambio de hora, por lo que ahora se cubren los tiempos complicados del cambio de hora desde Sídney (Australia) hasta los años 70.
También se adjunta la tabla DST 1975 - 2030.xlsx como archivo zip con todos los cambios de hora desde los años 70 para que todos puedan verificar el correcto funcionamiento de las fórmulas, aquí hay una serie de ejemplos de la tabla:
El 1 de enero de 1982 es la hora estándar en EE. UU. (DST==0) y el próximo cambio será el 25 de abril de 1982, el último (25 del mes) domingo de abril (4). La tabla ya está ordenada por zona horaria geográfica (columna A), luego por zona horaria del año (columna L, spr=primavera, aut=otoño) y finalmente por fecha de consulta (columna C). La tabla puede ser creada automáticamente por el EA incluido (un script no puede ejecutarse en modo de depuración). Test_DST 2.mq5 si lo ejecuta en modo de depuración y copia las líneas del registro diario en el depurador y las pega en una hoja de cálculo; El separador de celdas sería el espacio.
Además, ahora hay una función nueva y simple, SecTillClose(), que le brinda el tiempo restante en segundos (la moneda de tiempo de MetaQuotes) hasta que se cierre el mercado de divisas, sin CopyTime(). Esto es interesante para aquellos que quieren cerrar sus posiciones antes del fin de semana o no quieren abrir una nueva posición en un período definido antes del fin de semana.
El indicador incluido DealingWithTime_TestIndi.mq5, como comentario en el gráfico, muestra no solo el horario de verano en Europa, EE.UU. y Australia (Sídney), sino también la hora actual y la diferencia horaria de varias ciudades. Aquí puede encontrar una tabla con diferentes horas locales de las principales ciudades para comparar: https://www.timeanddate.com/worldclock/ . Por lo tanto, puede comprobar los valores en cualquier momento. Este indicador también muestra cómo se determinan y usan estos valores (qué resta o agrega), lo que facilita su uso: copiar y pegar, la forma más rápida de programación.
Las dos últimas líneas también muestran el último segundo de la sesión FX actual y el tiempo restante en horas (que es más fácil de juzgar) y en segundos. En Nueva York, cuando la sesión de FX cierra a las 5:00 p.m., hora local, un viernes, no hay una barra válida abierta a las 5:00 p.m., hora de Nueva York. Por lo tanto, en esta función, se resta 1 segundo para obtener el último tiempo de apertura válido de la última barra en el tiempo del corredor. Sin embargo, algunos corredores finalizan su sesión de FX unos minutos antes y ya no brindan precios ni aceptan órdenes comerciales.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Gestionando el Horario (Parte 2): Funciones:
Determinando la compensación del bróker y la hora GMT de forma automática. En lugar de pedir ayuda a su bróker, de quien probablemente recibirá una respuesta insuficiente (quién estaría dispuesto a explicar dónde se ha metido la hora faltante), simplemente nos fijaremos en cómo estos calculan sus precios en las semanas de cambio horario, pero evitando engorrosos cálculos manuales: un programa se encargará de ello, después de todo, ¿para qué tenemos un PC?
Antes de las funciones en el archivo de inclusión DealingWithTime.mqh (y después de la sustitución de la macros), declararemos las variables necesarias como variables globales:
Estas variables DST_USD, DST_EUR... contendrán el cambio horario real de los EE.UU., la UE, etcétera, y serán actualizados y configurados por nuestras funciones. En el horario de invierno, que es el horario normal, serán iguales a cero: la hora no se cambia en ese periodo.
Después de ello, tendremos las variables para la próxima vez que se produzca el cambio de hora. Se necesitarán principalmente para saber cuándo requerimos un nuevo cálculo para ahorrar los recursos de la CPU:
Analizaremos la situación rusa más adelante en este mismo artículo.
Esta estructura y su variable global son el corazón de todo. :)
Asignaremos las compensaciones del bróker para los tres periodos relevantes y la duración del mercado fórex estará abierta en estos periodos, tanto para el valor real como para un conjunto de sencilla verificación, si los valores han sido asignados. La variable global se llama OffsetBroker, y la encontraremos varias veces.
Autor: Carl Schreiber