Как получить текущую цену торгового инструмента с помощью MQL4?

При программировании индикатора, советника или эксперта часто необходимо узнать текущую цену. MQL4 позволяет получить текущую цену очень просто, и в этой статье мы рассмотрим код, который нам понадобится для этой цели.

Сначала нам необходимо выяснить, какую цену нам нужно получить. Каждый торговый инструмент имеет только две цены: bid и ask. Bid — это цена продажи инструмента, а Ask — цена за его покупку. В Metatrader 4 мы видим текущую ценовую линию на графике, который по умолчанию является ценой Bid.

Следующий код использует встроенную функцию MarketInfo() для получения цены текущего инструмента. Значения Bid и Ask сохраняются в переменные.

void OnStart(){
 
   //Получаем цены Ask и Bid текущего торгового инструмента с помощью MarketInfo и сохраняем эти значения в переменные.
   double PriceAsk=MarketInfo(0,MODE_ASK);
   double PriceBid=MarketInfo(0,MODE_BID);
 
   //Отображаем окно с полученными значениями
   MessageBox("Bid="+PriceBid+" Ask="+PriceAsk);
 
}

MarketInfo() — очень мощная функция, которая может возвращать множество информации об инструменте.

Существует альтернативный способ получения текущей цены, но в этом случае мы сможем получить только текущую цену Bid. Этот альтернативный метод использует функцию Close() или iClose (). Close — это функция, которая возвращает цену закрытия (Bid) выбранной свечи, где выбор осуществляется с помощью массива-индекса. Close [0] вернет цену закрытия текущей свечи индекса 0.

void OnStart(){
 
   //Получаем цену текущего инструмента с помощью функции Close() и сохраняем значение в переменную.
   double PriceBid=Close[0];
 
   //Отображаем окно с полученными значениями.
   MessageBox("Bid="+PriceBid);
 
}

Как видите, с помощью MQL-кода получить текущую цену несложно, для этого требуется всего лишь несколько строк кода.