SYMBOL_ASK
Bieżąca cena kupna instrumentu. Odczyt ceny kupna i sprzedaży dwoma osobnymi wywołaniami daje dwie liczby
double SymbolInfoDouble(string symbol, SYMBOL_ASK);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Cena, po której otwiera się pozycję długą i zamyka krótką. Odpowiednikiem dla drugiej strony jest SYMBOL_BID.
Dlaczego to nie jest oczywiste
Odczyt ceny kupna i sprzedaży dwoma osobnymi wywołaniami daje dwie liczby z dwóch różnych momentów. Między nimi może przyjść tick, a wtedy wyliczony z nich spread będzie fikcją — czasem ujemną.
SymbolInfoTick wypełnia całą strukturę danymi z jednej chwili i przy okazji podaje czas kwotowania, więc od razu wiadomo, czy dane nie są przestarzałe. Nie ma powodu używać osobnych odczytów poza sytuacją, gdy naprawdę potrzebna jest jedna liczba.
Kod
SYMBOL_ASK
//--- jedna chwila, komplet danych
MqlTick tick;
if(!SymbolInfoTick(symbol, tick))
return;
double spread = tick.ask - tick.bid;
//--- osobne odczyty: dwie chwile, spread bywa nieprawdziwy
double ask = SymbolInfoDouble(symbol, SYMBOL_ASK);
double bid = SymbolInfoDouble(symbol, SYMBOL_BID);