Purtroppo, ho dovuto constatare che alcuni broker sono un po' negligenti con il
cambio dell'ora del server, cosa che non mi aspettavo
e che mi ha molto sorpreso.
La sessione FOREX dura esattamente 120 ore:
da domenica 17:00 Eastern Standard Time (Nord America) o EST
a venerdì 17:00 EST.
Il problema nasce dai cambi di orario verso l'ora legale e l'ora solare,
che non avvengono nelle stesse domeniche nelle diverse regioni del mondo.
Ad esempio, negli Stati Uniti il cambio avviene la seconda domenica di marzo e la prima domenica di novembre,
il che influisce anche sull'inizio e sulla fine della sessione FOREX.
L'Unione Europea cambia l'ultima domenica di marzo, cioè dopo gli Stati Uniti, e l'ultima domenica di ottobre, cioè prima degli Stati Uniti (si veda la cronologia di cui sopra).
Questo crea un periodo di transizione in cui gli Stati Uniti e l'UE hanno una
differenza di fuso orario diversa dalle normali differenze di 5
ore (Londra), 6 ore (Francoforte, CET) o 7 ore (Cipro, EET).
In questo periodo intermedio, questa modifica della differenza di fuso orario dovrebbe riflettersi nei
timestamp modificati della prima e dell'ultima ora della sessione FOREX.
Quindi, se la sessione FOREX inizia il lunedì alle 00:00 (EET, ora MQ), dovrebbe
iniziare un'ora prima dopo il cambiamento negli Stati Uniti, cioè alle 23:00 di domenica,
e terminare un'ora prima il venerdì, cioè alle 23:00 (o 22:59:59).
Ma purtroppo ho dovuto constatare (e con questo script chiunque può verificarlo con il proprio broker
) che su un conto demo MQ e sui conti di alcuni broker reali
la prima ora appare sempre(!) il lunedì alle 00:00, ma l'ultima ora appare come previsto
il venerdì alle 23:00 (o 22:59) o un'ora prima. Ciò significa che manca la prima ora
della sessione FOREX, in cui il trader o un EA potrebbe reagire agli eventi del fine settimana.
La fine della sessione FOREX non può più essere determinata semplicemente aggiungendo120 alla
prima ora della sessione FOREX, ad esempio per chiudere tutte le posizioni prima del fine settimana.
Questo script ora controlla le modifiche dell'orario del broker nel passato e registra tutte le
sessioni FOREX che sono ovviamente errate (dispari) o non di 120 ore. Se ci sono 120 ore tra
la prima e l'ultima ora di una sessione FOREX, il registro non viene stampato.
Alla fine, lo script stampa l'ultimo timestamp recuperato, il numero di
sessioni accorciate trovate e il numero approssimativo di anni controllati.
Tradotto dal tedesco da MetaQuotes Ltd.
Codice originale: https://www.mql5.com/de/code/55086