Kalendarz ekonomiczny MT5: offset czasu i newsy przesunięte o godzinę
W skrócie: wbudowany kalendarz MT5 podaje czas wydarzeń w czasie serwera brokera. Test z 26.10.2026 na czterech serwerach pokazał, że przesunięcie jest brane z chwili odczytu, nie z dnia samego newsa, i dotyczy wszystkich wydarzeń naraz, także dawnych. Plik zapisany przed zmianą czasu u brokera i czytany po niej ma więc newsy o godzinę obok. Filtr newsów w bocie, który się na nim opiera, blokuje handel w złym oknie.
Jak to sprawdziłem
Wzorcem był comiesięczny raport o zatrudnieniu w USA (NFP), który publikowany jest o 8:30 czasu Nowego Jorku. Po przeliczeniu na UTC godzina jest stała w obrębie pory roku, więc łatwo ją rozpoznać w pliku. Wyeksportowałem kalendarz z czterech serwerów i porównałem godziny NFP z pliku z godziną, która powinna wyjść z czasu NY.
Wnioski z testu:
- Dwa z serwerów mają stałe przesunięcie przez cały rok (u jednego +3 godziny, u drugiego +2), więc w obrębie roku nie ma na nich problemu zmiany czasu.
- Serwery, które przestawiają zegary razem z Europą albo z USA, mają przesunięcie zmienne w roku.
- Na takich serwerach MT5 przelicza czas każdego wydarzenia, przeszłego i przyszłego, przesunięciem obowiązującym w chwili wywołania. Dwa pliki zapisane przed i po zmianie czasu różnią się o równo godzinę dla każdego newsa.
- Pierwszy eksport kilka sekund po zalogowaniu może dać plik częściowo w UTC, bo kalendarz jeszcze się nie zsynchronizował. Drugi eksport był poprawny.
Co to psuje
Każdy mechanizm, który czyta zapisany plik zamiast pytać kalendarza na bieżąco, dostaje newsy z godziną przesunięcia:
- Filtr newsów w bocie w Testerze. Test czyta plik zapisany osobno dla serwera. Gdy plik pochodzi sprzed zmiany czasu, a test obejmuje okres po zmianie, blokada pojawia się godzinę za wcześnie albo za późno.
- Pasek newsów w panelu. Czas wyświetlany użytkownikowi jest przesunięty o godzinę, jeśli panel odejmuje offset z chwili odczytu, a nie z chwili zapisu pliku.
- Porównania między brokerami. Ten sam newsowy dzień u brokera ze stałym przesunięciem i u brokera ze zmiennym wygląda inaczej w plikach, choć w rzeczywistości jest ten sam.
Pisałem o tym w kontekście zmiany czasu w USA i Europie w artykule o tygodniach rozjazdu w botach. Kalendarz jest tym samym problemem w innym miejscu.
Jak się bronić
- Po każdej zmianie czasu u brokera zapisz kalendarz od nowa na każdym serwerze, który ma zmienne przesunięcie.
- Rozpoznawaj plik po wzorcu. Raz sprawdź, o której godzinie w pliku stoi NFP, i porównaj ją z oczekiwaną z czasu NY. Odchylenie o godzinę to sygnał, że plik jest stary.
- Najlepiej trzymaj czas w UTC, jeśli narzędzie to umożliwia, i przeliczaj na serwerowy dopiero przy użyciu.
- W Testerze pamiętaj o regule zmiany czasu dla okresu testu: test obejmujący zmianę czasu wymaga uwzględnienia jej w czasie newsów.
- Eksport powtarzaj przy braku pewności i porównuj dwa wyniki.
[DO UZUPEŁNIENIA: po zapisaniu kalendarzy od nowa po 1.11.2026 jedno zdanie, czy odchylenie zniknęło, na którym serwerze]
Checklista
- Wiem, czy serwer brokera ma stałe czy zmienne przesunięcie czasu.
- Plik kalendarza jest zapisany po ostatniej zmianie czasu.
- Godzina NFP w pliku zgadza się z 8:30 czasu NY po przeliczeniu.
- Filtr newsów w Testerze uwzględnia zmianę czasu w badanym okresie.
- Drugi eksport po zalogowaniu daje ten sam wynik co pierwszy.
Powiązane
- Zmiana czasu USA kontra Europa
- Zły czas serwera: awaria 27 października
- Słowniczek: kalendarz ekonomiczny MT5; skorowidz: skorowidz
Ostrzeżenie: opis dotyczy testu na czterech serwerach z jednego dnia. Zachowanie kalendarza u innego brokera lub po aktualizacji MT5 może być inne, więc sprawdź je u siebie. To nie jest porada inwestycyjna.