SYMBOL_POINT
Najmniejsza możliwa zmiana ceny instrumentu. Punkt to nie to samo co minimalny krok notowania. Na części instrumentów
double SymbolInfoDouble(string symbol, SYMBOL_POINT);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Dla pięciocyfrowego EURUSD to 0.00001, dla trzycyfrowego USDJPY 0.001. Wszystkie odległości w MQL5 — stop loss, poziomy brokera, poślizg — liczy się w punktach, czyli w wielokrotnościach tej wartości.
Dlaczego to nie jest oczywiste
Punkt to nie to samo co minimalny krok notowania. Na części instrumentów giełdowych SYMBOL_TRADE_TICK_SIZE jest większy od punktu — cena zmienia się skokowo o kilka punktów naraz. Wzór na wielkość pozycji oparty na punkcie zamiast na rozmiarze ticku daje wtedy wynik zawyżony o tyle razy, ile punktów mieści się w ticku, i nie zgłasza tego w żaden sposób.
Druga rzecz: _Point odnosi się wyłącznie do symbolu bieżącego wykresu. W kodzie wielosymbolowym trzeba pytać o punkt każdego instrumentu osobno.
Kod
//--- porównanie punktu z rozmiarem ticku na dowolnym instrumencie
double punkt = SymbolInfoDouble(symbol, SYMBOL_POINT);
double tick = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE);
if(MathAbs(punkt - tick) > punkt / 2.0)
PrintFormat("%s: punkt %.8f, ale krok notowania %.8f — to %d punktów",
symbol, punkt, tick, (int)MathRound(tick / punkt));