SYMBOL_TRADE_TICK_VALUE
Wartość jednego ticku w walucie rachunku, dla jednego lota. Ta wartość zmienia się w czasie. Dla instrumentów, których waluta zysku
double SymbolInfoDouble(string symbol, SYMBOL_TRADE_TICK_VALUE);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Podstawa każdego przeliczenia ryzyka na wolumen. Mówi, ile pieniędzy zyskujesz lub tracisz, gdy cena przesunie się o jeden krok notowania przy pozycji wielkości jednego lota.
Dlaczego to nie jest oczywiste
Ta wartość zmienia się w czasie. Dla instrumentów, których waluta zysku różni się od waluty rachunku, zależy od bieżącego kursu przeliczeniowego. Wyliczenie wolumenu na podstawie wartości zapamiętanej w OnInit będzie po tygodniu niepoprawne o tyle, o ile zmienił się ten kurs.
Są też dwie osobne właściwości, o których prawie nikt nie wie: SYMBOL_TRADE_TICK_VALUE_PROFIT i SYMBOL_TRADE_TICK_VALUE_LOSS. Na części instrumentów różnią się między sobą, a SYMBOL_TRADE_TICK_VALUE jest wtedy jedną z nich, nie średnią. Do liczenia ryzyka właściwa jest wersja _LOSS.
Kod
//--- do ryzyka bierzemy wartość dla strat, nie uśrednioną
double wartoscStraty = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE_LOSS);
if(wartoscStraty <= 0.0)
wartoscStraty = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE);
//--- odczyt tuż przed obliczeniem, nigdy raz na starcie
PrintFormat("%s: tick value %.5f (zysk %.5f, strata %.5f)", symbol,
SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE),
SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE_PROFIT),
wartoscStraty);