Идентификация графиков

Каждый график в MetaTrader 5 "живет" в отдельном окне и обладает уникальным идентификатором. Для программистов, знакомых с принципами работы Windows, уточним, что данный идентификатор не является системным дескриптором окна (хотя MQL5 API и позволяет получить последний через свойство CHART_WINDOW_HANDLE). Как мы знаем, кроме основной рабочей области графика с котировками в нижней части окна могут появляться выделенные дополнительные области (подокна) с индикаторами, имеющими свойство indicator_separate_window. Все подокна являются частью графика и принадлежат одному окну Windows.

long ChartID()

Функция возвращает уникальный идентификатор текущего графика.

Во многих функциях, которые мы рассмотрим далее, требуется идентификатор графика в качестве параметра, но для текущего графика можно указывать 0 вместо вызова ChartID. Использовать ChartID имеет смысл в тех случаях, когда идентификатор пересылается между MQL-программами, например, при обмене сообщениями (пользовательскими событиями) на одном графике или на разных. Указание неверного идентификатора приведет к ошибке ERR_CHART_WRONG_ID (4101).

Идентификатор графика, как правило, остается прежним от сеанса к сеансу.

Мы продемонстрируем работу функции ChartID и то, как выглядят идентификаторы, в примере скрипта ChartList1.mq5, после изучения способа получения списка графиков.