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

MQL5 / Instrument

SYMBOL_TIME

Czas ostatniego kwotowania instrumentu. Jest to jedyny sposób, żeby odróżnić „cena wynosi tyle" od „cena wynosiła

long SymbolInfoInteger(string symbol, SYMBOL_TIME);

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

Znacznik czasu ostatniego ticku, w sekundach. Odpowiednikiem z dokładnością do milisekund jest SYMBOL_TIME_MSC.

Dlaczego to nie jest oczywiste

Jest to jedyny sposób, żeby odróżnić „cena wynosi tyle" od „cena wynosiła tyle, gdy instrument był jeszcze kwotowany". Odczyt SYMBOL_BID zwraca ostatnią znaną wartość i nigdy nie zgłasza, że pochodzi sprzed dwóch dni.

Ma to znaczenie w trzech sytuacjach: przy pracy wielosymbolowej, gdy część instrumentów ma inne godziny sesji; po weekendzie, gdy ekspert startuje przed otwarciem rynku; i po utracie połączenia, gdy terminal serwuje ostatnie znane ceny jak gdyby nigdy nic.

Kod

SYMBOL_TIME
datetime ostatnie = (datetime)SymbolInfoInteger(symbol, SYMBOL_TIME);
int wiek = (int)(TimeCurrent() - ostatnie);

if(wiek > 60)
   PrintFormat("%s: ostatnie kwotowanie sprzed %d sekund - nie wysylam zlecenia",
               symbol, wiek);

Powiązane