- Функции для получения основных свойств текущего графика
- Идентификация графиков
- Получение списка графиков
- Получение символа и таймфрейма произвольного графика
- Обзор функций для работы с полным набором свойств
- Описательные свойства графика
- Проверка состояния основного окна
- Получение количества и признака видимости окон/подокон
- Режимы отображения графика
- Управление видимостью элементов графика
- Отступы по горизонтали
- Горизонтальный масштаб (по времени)
- Вертикальный масштаб (по цене и показаниям индикаторов)
- Цвета
- Управление мышью и клавиатурой
- Открепление окна графика
- Получение координат буксировки MQL-программы на график
- Перевод экранных координат во время/цену и обратно
- Прокрутка графика по оси времени
- Запрос перерисовки графика
- Переключение символа и таймфрейма
- Управление индикаторами на графике
- Открытие и закрытие графиков
- Работа с tpl-шаблонами графика
- Сохранение изображения графика
Запрос перерисовки графика
В большинстве случаев графики автоматически реагируют на изменения данных и настроек терминала, соответствующим образом перестраивая изображение окна (графики цен, диаграммы индикаторов и т.д.). Однако MQL-программы слишком разнообразны и могут выполнять произвольные действия, для которых не столь просто определить, требуется ли перерисовка или нет. Кроме того анализировать на этот счет любое действие каждой MQL-программы может быть накладно в плане падения общей производительности терминала. Поэтому MQL5 API предоставляет функцию ChartRedraw, с помощью которой сама MQL-программа может при необходимости запросить перерисовку графика.
void ChartRedraw(long chartId = 0)
Функция вызывает принудительную перерисовку графика с указанным идентификатором (значение по умолчанию 0 — означает текущий график). Обычно она применяется после того, как программа изменяет свойства графика или размещенных на нем объектов.
Мы видели пример использования ChartRedraw в индикаторе IndSubChart.mq5 в разделе Режимы отображения графика. Еще один пример будет приведен в разделе Открытие и закрытие графиков.
Данная функция влияет именно на перерисовку графика, не вызывая пересчета таймсерий с котировками и индикаторов. Последний вариант обновления (фактически, перестроения) графика является более "жестким" и выполняется другой функцией ChartSetSymbolPeriod (см. следующий раздел).