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

MQL5 / Instrument

SYMBOL_TRADE_CALC_MODE

Sposób, w jaki liczony jest depozyt i wynik dla tego instrumentu. To jest właściwość, która decyduje o poprawności twoich wyliczeń ryzyka,

long SymbolInfoInteger(string symbol, SYMBOL_TRADE_CALC_MODE);

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

Określa model rozliczeniowy: forex, kontrakty futures, akcje giełdowe, CFD, indeksy i kilka wariantów pośrednich.

Dlaczego to nie jest oczywiste

To jest właściwość, która decyduje o poprawności twoich wyliczeń ryzyka, a prawie nikt jej nie sprawdza. W modelu forex depozyt zależy od wolumenu i dźwigni, w modelu CFD od ceny i rozmiaru kontraktu, w modelu giełdowym od ceny i liczby sztuk.

Wzór na wielkość pozycji napisany pod jeden model daje na innym wynik zawyżony albo zaniżony o rząd wielkości. Bezpieczniejsze od rozpoznawania modelu jest jednak nieużywanie żadnego wzoru: OrderCalcMargin liczy depozyt poprawnie dla każdego z nich.

Kod

SYMBOL_TRADE_CALC_MODE
//--- zamiast rozpoznawac model, pytamy terminal o depozyt
double wymagany = 0.0;

if(!OrderCalcMargin(ORDER_TYPE_BUY, symbol, wolumen, cena, wymagany))
  {
   PrintFormat("Nie moge policzyc depozytu dla %s, blad %d",
               symbol, GetLastError());
   return;
  }

PrintFormat("%s: model rozliczenia %d, depozyt %.2f", symbol,
            (int)SymbolInfoInteger(symbol, SYMBOL_TRADE_CALC_MODE), wymagany);

Powiązane