English 中文 Español Deutsch 日本語 Português
Записки дилетанта. ZigZag…

Записки дилетанта. ZigZag…

MetaTrader 4Торговые системы | 19 июня 2008, 11:59
8 762 30
Alexei Kharchenko
Alexei Kharchenko

Введение

Наверняка каждого начинающего трейдера, впервые увидевшего “загадочную” ломаную, посещала “шальная” мысль торговать вблизи экстремумов. Ведь это так “просто”. Вот максимум. А здесь был минимум. Красивая картинка на истории. А что на деле? Луч нарисовался. Казалось бы, вот она - вершина. Пора продавать. Сейчас пойдем вниз. Но - нет. Цена по-прежнему предательски идет вверх. М-да! Ерунда, а не индикатор. На помойку его!

Начитавшись “умных” книжек о волновой теории Элиота, об уровнях Фибоначчи, о паттернах Гартли и т.д., мы снова и снова возвращаемся к индикатору ЗигЗаг. Получается замкнутый круг. Вечная тема.

Индикатор ЗигЗаг – ломаная линия, которая последовательно соединяют вершины и впадины ценового графика. Таким образом мы отображаем путь, который “прошла” цена с течением времени. Теперь возникает вопрос… Что это за вершины и впадины?

В этой статье будет:
- дано определение ЗигЗага;
- описан способ нахождения ценовых моделей Вершина и Впадина;
- определение потенциальных точек разворота;
- раскрыты дополнительные возможности индикатора.

Что такое ЗигЗаг?

Думаю, мало кого удивляет нынешнее представление ценового графика в виде бара. Из тиковой истории котировок вырезается временной промежуток. Фиксируются цены входа (Open) и выхода (Close), максимальные (High) и минимальные (Low) значения. Но мы ничего не можем сказать о внутрибаровом движении, о его направлении на выходе… Информации не достаточно для принятия торгового решения. Требуются дополнительные инструменты для анализа рынка.

Другое дело, когда речь идет о ломаной линии ЗигЗага… Мы знаем уровень и приблизительное время начала последнего движения, его направление. На основании обработки статистических данных (вершин и впадин) появляется возможность спрогнозировать вероятный уровень и вероятное время разворота… Информации достаточно для принятия “правильного” торгового решения.

Важно понимать, что для построения ЗигЗага используются существующие котировки. Он не использует никаких “шаманских” формул и ничего не добавляет к тому, что уже есть. ЗигЗаг – это один из способов представления ценового графика в более сжатом виде.

По каким котировкам обычно строится ЗигЗаг? High и Low. Таков ответ. Но можно построить ломаную линию, используя только цену открытия или цену закрытия бара (на мой взгляд, наиболее предпочтительные варианты, т.к. мы точно знаем время события).

Как определить Вершины и Впадины?

Прежде, чем ответить на этот вопрос, вспомним определение фрактала. Приведу несколько цитат из книги Билла Вильямса “Новые измерения биржевой торговли”:

“Модель фрактала проста. Рынок движется в том или ином направлении. Через некоторое время покупатели, которые хотели произвести покупку, ее произвели (время повышательной тенденции), и рынок испытал откат из-за недостатка покупателей. Затем на трейдеров начинает влиять некоторая новая информация (Хаос). Возникает новый поток покупок, и рынок, ища место несоответствия ценности и согласия в цене, движется наверх. Если движущая сила рынка (моментум) и сила покупателей достаточно велики, чтобы преодолеть предшествующий фрактал наверх, то мы сможем поставить ордер на покупку так, чтобы заключить одну сделку по цене, превышающей на одно минимальное изменение цены (тик) максимум фрактала”.

Фактически, это применимо к ЗигЗагу. При его построении мы ищем ценовые модели Вершин и Впадин. Как их найти? И снова цитата:

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

Техническое определение ценовой модели Вершина – это серия из N-го количества последовательных баров, в которой перед самым высоким максимумом находится ExtDepth баров и за ним CheckBar баров с более низкими максимумами. (Противоположная конфигурация соответствует ценовой модели Впадина). Найденная ценовая модель сравнивается с последней известной моделью для соблюдения главного правила ЗигЗага – последовательное чередование моделей.

ExtDepth и CheckBar – это название параметров, используемые в индикаторе ZigZagTF.

Выше приведенный алгоритм реализован одним циклом. Используется 2 буфера для записи экстремумов.

Точка разворота

В обычной реализации ЗигЗага используется только один параметр ExtDepth. CheckBar=0, т.е. экстремум ищется на текущем баре. По этой причине последний луч постоянно обновляется и перерисовывается. “Подобная способность корректировки своих значений по последующим изменениям цены делает Зигзаг прекрасным инструментом для анализа уже произошедших ценовых изменений. Поэтому не следует пытаться создать торговую систему на основе Зигзага: он лучше подходит для анализа исторических данных, чем для прогнозирования”. (Цитата разработчиков стандартного индикатора ЗигЗаг). Трудно не согласиться.

