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

MQL5 / Transakcja

DEAL_SWAP

Swap naliczony i rozliczony przy tej transakcji. Swap nie jest rozkładany po transakcjach proporcjonalnie — trafia w całości

double HistoryDealGetDouble(ulong bilet, DEAL_SWAP);

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

Skumulowany koszt finansowania, przypisywany zwykle transakcji zamykającej.

Dlaczego to nie jest oczywiste

Swap nie jest rozkładany po transakcjach proporcjonalnie — trafia w całości tam, gdzie broker go rozliczył, najczęściej przy wyjściu. Szukanie go przy transakcji wejścia daje zero i wniosek, że instrument nie ma swapów.

Znak nie jest stały: przy części instrumentów swap bywa dodatni po jednej stronie rynku, a po 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

DEAL_SWAP
double swap = 0.0;

if(HistorySelectByPosition(identyfikator))
   for(int i = 0; i < HistoryDealsTotal(); i++)
     {
      ulong t = HistoryDealGetTicket(i);
      if(t > 0)
         swap += HistoryDealGetDouble(t, DEAL_SWAP);
     }

PrintFormat("swap calej pozycji: %.2f", swap);

Powiązane