Продвинутое использование торговой платформы MetaTrader 5. Создание индикаторов и торговых роботов на MQL5 и Python. Издание 3-е, исправленное и дополненное

Давайте, модифицируем код индикатора ADX таким образом, чтобы раскрасить диаграмму ADX в четыре цвета, которые соответствуют описанным выше четырем торговым сигналам.



В качестве первого шага изменим свойство indicator_type1 на DRAW_COLOR_LINE.

Далее увеличим на единицу значение свойства indicator_buffers на значение 7.

Объявим массив для буфера цвета ExtColorsBuffer.



И в функции OnInit() свяжем объявленный массив с буфером цвета с помощью функции SetIndexBuffer.

Тут есть хитрость – индекс буфера цвета должен следовать за индексом буфера значений индикатора.

Если, например, связать массив ExtColorsBuffer с буфером с индексом 6, тогда индикатор не будет корректно отрисовываться.



В свойство indicator_color1 добавим цветов.

И увеличим толщину линии с помощью свойства indicator_width1.



В функции OnCalculate в конце перед закрывающей скобкой цикла for добавим код заполнения буфера цвета значениями согласно описанной нами стратегии.



Откомпилируем код и получим индикатор с визуальным отображением сигналов на покупку и продажу: