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);