SYMBOL_LAST
Cena ostatniej zawartej transakcji. Na rynku walutowym ta właściwość zwraca zero — bo forex nie ma
double SymbolInfoDouble(string symbol, SYMBOL_LAST);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Cena, po której odbyła się ostatnia transakcja na instrumencie. Obok niej istnieją SYMBOL_LASTHIGH i SYMBOL_LASTLOW.
Dlaczego to nie jest oczywiste
Na rynku walutowym ta właściwość zwraca zero — bo forex nie ma centralnego miejsca zawierania transakcji, a broker kwotuje wyłącznie bid i ask. Wartość ma sens tylko na instrumentach giełdowych.
To jest częsty powód sytuacji, w której kod przeniesiony z akcji na parę walutową „przestaje widzieć cenę". Nie przestaje — po prostu pyta o liczbę, której na tym rynku nie ma. Dzielenie przez nią daje nieskończoność, która wędruje dalej do wolumenu.
Kod
SYMBOL_LAST
double ostatnia = SymbolInfoDouble(symbol, SYMBOL_LAST);
if(ostatnia <= 0.0)
{
//--- instrument bez centralnego arkusza: pracujemy na bid i ask
MqlTick tick;
if(!SymbolInfoTick(symbol, tick))
return;
ostatnia = (tick.bid + tick.ask) / 2.0;
}