- Получение списков доступных символов и Обзора рынка
- Редактирование списка Обзора рынка
- Проверка символа на существование
- Проверка актуальности данных по символу
- Получение последнего тика по символу
- Расписания торговых и котировочных сессий
- Маржинальные коэффициенты по символу
- Обзор функций получения свойств символа
- Проверка состояния символа
- Тип цены для построения графиков по символу
- Базовая, котировочная и маржинальная валюты инструмента
- Точность представления и шаг изменения цен
- Разрешенные объемы торговых операций
- Разрешения на торговлю
- Торговые условия и режимы исполнения приказов по символу
- Маржинальные требования
- Правила истечения сроков отложенных ордеров
- Спреды и отступы приказов от текущей цены
- Получение величины свопов
- Текущая рыночная информация (тик)
- Описательные свойства символов
- Глубина стакана цен
- Свойства пользовательских символов
- Специфические свойства (биржа, срочный рынок, облигации)
Получение списков доступных символов и Обзора рынка
Для действий с символами MQL5 API имеет несколько функций. С помощью них можно узнать общее количество доступных символов, количество символов, выбранных в Обзор рынка, а также их имена. Как известно, общий перечень символов, доступных в терминале, указан в виде иерархической структуры в диалоге Символы, который пользователь может открыть командой Вид -> Символы или из контекстного меню Обзора рынка. В этот перечень включены как символы, предоставляемые брокером, так и пользовательские символы, созданные локально. Общее количество символов позволяет узнать функция SymbolsTotal.
int SymbolsTotal(bool selected)
Параметр selected задает, запрашиваются ли только символы в Обзоре рынка (true) или все доступные символы (false).
В паре с SymbolsTotal обычно используется еще одна функция — SymbolName: она возвращает название символа по его сквозному номеру (группировка хранения символов по логическим папкам здесь не учитывается, см. свойство SYMBOL_PATH).
string SymbolName(int index, bool selected)
Параметр index задает номер запрашиваемого символа. Значение index должно лежать в пределах от 0 до количества символов, с учетом контекста запроса, определяемого вторым параметром selected: true ограничивает перечисление символами, выбранными в Обзор рынка, в то время как false соответствует абсолютно всем символам (по аналогии с SymbolsTotal). Следовательно, при вызове SymbolName следует всегда указывать в selected такое же значение, как и при предыдущем вызове SymbolsTotal, использованном для определения диапазона индексов.
В случае ошибки, в частности, если запрошенный индекс выходит за пределы списка, функция вернет пустую строку, а код ошибки записывается в переменную _LastError.
Важно отметить, что при включенной опции selected пара функций SymbolsTotal и SymbolName возвращает информацию для списка символов, реально актуализируемых терминалом, то есть символов, по которым производится постоянная синхронизация с сервером, а для MQL-программ доступна история котировок. Этот список может быть больше списка, видимого в Обзоре рынка, куда элементы добавляются явным образом: пользователем или MQL-программой (о том, как это делается — см. раздел Редактирование списка Обзора рынка). Такие невидимые в окне символы автоматически подключаются терминалом, когда они необходимы для расчета кросс-курсов. Среди свойств символов имеются два, позволяющие отличить явный выбор (SYMBOL_VISIBLE) от неявного (SYMBOL_SELECT) — они будут рассмотрены в разделе о проверке состояния символа. Строго говоря, для функций SymbolsTotal и SymbolName установка selected в true соответствует расширенному набору символов с взведенным свойством SYMBOL_SELECT, а не только тех, что имеют SYMBOL_VISIBLE равное true.
Порядок, в котором возвращаются символы Обзоры рынка, соответствует окну терминала (с учетом возможной перестановки, сделанной пользователем, и без учета сортировки по какой-либо колонке, если она включена). Изменить порядок символов в Обзоре рынка программным образом нельзя.
Порядок в общем списке Символов задается самим терминалом (содержимое и сортировка Обзора рынка на него не влияет).
В качестве примера рассмотрим простой скрипт SymbolList.mq5, который выводит в журнал доступные символы. Входной параметр MarketWatchOnly позволяет пользователю ограничить список только символами в Обзоре рынка (если параметр равен true) или получить полный список (false).
#property script_show_inputs
|
Ниже приводится пример журнала.
Total symbol count: 10
|