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

MQL5 / Pozycja

POSITION_SWAP

Suma naliczonych swapów dla tej pozycji. Wartość rośnie tylko przy pozycji trzymanej przez noc, więc w kodzie

double PositionGetDouble(POSITION_SWAP);

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

Skumulowany koszt lub przychód z finansowania, naliczany przy każdym przejściu przez granicę dnia handlowego.

Dlaczego to nie jest oczywiste

Wartość rośnie tylko przy pozycji trzymanej przez noc, więc w kodzie testowanym na strategii wewnątrzdniowej zawsze wynosi zero — i przez to bywa pomijana w wyliczeniach, które później trafiają na strategię pozycyjną.

Znak nie jest stały: swap bywa dodatni po jednej stronie rynku, a przy zmianie stóp procentowych potrafi zmienić znak w trakcie życia pozycji. Kod zakładający, że swap zawsze odejmuje, myli się w obie strony.

Kod

POSITION_SWAP
double lacznie = 0.0;

for(int i = PositionsTotal() - 1; i >= 0; i--)
  {
   ulong bilet = PositionGetTicket(i);
   if(bilet == 0 || !PositionSelectByTicket(bilet))
      continue;

   lacznie += PositionGetDouble(POSITION_PROFIT)
            + PositionGetDouble(POSITION_SWAP);
  }

PrintFormat("wynik otwartych pozycji ze swapem: %.2f", lacznie);

Powiązane