Как работает индикатор зигзаг форекс
Содержание статьи
Как работает индикатор зигзаг форекс
Как работает индикатор Зигзаг?
Данный индикатор предназначается для анализа движений цен с заданной амплитудой и представляет собой линии тренда, соединяющие главные основания и вершины на графике. Благодаря тому, что индикатор зигзаг изображает только самые важные развороты и другие моменты изменений тенденции, он значительно облегчает оценку графиков.
При работе с Зигзагом необходимо учитывать, что последний отрезок может изменяться в зависимости от изменений рассматриваемых данных. Собственно поэтому индикатор zigzag лучше всего использовать для анализа минувших ценовых изменений.
RoboForex — работайте с лучшими
- 8000 американских и европейских акций
- криптовалюты и криптоиндексы
- 9 лет на рынке
- Welcome бонус 30$
- спреды на форекс от 0 пунктов
Стандартный индикатор zigzag, описание его параметров свидетельствует о том, что он не может быть использован для анализа, но в тоже время может быть весьма полезным инструментом совместно с иными техническими индикаторами, например, полосы Боллинджера и фракталами. Надо сказать, что по своей сути, Зигзаг является не индикатором, а в большей степени средством, которое отфильтровывает случайный шум и сравнивает относительные движения цен. Такие ценовые колебания часто мешают определить направление рынка. Так, индикатор zigzag используют для отметки минимальных ценовых изменений и игнорирования не соответствующих установленным критериям. Как правило, минимальные движения цен указываются в процентных значениях и основываются на диапазоне максимума-минимума, а так же на закрытии.
Рассмотрим пример. Допустим, zigzag индикатор установлен на 10% с OHCL-барами. Это привело бы к линии, разворачивающейся после изменения минимума 10%, при этом все ценовые движения меньше 10% будут игнорироваться. Значит, при торговле от 100 до 109, индикатор зигзаг линию не проведет, так как произошло движение 9%, а это меньше 10%. Допустим, что далее цена рыночного инструмента продвинулась до отметки 110, в этом случае индикатор zigzag проведет линию от 100 до 110. Если цена будет продолжать движение, например, до отметки 112, то линия продлится до 112. Линия не развернется, пока цена рыночного инструмента не понизится на 10 % или более. Таким образом, на данном примере, чтобы линия развернулась, цена должна понизиться на 11,2 пунктов, то есть до 100,8.
Применение индикатора зигзаг
Ежедневные колебания цен производят беспорядочные движения или, так называемый, рыночный шум. Зигзаг можно использовать как фильтр от этого шума. Например, если трейдер посчитает движения цены менее 5% незначительным, то при установке Зигзага движения цен менее 5% он будет игнорировать.
Зигзаг может быть использован для определения волн Эллиота.
Как пример рассмотрим валютную пару EUR/USD, при этом индикатор зигзаг поставлен на 15%, следовательно, приведены движения более 15%. Диаграмма показывает, значительное снижение, которое началось в июне 2012г. и образовало за месяц 5-волновую структуру.
Кроме этого, zigzag индикатор применяется для измерения восстановления. Как правило, после повышения или понижения осуществляется коррекционное восстановление этого движения. В соответствии с Теорией Доу самыми вероятными восстановлениями являются части 1/3, 2/3 и 1/2 от предшествующего движения. Опираясь на числа Фибоначчи, наиболее значительными уровнями восстановления считаются 61.8% и 38.2% от предыдущего движения.
Во время подъема 34 – 55 HAL рыночный инструмент дважды корректировался (волна 2 и 4) и исполнил 2 цели восстановления Фибоначчи: 0,618 и 0,786. Число Фибоначчи 0,618 является «золотым сечением». Корень квадратный из 0,618 равен 0,786 (или 78.6 %) — это другое Число Фибоначчи, которое часто используется Скоттом Карнеем. Далее в марте 2000г. HAL восстанавливает 79.8 % от повышения (красный овал) в волне 1. По сравнению с минимумом марта 2000г. цена повысилась в 1.7 раза и образовала волну 3, что довольно близко от уровня Фибоначчи — 1.618. Благодаря коррекции в волне 4, произошло восстановление в волне 3 67.6%. Не смотря на то, что 79.8% и 67.6% не точные уровни восстановления, но они достаточно близки к значениям Фибоначчи 78.6% и 61.8%, чтобы на них обратить внимание.
Так же индикатор zigzag используют для измерения первичного движения цен, которое возникает в направлении основного тренда. Первичные движения цен не восстанавливают часть от предыдущего движения, а проходят мимо предшествующего коррекционного минимума или максимума. Большинство аналитиков, использующих последовательности Фибоначчи и волны Элиота, проектируют длину снижения или повышения, умножая на определенное соотношение предыдущее восстановление.
Индикатор Зигзаг в графических программах
Как правило, в графических программах выделяют 2 варианта данного индикатора: zigzag (базовый) и zigzag с восстановлениями. Оба индикатора проводят совершенно одинаковую линию, но при этом zigzag с восстановлениями может добавлять пунктирные линии и ярлычки для восстановительных соотношений.
Zigzag (базовый) строит линию на основе минимального процентного изменения цены. В стандартном MetaTrader 4 настройки индикатора ZigZag имеют следующий вид.
- Где ExtDeviation – это минимальное количество пунктов между максимумами (минимумами) двух соседних свечей для того чтобы индикатор Zigzag сформировал локальную вершину (локальную впадину). Этот параметр выражается в процентах.
- ExtDepth – это тот минимум свечей, на котором индикатор Zigzag не будет строить второй максимум (или минимум), если тот меньше (или больше) на ExtDeviation предыдущего соответственно.
- ExtBackstep –минимальное число свечей между локальными максимумами, минимумами.
Для Зигзага процентное изменение цен можно изменять с помощью опции ExtDeviation. По умолчанию это значение установлено на 12%. Таким образом, ценовые движения равные 12% или больше отмечаются линией Зигзага, а малые ценовые движения игнорируются.
Zigzag с восстановлениями
Zigzag с восстановлениями охватывает соотношения смежных движений цен. На примере с IBM, индикатор zigzag с/восстановлениями установлен на 12%, игнорируя меньшие изменения. Проводилось сравнение трех пар ценовых движений с июня по ноябрь 2000г. На диаграмме пунктирные линии соединяют соответственные минимумы или максимумы, а соотношение обозначено пунктирной линии. В этом случае первое соотношение было равно 1,566, при этом повышение составило 156,6% от предшествующего снижения. При этом формула рассчитывается в 3 этапа:
- Первое Движение Цены — Снижение: 122,31-100 = 22,31
- Второе Движение Цены — Повышение: 134,94-100 = 34,94
- Отношение Повышение/Снижение: 34,94/22.31 = 1,566
Расчеты для 2-х других отношений (1,374 и 0,309) изображены на диаграмме.
Zigzag относится к сигнальным индикаторам валютного рынка (индикаторы, дающие сигнал к входу) и предназначается для анализа рынков с выраженным трендом. Зигзаг и его модификации входят во все популярные торговые платформы forex. Этот индикатор представляет хороший вариант для наглядного изображения локальных ценовых трендов, кроме этого индикатор зигзаг может применяться как помощник при установлении волновой структуры Элиота. Данный индикатор изображает наиболее значительные откаты и развороты в тренде.
В заключение нужно еще раз отметить, что zigzag индикатор не прогнозирует ценовое движение и строит линии на основе фактического движения. Для прогнозирования движения цен можно применять Волны Эллиота или числа Фибоначчи. При работе с этим индикатором нужно учитывать, что окончательная линия может изменяться, поэтому zigzag лучше применять для анализа уже сформировавшихся ценовых изменений.
Индикатор "ЗигЗаг": новый взгляд и новые решения
Индикатор «ЗигЗаг» известен, наверное, каждому трейдеру и предназначен для анализа движений цены с заданной или большей амплитудой. ЗигЗаг — это ломаная линия, узлы которой находятся в точках максимальных и минимальных значений ценового графика.
Существует множество версий этого индикатора: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16. Тем не менее, интерес к написанию собственного «идеального» зигзага возникает у многих разработчиков программ на языке MQL5. Главными недостатками ЗигЗага являются: запаздывание, некорректная разметка спорных узлов (внешний бар), неудовлетворительное быстродействие.
На мой взгляд, самая изящная реализация ЗигЗага сделана Юрием Куликовым (Yurich). Кроме того, на MQL4 есть очень хорошие статьи: «Записки дилетанта. ZigZag. » и «Show Must Go On. или очередное возвращение к ZigZag’у». Казалось бы, тема исследована очень подробно и имеется множество публикаций, но что-то притягивает внимание к этому индикатору снова и снова. Вот и меня заинтересовала эта тема, а именно — возможность создания опережающего ЗигЗага.
В данной статье изложен метод построения опережающего зигзага с использованием индикатора конвертов (Envelopes). Предполагается, что можно подобрать такую комбинацию входных параметров серии конвертов, при которой подавляющее большинство узлов ЗигЗага будут находиться в пределах линий Envelopes.
Методика создания опережающего ЗигЗага
Поставим перед собой цель: найти координаты двух узлов — текущего и прогнозируемого (рис. 1). Текущий — это тот, который ещё не сформировался и продолжается поиск или корректировка его координат. При этом он всё время находится на текущем (нулевом) баре. А прогнозируемый должен находиться в будущем и показывать предполагаемый уровень следующего узла ЗигЗага.
Рис. 1. Прогнозирование новых узлов ЗигЗага — текущего и следующего.
Итак, цель поставлена и есть идея, как использовать конверты скользящих средних в качестве опорных линий для построения опережающего индикатора (рис. 2). Будем искать такие линии конвертов, отклонения которых от узлов ЗигЗага будут минимальны. И вполне логично, что для вершин и впадин ЗигЗага искать эти линии нужно отдельно.
Рис. 2. Индикаторы ЗигЗаг и конверты скользящей средней (Envelopes).
Для повышения статистической достоверности прогноза следует взять не один индикатор Envelopes и даже не 10, а целый веер, например 100 или более индикаторов с разными входными данными. Отличаться они будут периодом усреднения основной линии индикатора и используемой ценой (для вершин — цены High, а для впадин — цены Low). Введём следующие обозначения и формулы:
- ZZ — индикатор ЗигЗаг;
- ENV — основная линия индикатора Envelopes (совпадает с индикатором iMA);
- Envelopes(i) — значение основной линии индикатора Envelopes на i-ом баре;
- ZZ(High) — значение вершины индикатора ЗигЗаг;
- ZZ(Low) — значение впадины индикатора ЗигЗаг;
- ENV(High) — значение основной линии индикатора Envelopes соответствующее вершине индикатора ЗигЗаг;
- ENV(Low) — значение основной линии индикатора Envelopes соответствующее впадине индикатора ЗигЗаг;
- n_high — количество вершин индикатора ЗигЗаг;
- n_low — количество впадин индикатора ЗигЗаг.
Всего у нас есть два веера индикаторов: один для вершин и один для впадин (примерно по сто штук в каждом). Для каждого индикатора из веера мы будем рассчитывать отклонения узлов ЗигЗага от основной линии Envelopes! И для каждого индикатора из веера мы будем находить среднее арифметическое отклонений по формулам выше. На следующем рисунке показана диаграмма отклонений найденных узлов ZZ от основной линии ENV для одного индикатора.
Рис. 3. Диаграмма отклонений узлов ZZ от ENV.
Среднее арифметическое отклонений и будет использоваться для определения высоты, на которую нужно сдвигать основную линию индикатора Envelopes для построения линии конвертов. То есть среднее арифметическое отклонений от вершин ЗигЗага используется для построения верхней линии (upper line), а среднее арифметическое отклонений от впадин используется для построения нижней линии (lower line) индикатора Envelopes.
Именно верхнюю и нижнюю линии конвертов мы будем использовать для поиска характерных точек и прогнозирования узлов ЗигЗага. Повторю, нас интересует веер конвертов состоящий из множества индикаторов Envelopes. Для каждого индикатора находим среднее арифметическое отклонений узлов ЗигЗага от основной линии взятого конверта. Если нанести полученные линии (upper line и lower line) веера на график, то мы можем получить следующий результат:
Рис. 4. Линии Envelopes на плоскости.
Если предположить, что каждая линия находится на отдельной плоскости, а все вместе они создают поверхность, то на рисунке выше мы видим лишь проекции каждого индикатора на плоскость графика цен. Те же линии в пространстве будут выглядеть примерно так:
Рис. 5. Линии Envelopes в пространстве (3D).
Теперь сделаем небольшое погружение в геометрию. Представим, что веер линий индикаторов Envelopes — это поверхность в трехмерном пространстве. Возьмём плоскость, перпендикулярную ценовому графику и разрежем нашу поверхность в районе текущего (нулевого) бара.
В результате мы получаем сечение этой поверхности, которое представляет собой некоторую кривую линию (на рисунках выше рассмотрен частный случай, когда кривая является прямой линией). Для прогноза нам достаточно иметь координаты каждой точки этой кривой, которые в дальнейшем и будут использоваться для расчётов.
Нам потребуются следующие характеристики сечения: максимальная, минимальная точки и центр тяжести сечения (среднее арифметическое значений всех точек). Полученные характерные точки будем проецировать на текущий (нулевой) бар и сохранять эти данные в истории. Эти характерные точки станут опорными для текущего и следующего узлов ЗигЗага.
Поскольку мы отдельно ищем линии Envelopes для вершин и впадин, то и сечений у нас должно получиться два — одно для вершин, другое для впадин.
Для получения прогноза будем использовать ближайшую характерную точку. Например, если идёт поиск вершины ЗигЗага, то берём характерные точки сечения полученного в результате пересечения поверхности верхних линий индикатора Envelopes секущей плоскостью. И наоборот, для поиска впадины берём характерные точки сечения полученного в результате пересечения поверхности нижних линий индикатора Envelopes секущей плоскостью.
Тестирование нового индикатора
С методикой определились, теперь приступим к созданию индикатора. Первым делом найдём и нарисуем на графике последние узлы индикатора ЗигЗаг. Для этого воспользуемся созданным для нашей задачи классом AdvancedZigZag:
Здесь всего два метода:
- Count — находит все узлы Зигзага на заданном временном интервале (количестве баров) и сохраняет их в разных массивах, отдельно вершины и отдельно впадины. Так будет удобней проводить анализ и расчёт конвертов;
- Read — находит последние узлы и сохраняет их в один массив. Этот метод нам нужен для визуализации индикатора ЗигЗаг;
Также используется библиотека GetExtremums (автор Yury Kulikov) при помощи которой производится поиск узлов.
Разрабатываемый индикатор поместим в советник. Почему в советник, а не в индикатор? Это конечно дело вкуса, но, на мой взгляд, так рациональней. Конечно графический функционал у советников слабее, но зато есть выигрыш в производительности, т.к. индикаторы по одному символу работают в одном потоке, а каждый эксперт в своём отдельном потоке. Давайте посмотрим на код:
Здесь есть несколько моментов, которые требуют пояснения:
- Вместо индикатора iEnvelopes используется индикатор iMA. Это не подлог и не обман. Дело в том, что основная линия iEnvelopes совпадает с iMA! Поэтому удобней использовать именно индикатор скользящих средних — Moving Average.
- Используются два веера скользящих средних по 227 линий в каждом, итого 454 индикатора iMA! Много это или мало? В общем-то да, много. Но, во-первых, можно изменить количество индикаторов при необходимости, а во-вторых — нам нужна статистика. Что толку от того, что будем искать конверты для десятка узлов? Нам как минимум нужна сотня.
- Значения индикаторов загружаются в блоке OnTick(), а не в OnInit(). Если расположить блок загрузки данных в OnInit(), то очень высока вероятность того, что какие-либо данные не успеют подгрузиться и индикаторы не будут рассчитаны точно и в полном объёме. После того, как будут получены все данные для расчетов, значение переменной err станет положительным, и этот блок будет исключен из работы.
Итак, полученный индикатор рисует последние семь узлов индикатора ЗигЗаг и делает расчёт координат всех остальных узлов на заданной истории (рис. 6). Расчёт производится только один раз. В дальнейшем используются уже рассчитанные данные. Конечно можно сделать так, чтобы данные обновлялись регулярно, но в рамках этой статьи ограничимся только одним проходом.
Рис. 6. Индикатор ЗигЗаг (7 узлов).
Далее, построим сечения поверхностей индикаторов Envelopes. Для этого добавим в метод OnTick() следующие строки кода:
Для того чтобы можно было визуально различить точки сечения поверхности, образованной линиями конвертов, они изображаются разной толщины, а именно: чем больше период усреднения основной линии индикаторов Envelopes, тем они крупнее (рис. 7). Кроме того, сечения повёрнуты вокруг вертикальной оси, проходящей через текущий (нулевой) бар, в разные стороны: вершины на 90 градусов вправо, а впадины на 90 градусов влево.
В результате они стали видны в плоскости ценового графика. Изначально, они находились в плоскости секущей (рис. 5) и были не видны — мы только мысленно их представляли и даже не могли догадываться о форме этих сечений. А линии сечений оказались очень замысловатыми. Это также сделано для удобства графического анализа. Визуально сечения напоминают две летящих кометы:
Рис. 7. Сечение веера индикатора Envelopes.
Приступим к расчёту характеристик сечений: максимума, минимума и центра тяжести (среднего арифметического). Полученные значения отобразим в виде точек на текущем баре, причём размер точек должен соответствовать размеру соответствующей характеристики. Дополнительно будем сохранять их в истории для последующего анализа. Итак, внесём в код следующие дополнения:
И посмотрим как это выглядит графически:
Рис. 8. Характеристики сечений: максимум, минимум и центр тяжести для вершин и впадин отдельно.
Осталось сделать последний штрих — найти и нарисовать опережающие узлы ЗигЗага. Добавим в код такие строки:
Итак, получили новый индикатор — опережающий ЗигЗаг, который прогнозирует расположение новых узлов (рис. 9). Сами узлы находятся в характерных точках сечений: максимуме, минимуме и центре тяжести. Рабочее название индикатора — «Две кометы».
Следует заметить, что время формирования следующего узла, который находится в будущем, так и осталось неизвестным. Фактически прогнозируется только одна координата узла — цена.
Рис. 9. Опережающий индикатор ЗигЗаг прогнозирует узлы: текущий и следующий.
Анализ результатов и рекомендации для разработчиков
Наблюдения за индикатором показали:
- Отклонения координат узлов ЗигЗага от прогнозируемых находятся в зоне допустимых значений. Подавляющее количество узлов расположено в тени соответствующего сечения. Это конечно качественная оценка, т.к. более точные результаты будут рассмотрены в следующих работах.
- Сечения линий конвертов очень наглядно показывают настроения рынка и предполагаемые движения! Обратите внимание на хвост кометы, там где находятся точки с наименьшими периодами усреднения (самые маленькие по размеру). Куда он направлен, туда и будет двигаться цена. Хвост кометы делает самые замысловатые изгибы и чем больше он развёрнут в противоположную сторону, тем с большей вероятностью произойдёт смена тренда. А вообще, понаблюдайте за поведением индикатора на разных таймфреймах и с разными амплитудами. Очень интересно!
- Характерные точки сечений формируют линии, которые могут оказать сильное сопротивление движению цены. Поэтому их можно рассматривать как линии поддержки и сопротивления.
- Когда точки центра тяжести сечения обгоняют его (например, как для вершин на рис. 9), то это говорит о том, что присутствует тенденция к росту.
Получился очень любопытный индикатор, и он так и просится в торговую стратегию!
Источник https://vpluse.net/trendovye-indikatory/238-kak-rabotaet-indikator-zigzag
Источник https://www.mql5.com/ru/articles/646
Источник
Источник