Снова обратимся к фракталу. На ценовом графике модели фрактала чередуются, т.е. фрактал Покупки сменяется фракталом Продажи и наоборот. Но есть участки на ценовом графике, где не происходит смены и модель фрактала повторяется снова. Обычно, это повторяется 2-3 раза.

ExtDepth = 2, CheckBar = 2.

Попробуем нашим индикатором ZigZagTF сымитировать работу индикатора Fractals (модификация стандартного индикатора, в котором последний фрактал не перерисовывается). Параметры ExtDepth и CheckBar равны 2. Для появления нового луча Зигзага требуется подтверждение найденного экстремума в 2 бара. Как только на 3-м баре появился луч, мы получим потенциальную точку разворота. Обновление луча возможно, но не так часто, как в стандартном индикаторе ЗигЗаг.

Теперь индикатор ЗигЗаг стал более пригодным для создания торговой системы.

Возможности индикатора

Выше уже упоминалось о реализации возможности использования для построения ЗигЗага разных ценовых показателей.
Параметр Price:
0 – High и Low;
1 – цена открытия бара (Open);
2 – минимум бара (Low);
3 – максимум бара (High);
4 – цена закрытия бара (Close).

ЗигЗаг построен по ценам закрытия. ExtDepth = 2, CheckBar = 2.

Бывает ситуация, когда необходима более точная информация для прорисовки ЗигЗага. Например, на одном баре найдены оба экстремума, так называемый внешний бар. Как, в этом случаи, корректно прорисовать ломаную линию? Реализована возможность, использовать цены младших таймфреймов.
Параметр TimeFrame: 0 – текущий таймфрейм.

Параметры Zzcolor и Zzwidth изменяют соответственно цвет и толщину линии ЗигЗага.

Полезно знать информацию об уровне возможного появления нового экстремума, особенно, когда новый луч еще не прорисовался, нет сигнала подтверждения (параметр CheckBar), а уровень появления экстремума пробит.
Параметр Levels – включает/выключает прорисовку уровней.
Параметры Lcolor и Hcolor изменяют соответственно цвет нижнего и верхнего уровня.

Уровни появления нового экстремума

После прорисовки ломаной линии ЗигЗага есть возможность записи в файл всех ее точек. Файл находится в каталоге: корневой_каталог_терминала \experts\files. Запись найденных точек: номер бара, тип точки, цена.
147;Down;209.11
141;Up;210.77
133;Down;208.57
131;Up;209.63
128;Down;208.67
121;Up;209.97
117;Down;209.57
112;Up;210.6
109;Down;209.64
106;Up;210.39
103;Down;209.4
Параметр Record – разрешает выполнить запись разворотных точек в файл.

И последняя функция, которая часто используется при торговле - это подключение Фибо-уровней. Параметры Fibo1 и Fibo2 позволяют включить/выключить Фибо-уровни на последнем и предпоследнем лучах соответственно. Параметрами FiboColor1 и FiboColor2 выбираем нужный цвет.

Заключение

В этой статье я провел аналогию между индикаторами Фрактал и ЗигЗаг. Оказалось, что модель фрактала – это частный случай. Можно еще вспомнить индикаторы Ганна: малой тенденции, промежуточной тенденции и основной тенденции. Это тоже частные случаи ЗигЗага.

Может быть, впервые удалось дать определение ЗигЗага, как последовательное чередование ценовых моделей Вершина и Впадина, технический способ их нахождения на ценовом графике.

Теперь работа закончена. Уважаемое сообщество получило удобный инструмент для анализа рынка и торговли. Всем, успехов и профитов!

Прикрепленные файлы |
ZigZagTF.mq4 (19.41 KB)
Последние комментарии | Перейти к обсуждению на форуме трейдеров (30)
Виктор
Виктор | 24 июл. 2008 в 22:39

А тут и стрелять нечего. Ваши требования не выполнит ни один из экспертов прошлого чемпионата. Не бывает экспертов одинаково прибыльных на всех парах и ТФ.

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

Собственно, Вы все это прекрасно знаете, просто ради отстаивания своей позиции слегка передергиваете.

Речь не об этом, а о категорическом отрицании возможности прибыльной работы эксперта по ZZ. Это я и пытался опровергнуть, в чем и преуспел (результаты честные, не сомневайтесь).

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

Но принципиальную прибыльность он показал, большего от него и не требовалось.

Sergey Kravchuk
Sergey Kravchuk | 25 июл. 2008 в 07:25
granit77:

Не бывает экспертов одинаково прибыльных на всех парах и ТФ.

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

Собственно, Вы все это прекрасно знаете, просто ради отстаивания своей позиции слегка передергиваете.

