Как получить различную рыночную информацию

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

Как получить различную рыночную информацию

Сообщение Haos » 24 фев 2019, 11:07

Для получения рыночной информации существуют целый набор зарезервированных функций в языке программирования MQL:

РИ-01.png

При этом самой востребованной функцией является MarketInfo. Эта функция возвращает различную информацию о финансовых инструментах, перечисленных в окне "Обзор рынка".

Формат функции MarketInfo:
Код: выделить все
double  MarketInfo(
   string           symbol,     // символ инструмента
   int              type        // тип информации
   );

symbol - это имя символа (торгового инструмента), а
type - идентификатор запроса, определяющий тип возвращаемой информации.
Вот этой самой информации очень много (весь перечень даже не уместился на скрине):

РИ-02.png

В частности, мы можем получить в нашем коде программном значения свопа по определенному инструменту как на покупку, так и на продажу (выделено красным прямоугольником).
В коде нужно будет прописать строку, типа, расположенной ниже:
Код: выделить все
double dblSwap  = MarketInfo("EURUSD", MODE_SWAPLONG);

В данном примере переменной dblSwap будет присвоено значение свопа на покупку по торговому инструменту EURUSD.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Как получить различную рыночную информацию

Сообщение Haos » 10 мар 2019, 11:40

Рассмотрим последовательность получения спреда. Сейчас у брокеров спред плавающий и появилась необходимость в проверке его величины перед открытием сделки, т.к. очевидно, что если он слишком большой, то смысла в такой сделке нет.

01-Спред.png

Функция MarketInfo() возвращает тип значения типа double, а спред - имеет тип int. Поэтому нам необходимо осуществить перевод из double в int путем использования "(int)" перед возвращаемым значением функции:

Код: выделить все
int intSpread = (int) MarketInfo("EURUSD", MODE_SPREAD);

В данной строчке кода переменной типа int intSpread присваивается значение спреда по EURUSD.
Обычно далее в коде идет конструкция "если - то" по выбору действий если спред удовлетворяет необходимой величине, то сделка открывается или нет - тогда никаких действий не выполняется.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 67

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения