SYMBOL_SWAP_MODE
Jednostka, w której wyrażone są punkty swapowe. Bez tej właściwości liczby swapowe nie znaczą nic. Ta sama wartość
long SymbolInfoInteger(string symbol, SYMBOL_SWAP_MODE);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Decyduje, jak interpretować wartości SYMBOL_SWAP_LONG i SYMBOL_SWAP_SHORT: jako punkty, procent w skali roku, kwotę w walucie depozytu albo w walucie zysku.
Dlaczego to nie jest oczywiste
Bez tej właściwości liczby swapowe nie znaczą nic. Ta sama wartość minus siedem może oznaczać siedem punktów dziennie albo siedem procent rocznie — różnica w kosztach jest wtedy kilkudziesięciokrotna.
To jest dokładnie ten rodzaj pominięcia, który nie daje błędu i nie psuje testu: backtest liczy swap poprawnie, bo robi to terminal, a twój własny kalkulator kosztów po prostu podaje złą liczbę w raporcie.
Kod
long tryby = SymbolInfoInteger(symbol, SYMBOL_SWAP_MODE);
double swapDlugi = SymbolInfoDouble(symbol, SYMBOL_SWAP_LONG);
//--- interpretacja zalezy od trybu, nie od samej liczby
PrintFormat("%s: swap dlugi %.3f w trybie %d", symbol, swapDlugi, (int)tryby);
if(tryby == SYMBOL_SWAP_MODE_POINTS)
{
double punkt = SymbolInfoDouble(symbol, SYMBOL_POINT);
PrintFormat(" czyli %.5f ceny na lot dziennie", swapDlugi * punkt);
}