Przejdź do treści
MQL5 · MetaTrader 5 · po polsku
kod odczarowany

MQL5 / Instrument

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;
  }

Powiązane