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

MQL5 / Instrument

SYMBOL_SPREAD

Bieżący spread instrumentu w punktach. Ta wartość bywa aktualizowana rzadziej niż same kwotowania. W momentach,

long SymbolInfoInteger(string symbol, SYMBOL_SPREAD);

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

Różnica między ceną kupna a sprzedaży, wyrażona w punktach i zaokrąglona do liczby całkowitej. Podstawowy koszt wejścia w pozycję.

Dlaczego to nie jest oczywiste

Ta wartość bywa aktualizowana rzadziej niż same kwotowania. W momentach, w których spread naprawdę ma znaczenie — przy publikacji danych, na otwarciu sesji — potrafi pokazywać wartość sprzed kilku ticków. Liczenie spreadu bezpośrednio z SymbolInfoTick daje wynik zgodny z tym, po czym faktycznie wejdziesz.

Druga rzecz: zaokrąglenie do liczby całkowitej gubi ułamki punktu. Na instrumentach o dużej wartości punktu to bywa istotna różnica w koszcie.

Kod

SYMBOL_SPREAD
//--- dwa źródła, które nie zawsze się zgadzają
long zSerwera = SymbolInfoInteger(symbol, SYMBOL_SPREAD);

MqlTick tick;
if(SymbolInfoTick(symbol, tick))
  {
   double punkt = SymbolInfoDouble(symbol, SYMBOL_POINT);
   int zTicku = (int)MathRound((tick.ask - tick.bid) / punkt);

   if(zTicku != (int)zSerwera)
      PrintFormat("%s: serwer podaje %d pkt, z kwotowania wychodzi %d pkt",
                  symbol, (int)zSerwera, zTicku);
  }

Powiązane