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