작업 종료됨
![](https://c.mql5.com/i/avatar/avatar_na2.png)
명시
Техническое задание на написание индикатора ФЛЭТА путем перебора свечей, для МТ4.
Ссылка на видео с описанием работы будущего индикатора - https://www.youtube.com/watch?v=3VezlXMVfFM
Настройки индикатора:
Количество баров на истории для отображения – N (Бар с которого начнется работа индикатора)
Рисование трендовых линий по High_Low – true / false
Цвет трендовых линий для High_Low
Стиль трендовых линий для High_Low
Толщина трендовых линий для High_Low
Рисовать на Заднем плане все трендовые линии – true /false
Цена линий High и Low должна выводиться в 2 разных буфера индикатора
Индикатор должен работать как на истории, так и в режиме реального времени.
Краткое описание логики индикатора:
Индикатор должен находить и строить торговые диапазоны. Всего 2 типа построения торгового диапазона. 1-й – это
Когда в диапазон (между High и Low) бара 24 помещаются Open и Close следующих минимум 3 баров (в данном случае 23,22,21 баров, а может быть и больше). Данный тип диапазона может перерисовываться.
![](https://c.mql5.com/21/331/4862619446528.png)
2-й – это Когда открытие и закрытие 3-х баров (именно 3-х баров), помещаются в диапазон (между High и Low) бара, т.е. Open и Close баров 6,5,4 находится в диапазоне между High и Low бара 3. Данный тип диапазона всегда статичен и не перерисовывается.
![](https://c.mql5.com/21/331/6183138894175.png)
Итак рассмотрим подробнее начиная например с 24 бара:
![](https://c.mql5.com/21/331/1194672284594.png)
Если в диапазон (между High и Low) бара помещаются открытие и закрытие следующих минимум 3 баров (на само деле баров может быть и больше), то находим из этих 4 (в данном случае) баров максимальный High и минимальный Low и рисуем по ним трендовые линии. Как мы видим между High[24] и Low[24] помещаются Open[23] и Close[23], Open[22] и Close[22], Open[21] и Close[21], т.е. в диапазон 24 бара помещаются открытие и закрытие следующих 3 баров. Теперь рисуем трендовую линию по максимальному High из этих 4 баров и минимальному Low из этих 4 баров, начиная с 24 бара и заканчивая 21 баром. Обязательно запоминаем номер последнего бара, образующий диапазон, в данном случае 21 бар. Найден 1-й тип диапазона. Выглядеть должно это так:
![](https://c.mql5.com/21/331/2517578997693.png)
Как мы видим далее 20,19,18,17,16 бары так же попадают в диапазон 24 бара. Поэтому трендовые линии перерисовываются на максимальный High и минимальный Low из этих баров. Перерисовка происходит на каждом новом баре который входит в диапазон 24 бара. Обязательно запоминаем номер последнего бара, образующий диапазон, в данном случае это уже 16 бар. Перерисовываем 1-й тип диапазона. Выглядит это уже так:
![](https://c.mql5.com/21/331/3755911345755.png)
Далее 15 бар также попадает в диапазон 24 бара, но он также попадает и в диапазон 18 бара. Получается, что внутри диапазона 24 бара образовался новый диапазон 18 бара в который помещается 17,16 и 15 бар. Поэтому трендовые линии удаляются и рисуются новые по максимальным High и минимальным Low нового диапазона, начиная с 18 бара и по 15 бар. Обязательно запоминаем номер последнего бара, образующий диапазон, в данном случае это уже 15 бар. Найден 1-й тип диапазона. Выглядит это так:
![](https://c.mql5.com/21/331/4771761280760.png)
Далее 14,13 также помещается в диапазон 18 бара, поэтому трендовые линии перерисовываются. Обязательно запоминаем номер последнего бара, образующий диапазон, в данном случае это уже 13 бар. Перерисовываем 1-й тип диапазона. Выглядит это так:
![](https://c.mql5.com/21/331/5782238160424.png)
Далее 12 бар также попадает в диапазон 18 бара, но он также попадает и в диапазон 15 бара. Получается, что внутри диапазона 18 бара образовался новый диапазон 15 бара в который помещается 14,13 и 12 бар. Поэтому трендовые линии удаляются и рисуются новые по максимальным High и минимальным Low нового диапазона, начиная с 15 бара и по 12 бар. Обязательно запоминаем номер последнего бара, образующий диапазон, в данном случае это уже 12 бар. Найден 1-й тип диапазона. Выглядит это так:
![](https://c.mql5.com/21/331/533184041758.png)
Т.е. все это время трендовые линии перерисовывались и происходит это до тех пор пока 11 бар не вышел за диапазон (цена закрытия 11 бара стала больше верхней трендовой линии (в данном случае), в другом случае может быть наоборот выход за диапазон за нижнюю линию). В данный момент перерисовывание линий заканчивается и дальше где будет найден новый диапазон уже будут рисоваться новые линии.
Теперь, как бы все начинается с начало. Мы видим, что в диапазон 11 бара помещается 10,9,8 бар. Поэтому рисуем трендовую линию по максимальному High из этих 4 баров и минимальному Low из этих 4 баров, начиная с 11 бара и заканчивая 8 баром. Обязательно запоминаем номер последнего бара, образующий диапазон, в данном случае это уже 8 бар. Найден 1-й тип диапазона. Выглядеть должно это так:
![](https://c.mql5.com/21/331/1833056163638.png)
Далее 7 бар также попадает в диапазон 11 бара, но он также попадает и в диапазон 10 бара. Получается, что внутри диапазона 11 бара образовался новый диапазон 10 бара в который помещается 9,8 и 7 бар. Поэтому трендовые линии удаляются и рисуются новые по максимальным High и минимальным Low нового диапазона, начиная с 10 бара и по 7 бар. Обязательно запоминаем номер последнего бара, образующий диапазон, в данном случае это уже 7 бар. Найден 1-й тип диапазона. Выглядит это так:
![](https://c.mql5.com/21/331/2806621372967.png)
Т.е. все это время трендовые линии перерисовывались и происходит это до тех пор пока 6 бар не вышел за диапазон (цена закрытия 6 бара стала ниже нижней трендовой линии (в данном случае). В данный момент перерисовывание линий заканчивается и дальше где будет найден новый диапазон уже будут рисоваться новые линии.
Теперь, как бы опять все начинается с начало. Только теперь 6,5,4 бар попадают в диапазон 3 бара и первый бар нового диапазона (бар номер 6) меньше номера бара который мы запоминали (7 бар). Это необходимо что бы трендовые линии диапазонов не наезжали друг на друга. Это сравнение баров происходит только при 2-м типе диапазона. Также обязательно запоминаем номер последнего бара, образующий диапазон, в данном случае это уже 3 бар. Найден 2-й тип диапазона. Выглядит это так:
![](https://c.mql5.com/21/331/3897570032108.png)
И т.д.