Przejdź do treści
MQL5 · MetaTrader 5 · po polsku
kod odczarowany

MQL5 / Błędy

retcode 10018

10018 — TRADE_RETCODE_MARKET_CLOSED

Rynek dla tego instrumentu jest zamknięty. Kod, który zaskakuje głównie przy handlu wielosymbolowym.

1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.

Co ten kod znaczy

Instrument nie jest w tej chwili w sesji handlowej. Świeże kwotowania mogły przyjść chwilę wcześniej — nie znaczy to, że sesja trwa.

Skąd się bierze

  • weekend albo święto na danym rynku
  • przerwa sesyjna, na przykład dzienna przerwa na kontraktach
  • ekspert stojący na wykresie waluty i handlujący indeksem o innych godzinach
  • ostatnie minuty przed zamknięciem, gdy broker już nie przyjmuje zleceń

Co z tym zrobić

Godziny sesji można odczytać z instrumentu zamiast wpisywać je na sztywno:

Czy instrument jest teraz w sesji
bool SesjaTrwa(const string symbol)
  {
   datetime teraz = TimeCurrent();
   MqlDateTime czas;
   TimeToStruct(teraz, czas);

   datetime od, doo;
   for(int i = 0; SymbolInfoSessionTrade(symbol, (ENUM_DAY_OF_WEEK)czas.day_of_week,
                                         i, od, doo); i++)
     {
      int minuty = czas.hour * 60 + czas.min;
      if(minuty >= (int)(od / 60) && minuty < (int)(doo / 60))
         return true;
     }
   return false;
  }

W testerze strategii ten kod nie wystąpi — tester zna tylko dane historyczne i nie modeluje odmowy z powodu zamkniętego rynku.

Powiązane