Checking the server time changes due to the daylight saving time (DST) changeover – script MetaTrader 5


Unfortunately, I discovered that some brokers are a bit sloppy with the server time
change due to the daylight saving time (DST), which I did not expect and which surprised me a lot.
The FOREX session is exactly 120 hours:
from Sunday 5:00 p.m. Eastern Standard Time (North America) or EST
to Friday 5:00 p.m. EST.
The problem arises from the time changes to summer time and winter time, which do not
take place on the same Sundays in the different regions of the world.
For example, the USA changes on the 2nd Sunday in March and the 1st Sunday in November,
and this also affects the start and end of the FOREX session.
The EU changes on the last Sunday in March i.e. after the USA and on the
last Sunday in October i.e. before the USA (see above Timeline).
This creates an interim period in which the USA and the EU have a different time differences
than the normal differences of 5 hours (London), 6 hours (Frankfurt, CET) or 7 hours (Cyprus, EET).
In this    interim period, this change of the time difference should be reflected in the changed
time stamps of the first and last hours of the FOREX session. So if the FOREX session starts
on Monday at 00:00 (EET, MQ time), after the USA has changed it should start an hour earlier,
i.e. Sunday at 23:00 and end an hour earlier on Friday, i.e. 23:00 (or 22:59:59).
But unfortunately I had to find out (and with this script anyone can check this with their broker)
that on a MQ demo account and on accounts of some real brokers the first hour always(!) appears
on Monday at 00:00, but the last hour, as expected,
on Friday at 23:00 (or 22:59) or one hour earlier. This means that the first hour of the
FOREX session, in which the trader or an EA could react to weekend events, is missing.
Also, the end of the FOREX session can no longer be determined by simply adding 120
to the first hour of the FOREX session, e.g. to close all positions before the weekend.
This script now checks the broker’s time changes in the past and logs all FOREX sessions
that are obviously incorrect (odd) or not 120 hours. If there are 120 hours
between the first and last hour of a FOREX session, nothing is logged.
At the end the script prints the last retrieved timestamp, the number of odd sessions
found and the approximate number of years that have been checked.

  The Moving Average Class - library MetaTrader 5


Unfortunately, I discovered that some brokers…
Server time changes are a bit sloppy, which I didn’t expect
and what really surprised me.
The FOREX session lasts exactly 120 hours:
from Sunday 5:00 p.m. Eastern Standard Time (North America) or EST
until Friday 5:00 p.m. EST.
The problem arises from the time changes to summer time and winter time,
which do not take place on the same Sundays in different regions of the world.
For example, the US switches on the 2nd Sunday in March and the 1st Sunday in November,
which also affects the start and end of the FOREX session.
The EU introduces on the last Sunday in March, after the USA, and on
last Sunday in October, i.e. before the USA, at (see timeline above).
This creates a transition period in which the USA and the EU have a different one
have time differences than the normal differences of 5
hours (London), 6 hours (Frankfurt, CET) or 7 hours (Cyprus, EET).
In the meantime, this change in time difference should be reflected in the
reflect changed timestamps of the first and last hour of the FOREX session.
So if the FOREX session starts on Monday at 00:00 (EET, MQ time), it should
after the change in the USA, start one hour earlier, i.e. on Sunday at 11:00 p.m.,
and end one hour earlier on Friday, at 11:00 p.m. (or 10:59:59 p.m.).
But unfortunately I had to realize (and with this script everyone can do that with their…
Broker check) that on an MQ demo account and on accounts of some real brokers
the first hour always(!) appears on Monday at 00:00, but the last hour appears as expected
on Friday at 11:00 p.m. (or 10:59 p.m.) or one hour earlier. This means the first hour is missing
the FOREX session in which the trader or an EA could react to events over the weekend.
The end of the FOREX session can no longer be determined by simply adding 120
first hour of the FOREX session, for example to close all positions before the weekend.
This script now checks the broker’s time changes in the past and logs them all
FOREX sessions that are obviously wrong (odd) or not 120 hours. If between
If the first and last hours of a FOREX session are 120 hours, there will be no printout in the log.
At the end the script prints the last retrieved timestamp, the number found
abbreviated sessions and the approximate number of years reviewed.

  Strongest Pair Indicator - indicator MetaTrader 4
📈 ROBOTFX MetaTrader Expert Advisors and Indicators to maximize profits and minimize the risks