EN
Artykuły / 4.4 Kalendarz i newsy
Kalendarz i newsyszkic

Kalendarz ekonomiczny MT5: offset czasu i newsy przesunięte o godzinę

14.11.20263 min czytania

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ć

  1. Po każdej zmianie czasu u brokera zapisz kalendarz od nowa na każdym serwerze, który ma zmienne przesunięcie.
  2. 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.
  3. Najlepiej trzymaj czas w UTC, jeśli narzędzie to umożliwia, i przeliczaj na serwerowy dopiero przy użyciu.
  4. W Testerze pamiętaj o regule zmiany czasu dla okresu testu: test obejmujący zmianę czasu wymaga uwzględnienia jej w czasie newsów.
  5. 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

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.