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

MQL5 / Instrument

SYMBOL_EXPIRATION_TIME

Data wygaśnięcia instrumentu, jeśli jest terminowy. Kontrakt terminowy nie znika nagle — przechodzi wcześniej w tryb

datetime SymbolInfoInteger(string symbol, SYMBOL_EXPIRATION_TIME);

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

Dla kontraktów terminowych i opcji podaje moment zakończenia obrotu. Dla instrumentów bezterminowych wynosi zero.

Dlaczego to nie jest oczywiste

Kontrakt terminowy nie znika nagle — przechodzi wcześniej w tryb tylko do zamykania, a potem przestaje istnieć. Ekspert pracujący na kontraktach musi to wiedzieć z wyprzedzeniem, bo w ostatnich dniach przed wygaśnięciem płynność spada, a spread rośnie.

Druga rzecz: po wygaśnięciu historia instrumentu zostaje, ale sam symbol znika z okna Rynek. Kod analizujący własne wyniki po miesiącach trafi w historii na symbol, którego właściwości już nie odczyta — SymbolInfoDouble zwróci wtedy zero.

Kod

SYMBOL_EXPIRATION_TIME
datetime wygasa = (datetime)SymbolInfoInteger(symbol, SYMBOL_EXPIRATION_TIME);

if(wygasa == 0)
   return;                  // instrument bezterminowy

int dni = (int)((wygasa - TimeCurrent()) / 86400);

if(dni <= 5)
   PrintFormat("%s wygasa za %d dni - nie otwieram nowych pozycji",
               symbol, dni);

Powiązane