SYMBOL_TRADE_TICK_SIZE
Minimalny krok zmiany ceny w notowaniach. To jest właściwa podstawa do przeliczania pieniędzy, a nie punkt. Para
double SymbolInfoDouble(string symbol, SYMBOL_TRADE_TICK_SIZE);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Cena instrumentu porusza się wyłącznie o wielokrotności tej wartości. Na większości par walutowych równa się punktowi, ale na kontraktach terminowych i części instrumentów giełdowych bywa jego wielokrotnością.
Dlaczego to nie jest oczywiste
To jest właściwa podstawa do przeliczania pieniędzy, a nie punkt. Para SYMBOL_TRADE_TICK_SIZE i SYMBOL_TRADE_TICK_VALUE tworzy jedyny wzór działający na każdym instrumencie: ile pieniędzy zmienia się przy najmniejszym możliwym ruchu ceny, na jeden lot.
Kod krążący po forach liczy zwykle przez SYMBOL_TRADE_CONTRACT_SIZE, co działa na walutach i rozjeżdża się wszędzie indziej, bo nie uwzględnia przeliczenia na walutę rachunku.
Kod
//--- ile pieniędzy na jednym locie przy ruchu o zadaną liczbę punktów
double StrataNaLot(const string symbol, const int punktow)
{
double punkt = SymbolInfoDouble(symbol, SYMBOL_POINT);
double rozmiarTicku = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE);
double wartoscTicku = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE);
if(rozmiarTicku <= 0.0 || wartoscTicku <= 0.0)
return 0.0;
return (punktow * punkt / rozmiarTicku) * wartoscTicku;
}