ORDER_PRICE_OPEN
Cena, przy której zlecenie ma zostać wykonane albo aktywowane. Przy zleceniach typu stop limit ta właściwość nie jest ceną wykonania,
double OrderGetDouble(ORDER_PRICE_OPEN);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Dla zlecenia rynkowego cena, po której je złożono. Dla oczekującego — poziom aktywacji.
Dlaczego to nie jest oczywiste
Przy zleceniach typu stop limit ta właściwość nie jest ceną wykonania, tylko ceną wyzwolenia. Cena, po której zostanie wystawione zlecenie limit po wyzwoleniu, siedzi osobno, w ORDER_PRICE_STOPLIMIT.
Pomylenie tych dwóch pól kończy się 10015 albo, gorzej, zleceniem wystawionym poprawnie i wykonanym w zupełnie innym miejscu, niż zakładała strategia.
Kod
ORDER_PRICE_OPEN
//--- ile brakuje do aktywacji zlecenia oczekujacego
double poziom = OrderGetDouble(ORDER_PRICE_OPEN);
double biezaca = OrderGetDouble(ORDER_PRICE_CURRENT);
double punkt = SymbolInfoDouble(OrderGetString(ORDER_SYMBOL), SYMBOL_POINT);
PrintFormat("do aktywacji brakuje %d punktow",
(int)MathRound(MathAbs(biezaca - poziom) / punkt));