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

MQL5 / Instrument

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

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

Powiązane