- Функции для получения основных свойств текущего графика
- Идентификация графиков
- Получение списка графиков
- Получение символа и таймфрейма произвольного графика
- Обзор функций для работы с полным набором свойств
- Описательные свойства графика
- Проверка состояния основного окна
- Получение количества и признака видимости окон/подокон
- Режимы отображения графика
- Управление видимостью элементов графика
- Отступы по горизонтали
- Горизонтальный масштаб (по времени)
- Вертикальный масштаб (по цене и показаниям индикаторов)
- Цвета
- Управление мышью и клавиатурой
- Открепление окна графика
- Получение координат буксировки MQL-программы на график
- Перевод экранных координат во время/цену и обратно
- Прокрутка графика по оси времени
- Запрос перерисовки графика
- Переключение символа и таймфрейма
- Управление индикаторами на графике
- Открытие и закрытие графиков
- Работа с tpl-шаблонами графика
- Сохранение изображения графика
Цвета
MQL-программа может узнать и изменить цвета для отображения всех элементов графика. Соответствующие свойства входят в состав перечисления ENUM_CHART_PROPERTY_INTEGER.
Идентификатор |
Описание |
---|---|
CHART_COLOR_BACKGROUND |
Цвет фона графика |
CHART_COLOR_FOREGROUND |
Цвет осей, шкалы и строки OHLC |
CHART_COLOR_GRID |
Цвет сетки |
CHART_COLOR_VOLUME |
Цвет объемов и уровней открытия позиций |
CHART_COLOR_CHART_UP |
Цвет бара вверх, тени и окантовки тела бычьей свечи |
CHART_COLOR_CHART_DOWN |
Цвет бара вниз, тени и окантовки тела медвежьей свечи |
CHART_COLOR_CHART_LINE |
Цвет линии графика и контуров японских свечей |
CHART_COLOR_CANDLE_BULL |
Цвет тела бычьей свечи |
CHART_COLOR_CANDLE_BEAR |
Цвет тела медвежьей свечи |
CHART_COLOR_BID |
Цвет линии Bid-цены |
CHART_COLOR_ASK |
Цвет линии Ask-цены |
CHART_COLOR_LAST |
Цвет линии цены последней совершенной сделки (Last) |
CHART_COLOR_STOP_LEVEL |
Цвет уровней стоп-ордеров (Stop Loss и Take Profit) |
В качестве примера работы с данными свойствами создадим скрипт ChartColorInverse.mq5, который будет менять все цвета графика на инверсивные, то есть для битового представления цвета в формате RGB будет выполняться операция XOR ('^', исключающее ИЛИ). Таким образом, после повторного запуска скрипта на том же графике его настройки будут восстановлены.
#define RGB_INVERSE(C) ((color)C ^ 0xFFFFFF)
|
На следующем изображении совмещены образы графика до и после применения скрипта.
Инверсия цветов графика из MQL-программы
Теперь закончим доработку IndSubChart.mq5. Нам осталось прочитать цвета основного графика и применить их к диаграмме нашего индикатора. Для этих целей уже была запланирована функция SetPlotColors, вызов которой был закомментирован в обработчике OnChartEvent (см. последний пример в разделе Режимы отображения графика).
void SetPlotColors(const int index, const ENUM_CHART_MODE m)
|
В этой новой функции мы получаем, в зависимости от режима отрисовки графика, либо цвета контуров и тел бычьих и медвежьих свечей, либо цвет линий, и применяем цвета к диаграммам. Разумеется, не забудем вызвать эту функцию при инициализации.
int OnInit()
|
Индикатор готов. Попробуйте набросить его в окно и поменять цвета в диалоге свойств графика — диаграмма должна автоматически адаптироваться по новые настройки.