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

MQL5 / Instrument

SYMBOL_TRADE_CONTRACT_SIZE

Wielkość jednego kontraktu, czyli ile jednostek instrumentu to jeden lot. Ta właściwość jest najczęściej niepotrzebna, a mimo to pojawia się

double SymbolInfoDouble(string symbol, SYMBOL_TRADE_CONTRACT_SIZE);

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

Dla par walutowych zwykle 100 000 jednostek waluty bazowej. Dla złota najczęściej 100 uncji, dla indeksów i akcji — dowolna liczba ustalona przez brokera.

Dlaczego to nie jest oczywiste

Ta właściwość jest najczęściej niepotrzebna, a mimo to pojawia się w większości wzorów na wielkość pozycji krążących po forach. Wzór oparty o rozmiar kontraktu wymaga ręcznego przeliczenia na walutę rachunku, więc działa tylko wtedy, gdy waluta zysku instrumentu jest walutą rachunku. Para tick size i tick value robi to samo bez żadnego przeliczania.

Rozmiar kontraktu przydaje się realnie w dwóch miejscach: przy liczeniu ekspozycji nominalnej i przy instrumentach, gdzie broker rozlicza w jednostkach, na przykład przy akcjach kupowanych na sztuki.

Kod

SYMBOL_TRADE_CONTRACT_SIZE
//--- wartość nominalna pozycji, przydatna do raportów i limitów
double rozmiarKontraktu = SymbolInfoDouble(symbol, SYMBOL_TRADE_CONTRACT_SIZE);
double nominal = wolumen * rozmiarKontraktu * cena;

PrintFormat("%s: %.2f lota to nominalnie %.2f jednostek",
            symbol, wolumen, wolumen * rozmiarKontraktu);

Powiązane