Индикатор ChannelsFIBO

Индикатор ChannelsFIBO_v2

Индикатор ChannelsFIBO_MTF

Индикатор ChannelsFIBO_v2_MTF

 

Огромное количество идей, возникающих на бескрайних просторах Интернета, не может не радовать исследователей различного калибра. К сожалению (а может и к счастью), реализация большинства из этих идей оставляет желать лучшего, т. к. они страдают либо банальной непроработкой (отсутствует глубина разработки решения), либо пестрит разного рода техническими ошибками.

Типичным представителем такого рода идей оказался индикатор MA_Channels_FIBO, который, ко всему прочему, написан достаточно давно, т. к. выполнен в стиле "старого MQL4".

 

Оригинальный индикатор MA_Channels_FIBO

Индикатор MA_ChannelsFIBO отображает канал, состоящий из восьми линий. Осью отображения этих линий является простая скользящая средняя линия. Четыре линии индикатора отображаются выше средней линии, а остальные четыре - ниже. В итоге формируется четыре пары линий. Линии каждой пары располагаются на одинаковом расстоянии от средней линии (см. рис. 1).

 

Рис. 1. Отображение MA_Channels_FIBO.

Эталонным расстоянием от средней скользящей линии до границы канала (т. е. 100% высоты) является максимальное удаление цены как вверх, так и вниз, от средней линии за заданный пользователем интервал, выражаемый в свечах. По умолчанию он равен 500 барам, а период расчета среднего значения цены - 100 баров.

Проблемой индикатора является его подглядывание в будущее, часто называемое "перерисовкой индикатора". Выявляется эта проблема просто - достаточно запустить индикатор в визуализаторе тестера стратегий и при помощи горизонтальных прямых (каждая прямая совпадает по цвету с линией индикатора) запомнить положение линий индикатора на одном баре (см. рис. 2),

 

Рис. 2. Начальный этап проверки данных индикатора.

а затем, промотав несколько баров вправо, проверить положение линий индикатора на том же баре (см. рис. 3).

 

Рис. 3. Конечный этап проверки данных индикатора.

Очень хорошо видно, что линии индикатора сместились вверх относительно тех уровней, которые имели место на этом же баре (2014.12.31 10:17) пятью часами ранее.  Поэтому приходим к выводу, что индикатор вычисляет эталонное расстояние на основании самых свежих данных, и применяет их ко всем тем барам, для которых производится расчет значений, т. е. изменяет демонстрируемую картину на 500-ах исторических барах. Этот вывод подтверждается анализом кода индикатора.

 

Индикатор ChannelsFIBO

Для исправления поведения индикатора MA_Channels_FIBO в части перерисовки, создадим новый индикатор - ChannelsFIBO. Он написан на "новом MQL4", а также имеет несколько дополнительных возможностей, заключающихся в настройке положения каждой из четырех отображаемых линий в процентах от эталонного расстояния. Это параметры "Уровень Фибо 1".."Уровень Фибо 4". Также в индикаторе разделены параметры, указывающие глубину поиска экстремума и глубину отображения показаний индикатора.

В итоге получается такой вид показаний индикатора на том же интервале, который приведен на рис. 1 (см. рис. 4).

 

Рис. 4. Правильные показания индикатора ChannelsFIBO.

Да, уже не настолько красиво, но, главное - правдиво, без лукавства.

Кроме того, в индикаторе реализован алгоритм расчета, более щадящий системные ресурсы. Это позволяет использовать индикатор в советниках, чего не скажешь об оригинальной версии, вызывающей существенное замедление расчетов при работе в тестере стратегий.

 

Другие эталонные расстояния

В качестве эталонного расстояния в канале Фибо можно использовать другие показатели, вычисленные на указанном историческом интервале. Некоторые из возможных показателей, наряду с максимальным значением смещения, вошли во вторую версию индикатора - ChannelsFIBO_v2 (см. рис. 5).

 

Рис. 5. Выбор используемого эталонного расстояния. 

Вторая версия выполнена в более универсальном стиле, позволяющем реализовать в ней любой принцип расчета эталонного расстояния. По этой причине при выборе в качестве метода расчета значения "По максимальному смещению" индикатор несколько уступает в скорости работы первой версии, оптимизированной именно под этот метод расчетов.

Эталонное расстояние, рассчитанное как среднеквадратичное отклонение рыночных цен от среднего скользящего (метод расчета - "По СКО"), дает такую картину показаний индикатора, которая воспринимается намного комфортнее, чем картина, рассчитанная по максимальному смещению (см. рис. 6).

 

Рис. 6. Расчет данных по СКО.

 

Мультипериодные версии

К каждой из рассмотренных выше версий индикатора ChannelsFIBO прилагается мультипериодная версия: ChannelsFIBO_MTF и ChannelsFIBO_v2_MTF соответственно. Они отличаются от исходных версий тем, что располагают дополнительным параметром "Таймфрейм исходных данных", при помощи которого указывается период графика для расчета показаний индикатора. Так, текущий таймфрейм графика может быть М15, а индикатор будет отображать ту ситуацию, которая соответствует графику с периодом Н1, если, конечно, в качестве исходного таймфрейма указан именно "1 Hour" (см. рис. 7). 

Рис. 7. Мультипериодная версия индикатора ChannelsFIBO.

Мультипериодные версии имеют ограничение: текущий период графика не может быть старше значения, указанного в параметре "Таймфрейм исходных данных", т. к. в этом случае одному бару будет соответствовать сразу несколько значений одной и той же линии канала. К примеру, если "Таймфрейм исходных данных" - "1 Hour", а период текущего графика Н4 и выше, то индикатор попросту ничего не отобразит на экране.