MQL-программа может получить список открытых в терминале графиков (как окон, так и объектов-графиков) с помощью функций ChartFirst и ChartNext.
long ChartFirst()
long ChartNext(long chartId)
Функция ChartFirst возвращает идентификатор первого графика клиентского терминала. MetaTrader 5 поддерживает некий внутренний список всех графиков, порядок в котором может отличаться от того, что мы видим на экране, например, в закладках окон, когда те максимизированы. В частности, порядок в списке может поменяться в результате перетаскивания вкладок, открепления и закрепления окон. После загрузки терминала видимый порядок закладок совпадает с внутренним представлением списка.
Функция ChartNext возвращает идентификатор графика, следующего за графиком с указанным идентификатором chartId.
В отличие от других функций для работы с графиками, значение 0 в параметре chartId означает не текущий график, а "начало списка". Иными словами, вызов ChartNext(0) эквивалентен ChartFirst.
Если достигнут конец списка, функция возвращает -1.
Скрипт ChartList1.mq5 позволяет вывести в журнал список графиков. Основную работу выполняет функция ChartList, вызываемая из OnStart. В самом начале функции мы узнаем идентификатор текущего графика с помощью ChartID и позднее помечаем его звездочкой в списке. В конце выводится общее количество графиков.
void OnStart()
|
Ниже показан пример результата.
Chart List
|