Работа завершена

Техническое задание
Облегчил задание в 2 раза. Убрал вторую часть и полностью переписал ТЗ по шаблону https://www.mql5.com/ru/articles/4304#venivedivici
Требуется построить индикатор «ZigZag» на экстремумах индикатора «CHO».
Идея индикатора
Требуется построить индикатор ZigZag на экстремумах, которые будем определять с помощью индикатора «CHO». Индикатор есть в комплекте MT5. В его настройках, для наглядности, нужно поменять DRAW_LINE на DRAW_HISTOGRAM.
Алгоритм и Термины
Строительство Зигзага на графике:
1. Зоной перекупленности называются свечи, на которых показания индикатора «CHO» больше нуля (положительная волна).
2. Зоной перепроданности называются свечи, на которых показания индикатора «CHO» меньше нуля (отрицательная волна).
3. На свечи в зоне перекупленности в точке High ставим зелёную точку, это H-точки.
4. На свечи в зоне перепроданности в точке Low ставим красную точку, это L-точки.
5. Из всех свечей, которые находятся между зелёными точками, ищем точку с минимальной ценой, это будет LL-точка.
6. Из всех свечей, которые находятся между красными точками, ищем точку с максимальной ценой, это будет HH-точка.
7. Соединяем LL и HH точки между собой, чтобы получился индикатор ZigZag. Цвет по умолчанию - желтый.
Строительство Зигзага на индикаторе:
Луч зигзага перемещается по экстремумам баров в каждой волне. Цвет по умолчанию - желтый.
Дополнительные условия для построения зигзага:
1. На графике минимальная длина луча в пунктах ограничена внешней настройкой «Deviation».
2. На индикаторе смена полярности луча ограничена количеством свечей подряд, на которых показания индикатора будут больше или меньше нуля. Внешняя настройка «Backstep».
Если например «Backstep = 3», то:
1. Луч зигзага меняет свою полярность только после образования трёх баров индикатора противоположной полярности подряд.
2. Первые две свечи в зоне противоположной полярности индикатора не помечаются
никакими точками, пока не появится третья.
3. Если при смене полярности волны на индикаторе предполагаемый луч зигзага получается в длину меньше «Deviation», то луч не меняет полярность ни на графике, ни на индикаторе.
Пошаговый пример с настройкой «Backstep = 3»:
Вертикальными линиями выделены зоны смены волн (полярность лучей) с учётом «Backstep = 3»:
Красные точки - LL
Зелёные точки - HH
Вертикальные линии и точки на графике рисовать не нужно, нужны только зигзаги.
Перечень внешних настроек:
Fast MA period = 3 // быстрая МА
Slow MA period = 10 // медленная МА
MA method = 0 // метод сглаживания
Deviation = 50 // минимальная длина луча зигзага в пунктах
Backstep = 3 // количество баров индикатора «CHO» для смены полярности луча
Volumes = Tick // тип объёма (тики, реал)
CountBars = 3000 // количество обсчитываемых свечей
В индикаторе нужно запомнить в буфер показания четырёх последних экстремумов зигзага (4 на графике и 4 на индикаторе) и пронумеровать их справа налево.