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.