POSITION_PRICE_OPEN
Cena otwarcia pozycji. Na rachunku typu netting to jest średnia ważona, a nie cena pierwszej
double PositionGetDouble(POSITION_PRICE_OPEN);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Cena, po której pozycja została otwarta. Punkt odniesienia dla progu opłacalności i dla poziomu wejścia w wyliczeniach zarządzania pozycją.
Dlaczego to nie jest oczywiste
Na rachunku typu netting to jest średnia ważona, a nie cena pierwszej transakcji. Dołożenie do pozycji zmienia tę wartość, choć w historii nadal widnieją dwie osobne transakcje wejścia po dwóch różnych cenach.
Konsekwencja dla trailing stopa i przenoszenia na próg opłacalności: po dołożeniu wolumenu poziom „bez straty" przesuwa się sam, bez żadnej akcji z twojej strony. Kod zapamiętujący cenę wejścia w zmiennej przy otwarciu będzie od tego momentu operował liczbą, której na rachunku już nie ma.
Kod
//--- zawsze odczytujemy z pozycji, nigdy z wlasnej pamieci
if(!PositionSelectByTicket(bilet))
return;
double otwarcie = PositionGetDouble(POSITION_PRICE_OPEN);
double stop = PositionGetDouble(POSITION_SL);
if(stop > 0.0 && MathAbs(stop - otwarcie) < SymbolInfoDouble(_Symbol, SYMBOL_POINT))
Print("Pozycja jest na progu oplacalnosci.");