именно это я и имел в виду, когда говорил что ЗЗ сам по себе пустышка :( ему нужны мозги трейдера который "переоптимизирует" его так чтобы ЗЗ снова начал вынимать прибыль на других участках рынка.

Речь не об этом, а о категорическом отрицании возможности прибыльной работы эксперта по ZZ. Это я и пытался опровергнуть, в чем и преуспел (результаты честные, не сомневайтесь).

да я и не сомневался особо, я сам получал похожие. Мой советник (правда не по ЗЗ, но это не суть важно), которого я готовил на прошлый чемпионат, на полугодовой истории уверено увеличил депо с 1000 до 33000. Я пробовал его на других тамах парах и нигде не получил ничего похожего. Но на эти "сигналы" не хотелось обращать внимания - так хотелось верить в возможность.....


я выставил его на чемпионат с теми же параметрами... и что?! осенний рынок + конец года оказался совсем другим и от полного слива депо удержал только полуприличный ММ + трал. С этим индикатором очевидно картина такая же :(

Но принципиальную прибыльность он показал, большего от него и не требовалось.

Ну чтож - на том и порешим: на ЗЗ можно построить механическую систему (МТС) которая, при правильной оптимизации, на определенном таймфрейме и временном периоде может давать прибыль. Для того, чтобы построить автоматическую систему (АТС), ему необходим дополнительный "модуль" (или вмешательство трейдера), который будет заниматься анализом и переоптимизацией параметров ЗЗ.

Виктор
Виктор | 25 июл. 2008 в 07:43
ForexTools:

Ну чтож - на том и порешим: на ЗЗ можно построить механическую систему (МТС) которая, при правильной оптимизации, на определенном таймфрейме и временном периоде может давать прибыль. Для того, чтобы построить автоматическую систему (АТС), ему необходим дополнительный "модуль" (или вмешательство трейдера), который будет заниматься анализом и переоптимизацией параметров ЗЗ.

ОК. Думаю, что на данном этапе развития индикатора автора такая позиция тоже устроит.
Alexei Kharchenko
Alexei Kharchenko | 27 июл. 2008 в 17:23

Чтобы использовать в советнике текущие значения ZigZagTF, для этого достаточно вставить в код следущие строчки:

      curlowpos=iLowest(NULL,TimeFrame,MODE_LOW,ExtDepth+CheckBar+1,0);
      curhighpos=iHighest(NULL,TimeFrame,MODE_HIGH,ExtDepth+CheckBar+1,0);
      curlow=iLow(NULL,TimeFrame,curlowpos);
      curhigh=iHigh(NULL,TimeFrame,curhighpos);
      if(curlowpos==CheckBar+1 && (lastlow==0 || curlow<lastlow ))
      {
         // Появилась или обновилась модель "ВПАДИНА"
         ....
         lastlow=curlow;
         lasthigh=0;
      }
      if(curhighpos==CheckBar+1 && (lasthigh==0 || curhigh>lasthigh ))
      {
         // Появилась или обновилась модель "ВЕРШИНА"
         ....
         lasthigh=curhigh;
         lastlow=0;
      }

где,

curlowpos и curhighpos - текущие положения Low и High.

curlow и curhigh - текущие значения Low и High.

lastlow и lasthigh - последние известные значения Low и High. Внешние переменные...

Maksim Narumov
Maksim Narumov | 8 янв. 2016 в 05:33

мог бы кто-нибудь по русски объяснить смысл параметров ExtDepth и CheckBar

из статьи я ничего не понял

то есть CheckBar это число баров после которых новая вершина не рисуется или как? или не перерисовывается? ничерта не могу понять

простыми словами бы кто-то объяснил 

Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота (Часть 6) Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота (Часть 6)
В этой статье автор предлагает способы улучшения торговых систем, представленных в его предыдущих статьях. Статья будет интересной для трейдеров, уже имеющих опыт в написании экспертов.
Статистический анализ рыночных движений и их прогнозов Статистический анализ рыночных движений и их прогнозов
В данной статье рассматриваются широкие возможности статистического подхода к изучению рынка. К сожалению, трейдеры-новички сознательно не используют эту поистине могущественную науку – статистику. А ведь, во-первых, это - единственное, чем они пользуются подсознательно при анализе рынка, а во-вторых, статистика может дать ответы на многие вопросы.
Как стать участником Automated Trading Championship 2008? Как стать участником Automated Trading Championship 2008?
Основная цель проведения Чемпионата - популяризация автоматического трейдинга и накопление практической информации в этой области. Как Организатор Чемпионата, мы стремимся обеспечивать честное соревнование и пресекать все попытки мошенничества. Именно этими соображениями продиктованы жесткие Правила Чемпионата.
Show Must Go On... или очередное возвращение к ZigZag'у Show Must Go On... или очередное возвращение к ZigZag'у
Об одном очевидном и, одновременно, нестандартном методе построения ZigZag'а и о том, что из этого получилось - индикаторе Мультифреймовый Фрактальный ZigZag, отображающем на одном, рабочем, таймфрейме (ТФ) ZigZag'и, построенные на трех старших. В свою очередь, величины старших ТФ могут быть нестандартными, в диапазоне от M5 до MN1.