Przerwa dobowa indeksów i złota - co dzieje się z pozycją
W skrócie: złoto i indeksy nie handlują całą dobę. Raz na dobę jest przerwa, zwykle około godziny, i u każdego brokera wypada o trochę innej porze. W przerwie pozycja zostaje otwarta, ale nie da się jej zamknąć, a stop loss zadziała dopiero po pierwszej cenie po otwarciu rynku.
Bot chciał zamknąć pozycję pięć minut za późno
Pokażę to na własnym błędzie z testów. Mój bot na złoto, wybicie z kanału EMA w sesji azjatyckiej (bot 2010_GoldAsiaEmaChannelBreakoutEA), miał ustawione zamknięcie pozycji na 22:55 czasu serwera. Na złocie to działało. Potem puściłem serię testów na indeksach, na serwerze MetaQuotes-Demo.
US30 ma tam sesję od poniedziałku do czwartku do 22:59, a w piątek do 22:55. W piątek o 22:55 rynek był już zamknięty. Serwer odrzucił zamknięcie z błędem 10018 (market closed), pozycja została otwarta na cały weekend, a bot próbował ją zamknąć co 15 sekund aż do poniedziałku. W teście z kilku lat takich weekendów były setki i sam log urósł o setki tysięcy linii.
Pięć minut różnicy w ustawieniu, a skutek to pozycja trzymana przez weekend, której nikt nie planował.
Skąd ta przerwa
CFD na złoto i indeksy idą za kontraktami futures z giełdy CME w USA. Tam handel trwa prawie całą dobę, z godzinną przerwą techniczną od 17:00 do 18:00 czasu Nowego Jorku, czyli zwykle od 23:00 do 24:00 czasu polskiego. Brokerzy CFD w tym czasie też nie podają cen, a wielu dokłada kilka minut przed przerwą albo po niej.
Dlatego nie ma jednej odpowiedzi na pytanie “o której zamyka się złoto”. Zależy od brokera i od tego, jaki czas pokazuje jego serwer.
Godziny u moich brokerów
To są godziny handlu ze specyfikacji symbolu, odczytane w listopadzie 2026, w czasie serwera danego brokera:
| Symbol i serwer | Poniedziałek-czwartek | Piątek |
|---|---|---|
| Złoto, MetaQuotes-Demo | 00:00-23:00 | 00:00-23:00 |
| Złoto, FundingPips | 01:00-23:59 | 01:00-23:49 |
| Złoto, SpiceProp | 01:05-23:55 | 01:05-23:55 |
| US30, MetaQuotes-Demo | 00:00-22:59 | 00:00-22:55 |
| NAS100, Fusion Markets (demo) | 01:00-23:59 | 01:00-23:59 |
W tabeli widać kilka pułapek naraz. Piątek bywa krótszy niż reszta tygodnia: w FundingPips o 10 minut, na US30 w MetaQuotes-Demo o 4 minuty. Przerwa raz wypada przed północą serwera, raz po niej. I te godziny nie są stałe.
Dwa przykłady zmian, które sam widziałem w danych:
- MetaQuotes-Demo do 6 marca 2026 kwotował złoto do 23:58-23:59. Od 9 marca kończy o 23:00. Nikt o tym nie informował, wyszło dopiero przy porównaniu świec M1 z innym brokerem.
- SpiceProp ma zegar serwera stały przez cały rok, bez zmiany czasu. Rynek złota otwiera się jednak według czasu Nowego Jorku, więc latem sesja w czasie serwera trwała od 00:05 do 22:54, a zimą od 01:05 do 23:55. Bot ze stałymi godzinami działa wtedy o godzinę inaczej względem rynku.
Jak sprawdzić godziny w MT5
- Otwieram Okno rynku (Ctrl+M) i klikam prawym przyciskiem na symbol.
- Wybieram Specyfikacja.
- Na dole okna jest tabela Sesje, osobno dla każdego dnia tygodnia. Są w niej dwie kolumny: kwotowania i handel. Dla zleceń liczy się handel.
Godziny w tej tabeli są w czasie serwera, nie w polskim. Czas serwera widać w Oknie rynku, nad listą symboli.
Specyfikacja pokazuje ustawienia na dziś. Jeśli testuję bota na danych sprzed roku, sesja mogła wtedy wyglądać inaczej, jak w przykładzie z marca. Do analiz historycznych patrzę więc na same świece M1: o której była ostatnia świeca dnia i o której pierwsza następnego.
Co dzieje się z pozycją w przerwie
Pozycja zostaje otwarta. Nic jej nie zamyka tylko dlatego, że rynek stoi.
Stop loss i take profit leżą na serwerze brokera, ale bez cen nie mają jak zadziałać. Jeśli po przerwie pierwsza cena jest już za SL, pozycja zamknie się po tej cenie, a nie po cenie SL. To jest luka cenowa: przy ryzyku 100 USD strata może wyjść 150 albo 200 USD.
Zamknąć pozycji w przerwie się nie da. Ani z ręki, ani botem, ani z telefonu. Serwer odpowiada “rynek zamknięty” (market closed, kod 10018). Zmiana SL albo TP zwykle też jest odrzucana. Jeśli wieczorem wychodzi ważna wiadomość, a rynek akurat stoi, zostaje czekanie na otwarcie.
Jest jeszcze spread. W ostatnich minutach przed przerwą i w pierwszych po niej bywa kilka razy szerszy niż w ciągu dnia. Pozycja sprzedaży zamyka się po cenie ask, więc szeroki spread potrafi wybić SL, choć na wykresie (cena bid) cena do niego nie doszła. Z tego powodu nie ustawiam zamknięcia na ostatnią minutę sesji.
Na koniec swap. Za pozycję przeniesioną na następny dzień broker nalicza punkty swapowe, raz w tygodniu w potrójnej wysokości. Dla intraday to nie ma znaczenia, dla pozycji trzymanej kilka dni już tak.
Co robi bot w przerwie
Bot w MT5 działa na tikach. Nie ma cen, to nie ma tików i funkcja OnTick się nie uruchamia. Bot, który całą logikę ma w OnTick, przez tę godzinę śpi. Bot z timerem działa dalej i tu zaczyna się kłopot z mojego przykładu: timer co kilkanaście sekund wysyła zamknięcie, serwer co kilkanaście sekund je odrzuca.
Po tym przypadku przyjąłem dwie zasady. Standardowa godzina zamknięcia w moich botach to 22:45 czasu serwera, bo mieści się w sesji u wszystkich brokerów z tabeli i zostawia kwadrans zapasu. Druga zasada: bot sam czyta godziny sesji symbolu i poza sesją nie wysyła zleceń.
W MQL5 godziny sesji da się odczytać standardową funkcją:
// Czy symbol jest teraz w sesji handlowej (czas serwera)
bool IsInTradeSession(const string symbol)
{
MqlDateTime now;
TimeToStruct(TimeCurrent(), now);
int secondsNow = now.hour * 3600 + now.min * 60 + now.sec;
datetime from, to;
// dzień może mieć kilka sesji, sprawdzam po kolei
for(uint i = 0; SymbolInfoSessionTrade(symbol, (ENUM_DAY_OF_WEEK)now.day_of_week, i, from, to); i++)
{
int secondsTo = (to == 0) ? 86400 : (int)to; // koniec 00:00 oznacza 24:00
if(secondsNow >= (int)from && secondsNow < secondsTo)
return true;
}
return false;
}
Przerwa zmienia też wyniki testów
Tego się nie spodziewałem. Mój bot na złoto, który wchodzi po cofnięciu w kanale Donchiana (bot 2908_DonchianPullbackEA), ustawia SL na przeciwnej krawędzi kanału. Kanał liczy z określonej liczby świec, nie z godzin. Broker z krótszą sesją ma w ciągu doby mniej świec, więc to samo okno sięga u niego dalej wstecz.
5 października 2026 bot otworzył tę samą sprzedaż u trzech brokerów, po praktycznie tej samej cenie. Na MetaQuotes-Demo kanał objął jeszcze piątkowy szczyt, SL wypadł około 50 USD od ceny i lot wyszedł 0,01. Strata: 18 USD. W FundingPips SL był około 20 USD od ceny, lot 0,04, strata 81 USD. W SpiceProp lot 0,05 i strata 91 USD.
Ten sam bot, to samo wejście, a wynik różni się ponad cztery razy, bo jeden broker kończy dzień godzinę wcześniej. Dlatego wynik z konta demo MetaQuotes traktuję jako wstępny, a bota testuję jeszcze raz na danych brokera, u którego ma działać.
Checklista
- znam godziny handlu symbolu u mojego brokera, osobno dla piątku,
- godzina zamknięcia w bocie wypada co najmniej kilka minut przed końcem sesji, także w piątek,
- bot nie wysyła zleceń poza sesją (albo przynajmniej nie ponawia ich co kilka sekund),
- wiem, czy bot trzyma pozycję przez przerwę, i liczę się z luką,
- po zmianie czasu w USA i w Europie sprawdzam godziny jeszcze raz,
- test bota zrobiony na danych brokera docelowego, nie tylko na demo.
Powiązane
- Luka cenowa i stop loss
- Piątkowe zamknięcie i luka weekendowa
- Zamknięcie pozycji przed weekendem - ustawienie w bocie
- Zakaz trzymania pozycji przez weekend w prop firmach
- Pojęcia z artykułu: słowniczek, skorowidz
Źródła
- CME Group, godziny handlu kontraktów E-mini Nasdaq-100 i złota na CME Globex (przerwa 17:00-18:00 czasu Nowego Jorku): FAQ CME, karta kontraktu na złoto. Sprawdzone 14.11.2026.
- Godziny sesji brokerów: specyfikacje symboli w MT5 i świece M1 z moich kont, listopad 2026.
Ostrzeżenie: handel CFD i forex wiąże się z wysokim ryzykiem utraty kapitału. Godziny handlu i warunki u brokerów zmieniają się, sprawdź je na własnym koncie. Artykuł ma charakter edukacyjny i nie jest rekomendacją inwestycyjną.