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
//--- 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);