- Получение списков доступных символов и Обзора рынка
- Редактирование списка Обзора рынка
- Проверка символа на существование
- Проверка актуальности данных по символу
- Получение последнего тика по символу
- Расписания торговых и котировочных сессий
- Маржинальные коэффициенты по символу
- Обзор функций получения свойств символа
- Проверка состояния символа
- Тип цены для построения графиков по символу
- Базовая, котировочная и маржинальная валюты инструмента
- Точность представления и шаг изменения цен
- Разрешенные объемы торговых операций
- Разрешения на торговлю
- Торговые условия и режимы исполнения приказов по символу
- Маржинальные требования
- Правила истечения сроков отложенных ордеров
- Спреды и отступы приказов от текущей цены
- Получение величины свопов
- Текущая рыночная информация (тик)
- Описательные свойства символов
- Глубина стакана цен
- Свойства пользовательских символов
- Специфические свойства (биржа, срочный рынок, облигации)
Проверка символа на существование
Вместо того чтобы просматривать весь список символов MQL-программа может проверить наличие конкретного символа по его имени. Для этой цели предназначена функция SymbolExist.
bool SymbolExist(const string name, bool &isСustom)
В параметре name следует передать название интересующего вас символа. Передаваемый по ссылке параметр isСustom будет установлен функцией согласно признаку, является ли указанный символ стандартным (false) или пользовательским (true).
Функция возвращает false, если символ не найден ни среди стандартных, ни среди пользовательских символов.
Частичным аналогом данной функции является запрос свойства SYMBOL_EXIST.
Разберем простой скрипт SymbolExists.mq5 для проверки данной функции. В его параметре пользователь может указать интересующее его название, которое передается в SymbolExist, а результат выводится в журнал. Если на вход подать пустую строку, будет проверен рабочий символ текущего графика. По умолчанию параметр имеет значение "XYZ", что предположительно не соответствует ни одному из доступных символов.
#property script_show_inputs
|
При запуске скрипта 2 раза — сначала со значением по умолчанию, а потом с пустой строкой на графике EURUSD — получим следующие записи в журнале.
Symbol 'XYZ' is missing
|
Если вы уже имеете пользовательские символы или создадите новый с какой-нибудь простой расчетной формулой, то сможете убедиться в заполнении переменной custom. Например, если в терминале открыть окно Символы и нажать кнопку Создать символ, то в поле Формула синтетического инструмента можно ввести "SP500/FTSE100" (названия индексов могут отличаться у вашего брокера), а в поле с названием Символа — "GBPUSD.INDEX". По нажатию кнопки OK будет создан пользовательский инструмент, для которого можно открыть график и на нем наш скрипт должен вывести:
Symbol 'GBPUSD.INDEX' is custom |
При настройке собственного символа не забудьте задать не только формулу, но и достаточно "мелкие" значение размера пункта и шага изменения цены (тика) — в противном случае ряд синтетических котировок может получиться "ступенчатым" или даже выродиться в прямую линию.