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

MQL5 / Pozycja

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

POSITION_PRICE_OPEN
//--- 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.");

Powiązane