POSITION_TIME
Czas otwarcia pozycji. Istnieje też `POSITION_TIME_UPDATE` i to jest właściwość, o której prawie
datetime PositionGetInteger(POSITION_TIME);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Znacznik czasu w sekundach, w czasie serwera. Odpowiednikiem z dokładnością do milisekund jest POSITION_TIME_MSC.
Dlaczego to nie jest oczywiste
Istnieje też POSITION_TIME_UPDATE i to jest właściwość, o której prawie nikt nie wie, a która rozwiązuje częsty problem: kiedy ostatnio zmieniano tę pozycję. Zmiana stopa, dołożenie wolumenu, częściowe zamknięcie — wszystko aktualizuje ten znacznik, a POSITION_TIME zostaje bez zmian.
Dzięki temu da się napisać warunek „nie ruszaj stopa częściej niż raz na minutę" bez trzymania własnych liczników, które i tak nie przeżyją restartu terminala.
Kod
POSITION_TIME
if(!PositionSelectByTicket(bilet))
return;
datetime otwarta = (datetime)PositionGetInteger(POSITION_TIME);
datetime zmieniona = (datetime)PositionGetInteger(POSITION_TIME_UPDATE);
int odZmiany = (int)(TimeCurrent() - zmieniona);
if(odZmiany < 60)
return; // stop ruszany chwile temu, czekamy
PrintFormat("pozycja otwarta %s, ostatnia zmiana %d s temu",
TimeToString(otwarta, TIME_MINUTES), odZmiany);