Mmh... Ça fait des mois que tu bosses sur MT4 et ce n'est que maintenant que tu t'aperçois de ça ?
Le décalage que tu observes vient du fait que le serveur MT4 sur lequel tu es connecté peut être réglé sur une heure différente que la tienne (qui est CET/CEST). Perso, par exemple, j'ai un serveur qui tourne en EET/EEST (Admiral Markets) - qui, soit dit en passant, est le standard MT4 - et un autre en GMT (
ig).
Pour connaître l'heure de ton serveur il te suffit d'observer le Timestamp des dernières bougies. Sinon, en MQL4, l'heure du serveur est affichée par TimeCurrent().
À partir de là, tu gères les heures de trading dans ton code. Chez moi, il y a toute une structure qui désormais est bien installée, qui permet de commencer le trading sur chaque actif aux bonnes heures, qui permet de tenir compte des jours féries (mes bots ne tradent que les heures d'ouverture du cash, ce qui leur interdit par exemple de trader un jour férié où on a une cotation cfd à risque limité mais
pas de cotation cash), ils tiennent même compte du décalage d'une heure des marchés US lors du changement d'heure hiver->été et inversement.
Bref, c'est un aspect que tu dois gérer proprement dans ton code.
Quand tu dis "une journée MT4 va de XX à XX", je ne comprends pas trop ce que tu veux dire.