При программировании индикатора, советника или эксперта часто необходимо узнать текущую цену. 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-кода получить текущую цену несложно, для этого требуется всего лишь несколько строк кода.