ZUP - зигзаг универсальный с паттернами Песавенто. Поиск паттернов

15 февраля 2018, 10:34
Eugeni Neumoin
9
14 748

Введение

Поиск паттернов на ценовых графиках интересен многим трейдерам. Это можно делать в индикаторной платформе ZUP. Есть несколько вариантов работы с платформой. Во-первых, можно искать уже известные паттерны, параметры которых жестко заданы. Во-вторых, можно подстраивать параметры под свои требования. И, в-третьих, можно создавать собственные паттерны с помощью графического интерфейса ZUP и сохранять их параметры в файл. Это дает возможность быстро проверить, встречаются ли такие новые паттерны на графиках.

Паттерны описывали многие авторы. Среди них не упомянуть Гарольда Гартли. Еще в 1935 году он опубликовал книгу "Доход на фондовом рынке". На одной из ее страниц была приведена картинка с паттерном и краткое описание, как его можно использовать для торговли. Эту тему начали широко развивать только через несколько десятилетий: было описано множество новых паттернов. Среди всех их авторов один из наиболее известных — Скотт Карни. Он разработал паттерны the Gartley, the Bat, the Butterfly, the Crab и другие. На все из них Скотт Карни оформил авторское право в 2016 году.

Есть множество алгоритмов поиска паттернов. Например, можно выбирать экстремумы на графике, "натягивать" между ними сетку Фибоначчи и определять возникновение паттерна по достижению рынком характерных уровней. Этот алгоритм используется и при ручном поиске, и в некоторых программах. Другой вариант — чисто программный. Алгоритм, заложенный в программе, находит экстремумы, проверяет их  взаимное расположение, и если оно соответствует какому-то паттерну, выводится сообщение о том, что он найден.

В индикаторной платформе ZUP реализовано множество возможностей для поиска паттернов. Можно строить их вручную. Но основной алгоритм — автоматизированный поиск паттернов на экстремумах рынка, определенных с помощью различных зигзагов. В версиях ZUP до 151 включительно режимы поиска паттернов задавались с помощью параметров. Но параметров, которые могут повлиять на поиск паттернов, более 100, и такое их обилие затрудняет работу. В версии 152 появилась возможность работать с помощью графического интерфейса. Базовые настройки задаются с помощью параметров, а быстрое подключение паттернов к поиску теперь происходит с помощью графического интерфейса.

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

  1. Параметры настройки зигзагов.
  2. Параметры настройки уровней Фибоначчи (1 - Parameters for fibo Levels).
  3. Параметры для паттернов Песавенто (2 - Parameters for Pesavento Patterns).
  4. Параметры для паттернов Гартли (3 - Parameters for Gartley Patterns).
  5. Общие параметры (15 - Common Parameters).

Также есть множество встроенных графических инструментов, которые помогают в поиске паттернов.

В первой части статьи мы поговорим о том, каким образом в 152 версии ZUP реализовано подключение к поиску паттернов с помощью графического интерфейса. Затем я расскажу о параметрах для поиска паттернов Гартли, и в заключении статьи мы вкратце пройдемся по другим паттернам.

Часть первая. Графический интерфейс для работы с паттернами

В версию 152 были добавлены элементы графического интерфейса для работы с паттернами. С помощью графического интерфейса стало возможным:

  1. подключать к поиску или отключать от него различные паттерны;
  2. просматривать картинки с шаблонами пятиточечных паттернов;
  3. создавать новые пятиточечные паттерны;
  4. редактировать параметры пятиточечных паттернов;
  5. сохранять отредактированный паттерн на место старого или в отдельный *.CSV файл;
  6. сохранять вновь созданный паттерн в новый или в выбранный *.CSV файлы;
  7. подключать к поиску паттерны из выбранного файла;
  8. создавать списки паттернов для поиска.

Для работы с графическим интерфейсом ZUP в конце списка параметров индикаторной платформы имеется параметр ExtPanel. ExtPanel=true разрешает работу с графическим интерфейсом.

Если при задании параметра ExtPanel=true графический интерфейс не появляется или он был удален нажатием на клавишу ESC, то комбинация клавиш SHIFT-Z выведет его панель на экран.

Далее нажимаем на кнопку Insert. В следующем меню кликаем на символ "бабочки" —  butterfly.  Появляетcя меню работы с паттернами:

menu

В него, по сравнению с версией 151, добавлена кнопка Select. Если на нее нажать, то появится меню со списком:

menu vieving

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

Кнопка Vieving of 5 dot patterns вызывает панель для работы с пятиточечными паттернами. Кликнув на нее, вы увидите такой экран с графиком:

chart

Учтите, что картинка с шаблоном паттерна выводится с помощью языка MQL4. Координаты точек паттерна — XABCD — используют время условных баров на графике. Предельное время, которое можно задать, ограничивается примерно 2033 годом. Поэтому при работе с этим элементом интерфейса не рекомендуется предельно сжимать график на месячном таймфрейме. Время условных баров, к которым "привязываются" паттерны, при сжатии графика может стать больше 2033 года. Это вызывает ошибку. При максимально сжатом графике шаблон паттерна будет либо искажен, либо вообще не выведется.

Что можно делать с помощью полученного окна?

Строка     дублирует/ заменяет значение параметра SelectPattern, который задает группы 5 точечных паттернов для поиска.


При работе с графическим интерфейсом будут использоваться значения параметров, заданные с помощью этого графического интерфейса. Если же графический интерфейс отключен ExtPanel=false, то будут использоваться значения, заданные через вкладку изменения параметров индикатора. При этом на каждом графике будут свои настройки параметров.

Кнопка Bullish в строке Bullish/Bearish задает вывод картинки с шаблоном паттерна в бычьей или медвежьей интерпретации (в первый раз по умолчанию выводится бычья) и название отображаемого паттерна.

Строка visible pattern соответствует параметру visiblePattern, который задает список подключенных к поиску паттернов.

Каждая позиция в данной строке соответствует одному из 33 встроенных в код ZUP паттернов. Если в позиции выбранного паттерна задана цифра 1, то паттерн подключен к поиску, если 0 — то отключен.

Изменять список паттернов, подключенных к поиску, можно несколькими способами.

  1. Подводим курсор к выбранной позиции и щелкаем левой кнопкой мыши. Первое нажатие выводит на экран картинку с шаблоном паттерна. Второе нажатие меняет 1 на 0 или 0 на 1.
  2. С помощью строки select . В ней 1 of 33 показывает, на какой из 33 позиций установлен розовый курсор. Курсор также показывает, какой паттерн выбран для манипуляций. Стрелками можно выбрать новое положение этого курсора. Кнопкой Yes/No можно поменять 1 на 0 и наоборот — 0 на 1.

    Кнопкой Hide все позиции переводятся в значение 0, то есть от поиска отключаются все паттерны. Здесь сразу отмечу следующее. Паттернов может быть подключено и больше, чем 33. Но линейка из единиц и нулей имеет только 33 позиции. При подведении розового курсора к крайней позиции слева и нажатии на стрелки << будут вызваны предыдущие 33 паттерна. При подведении розового курсора к правой (33-ей) позиции и нажатии на стрелки >> будут вызваны следующие 33 паттерна.

    Для отладки программы был подключен файл с примерно 265 паттернами, созданными одним из пользователей ZUP в более ранних версиях индикатора и использовавшимися только при поиске. Ранее паттерны создавались с помощью внешних программ для создания файлов в формате *.CSV. Это достаточно непростая работа. Сейчас можно создавать паттерны с помощью записи их параметров в файл формата CSV. Но всё же проще использовать графический интерфейс.

  3. С помощью стрелок в строке  select patern можно выбрать группы паттернов, заданные в коде ZUP с помощью параметра SelectPattern, для подключения к поиску. Но работа данного параметра зависит от того, подключены ли к поиску только паттерны из ZUP, или еще и из внешнего файла. С помощью стрелок в строке  read from file list pattern выбирается значение параметра readFromFileListPatterns - "Patterns from ZUP/"Patterns from external file"/"Patterns from ZUP and from file". С помощью этого параметра выбирается место хранения паттернов. Стрелками в строке file выбирается внешний файл с параметрами паттернов. В данной строке показывается, что можно подключить файл 1 из двух 1/2, который называется M. Это файл с параметрами паттернов Меррилла.

Кнопка New позволяет включить создание нового паттерна. Если подключены паттерны из внешнего файла, то могут появиться кнопки Edit и Delete в зависимости от значения, выбранного в строке read from file list pattern . Если внешних файлов нет, то может подключиться кнопка Edit и для паттернов, встроенных в ZUP. Это сделано для того, чтобы на основе одного из 33-х паттернов создать какие-то свои, просто подредактировав параметры.

Ниже могут появиться одна add parametr или несколько строк со значениями дополнительных параметров, характерных для паттерна, показанного на картинке справа.

Нажатие на кнопку New выводит список из 8 строк с параметрами, которые можно задать для пятиточечных паттернов.

list parametrs

Повторное нажатие на кнопку New вернет предыдущее значение экрана. В графическом интерфейсе ZUP отменить действие любых кнопок можно повторным нажатием на ту же кнопку или нажатием на клавишу ESC.

Нажатие на одну из строк со списком параметров вызовет следующее окно:

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

baba yaga

Повторное нажатие на пятую строку вызывает следующую картинку:

Строка  parametrs pattern показывает, какие параметры можно изменить.

Строка parametr показывает выбранное значение параметра. Стрелками выбирается новое значение параметра. Его можно отредактировать вручную, нажав на кнопку 0.382 и отредактировав значение параметра. При изменении значения параметра меняется и графическое представление паттерна.

Кнопка Next фиксирует выбранное значение, и мы переходим к заданию значения следующего параметра.

При этом в строке parametrs pattern уменьшится количество еще не заданных параметров и появляется следующий элемент паттерна — BC.

После первой фиксации значения параметра с помощью кнопки Next появляется кнопка Back, позволяющая откатить назад и отредактировать предыдущие значения параметров.

Две кнопки  позволяют в любой момент подключить параметры: фильтр линии XB и соотношение длин крыльев паттерна. Это соотношение задается с помощью стрелок. При нажатии на число, выбранное с помощью стрелок, можно вручную задать свое соотношение. ВНИМАНИЕ! Чтобы отключить его, нужно ввести значение 0.


По окончанию создания нового паттерна будет предложено задать его название:

edit name pattern

Назовем его, например, AA.

Далее будет предложено выбрать название файла, в который будет сохранен вновь созданный паттерн. По умолчанию будет выбран тот файл, который был подключен в качестве внешнего файла с паттернами. Но можно и отредактировать название файла — тогда паттерн будет сохранен в файл с отредактированным названием. Если такой файл уже был ранее создан, то паттерн допишется в конец списка. Если же файла с выбранным названием нет, то будет создан новый.

Choose/edit file

Редактирование параметров паттернов происходит аналогично созданию нового паттерна. В конце редактирования будет предложено сохранить полученный паттерн на месте редактируемого, либо сохранить как новый в заданном файле *.csv. Или, если мы редактировали паттерн из списка встроенных в ZUP, будет предложено сохранить паттерн как новый в выбранный файл.

Файлы *.csv сохраняютсятся в папке MQL4\Files\ZUP\ListPatterns.

Пропускаю подробное описание некоторых кнопок. Их действие понятно из вышеизложенного.

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


Часть вторая. Параметры для поиска паттернов Гартли

Включение поиска паттернов Gartley производится с помощью параметра ExtIndicator=11. При этом происходит сканирование графика на расстоянии ExtMaxBar баров. Это первый вариант поиска. Он называется "Поиск паттернов с помощью сканера".

Возможен поиск паттернов и при других значениях параметра ExtIndicator. Для этого включается параметр ExtGartleyOnOff и производится поиск на одном зигзаге, заданном параметром ExtIndicator. Это второй вариант поиска — "Поиск паттернов на зигзаге".

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

Есть и третий вариант поиска паттернов. Этот вариант описан в статье "ZUP - зигзаг универсальный с паттернами Песавенто. Графический интерфейс".

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

Паттерны, созданные с помощью графического интерфейса, можно использовать во всех трех вариантах поиска.

Приведу полный список параметров, используемых при поиске паттернов Gartley и при работе с графическим интерфейсом, описанным в первой части статьи.

  • AlgorithmSearchPatterns — выбор алгоритма сканера поиска паттернов для режима поиска паттернов ExtIndicator=11:
    • 0 - соответствует алгоритму ExtIndicator=0 – стандартный зигзаг;
    • 1 - соответствует алгоритму ExtIndicator=1 - зигзаг Алекса, размер луча задается в пунктах;
    • 2 - соответствует алгоритму ExtIndicator=1 - зигзаг Алекса, размер луча задается в процентах;
    • 3 - соответствует алгоритму ExtIndicator=2;
    • 4 - соответствует алгоритму ExtIndicator=4;
    • 5 - соответствует алгоритму ExtIndicator=5;
    • 6 - соответствует алгоритму ExtIndicator=12. 
  • PotencialsLevels_retXD - разрешает вывод уровней ретресмента XD потенциальных пятиточечных паттернов. В режиме ExtIndicator=11 применяется, только если найден паттерн, и дальше уровни выводятся от его точки С:
    • 0 - отключен вывод потенциальных уровней;
    • 1 - потенциальные уровни выводятся совместно с паттернами при ExtGartleyOnOff=true;
    • 2 - потенциальные уровни выводятся. При этом отключается вывод паттернов.
  • visibleLevelsABCD - задает различные варианты показа уровней потенциальной точки D потенциальных пятиточечных паттернов:
    • 0 - не показываются дополнительные уровни;
    • 1 - выводятся на график все варианты уровней ретрейсмента BD;
    • 2 - выводятся на график все уровни разных вариантов AB=CD;
    • 3 - выводятся совместно уровни ретрейсмента BD и варианты AB=CD.
  • maxDepth - максимальное значение Depth (minBars), до которого может изменяться параметр Depth зигзага при активном сканировании для поиска паттернов Gartley. Применяется при AlgorithmSearchPatterns=0.
  • minDepth - задает минимальное значение Depth для поиска паттернов Gartley.
  • FiboStep - включает при поиске паттернов вычисление значения параметра Backstep по формуле Backstep=Depth*1.618.
  • IterationStepDepth - шаг изменения параметра зигзага Depth при поиске паттернов Gartley.
  • maxSize_ - максимальное значение размера луча в пунктах. Используется в сканере паттернов при значениях параметра AlgorithmSearchPatterns=1, AlgorithmSearchPatterns=3, AlgorithmSearchPatterns=4, AlgorithmSearchPatterns=6.
  • minSize_ - минимальное значение размера луча в пунктах.
  • IterationStepSize - шаг изменения параметра зигзага Size при поиске  паттернов Gartley.
  • maxPercent_ - максимальное значение процента для расчета зигзага Алекса. Используется в сканере паттернов при значении параметра AlgorithmSearchPatterns=2.
  • minPercent_ - минимальное значение процента для расчета зигзага Алекса.
  • IterationStepPercent - шаг (процент) изменения параметра зигзага Percent.
  • DirectionOfSearchMaxMin - задает направление поиска паттернов:
    • false - от minDepth к maxDepth;
    • true - от maxDepth к minDepth;
  • SelectPattern - выбирает пятиточечные паттерны для поиска:
    • 0 - поиск всех паттернов;
    • 1 - поиск только классических паттернов - Gartle, Butterfly, Bat, Crab, кроме TOTAL;
    • 2 - поиск классических и антиклассических паттернов, кроме TOTAL;
    • 3 - поиск экзотических паттернов и экзотических антипаттернов, кроме TOTAL;
    • 4 - поиск только антипаттернов, кроме TOTAL;
    • 5 - поиск всех паттернов, кроме TOTAL;
    • 6 - поиск только TOTAL;
    • 7 - произвольный выбор пятиточечных паттернов для поиска с помощью параметра visiblePattern;
    • 8 - отключен поиск пятиточечных паттернов;
    • "Gartley";
    • "Bat";
    • "Alternate Bat";
    • "Butterfly";
    • "Crab";
    • "Deep Crab";
    • "Leonardo";
    • "Shark";
    • "Cypher";
    • "Nen STAR";
    • "5-0";
    • "A Gartley";
    • "A Bat";
    • "A Alternate Bat";
    • "A Butterfly";
    • "A Crab";
    • "A Deep Crab";
    • "A Leonardo";
    • "A Shark";
    • "A Cypher";
    • "A Nen STAR";
    • "A 5-0";
    • "Black Swan";
    • "White Swan";
    • "Navarro 200";
    • "max Bat";
    • "max Gartley";
    • "max Butterfly";
    • "TOTAL 1";
    • "TOTAL 2";
    • "TOTAL 3";
    • "TOTAL 4";
    • "TOTAL".
  • visiblePattern - задает, какие паттерны искать. По умолчанию выключен поиск всех паттернов.
  • NumberPattern - номер паттерна, по которому калибруется зигзаг и параметры которого выводятся через InfoTF. При NumberPattern = 0 выводится зигзаг с параметрами как в режиме ExtIndicator=0.
  • ExtGartleyTypeSearch - режим поиска паттернов:
    • 0 - поиск заканчивается после первого найденного паттерна;
    • 1 - выводятся все паттерны на участке, заданном параметром maxBarToD. Поиск повторяется при каждом пересчете зигзага. Режим "Китайская игрушка 1";
    • 2 - выводятся все паттерны на участке, заданном  параметром maxBarToD. Поиск производится только один раз. Режим "Китайская игрушка 2";
  • ExtHiddenPP - режим отображения зигзага для ExtIndicator=11:
    • 0 - зигзаг не выводится. Выводятся только точки вершин зигзага. Паттерны Песавенто не выводятся;
    • 1 - выводится зигзаг откалиброванный паттерном, заданным параметром NumberPattern. Паттерны Песавенто выводятся обычным образом;
    • 2 - зигзаг не выводится. Выводятся только точки у вершин зигзага. Паттерны Песавенто выводятся только для вершин паттернов Gartley.
  • ExtGartleyOnOff - включает показ паттернов Gartley. Не в режиме сканера.
  • maxBarToD - задает максимальное количество баров от нулевого до точки D паттерна.
  • patternInfluence:
    • 0 - выводятся паттерны, у которых от нулевого бара до бара с точкой D не более maxBarToD баров;
    • 1 - учитывается влияние паттерна при этом отменяется действие параметра maxBarToD;
    • 2 - поиск паттернов осуществляется на всей разметке зигзага.
  • patternTrue = true - выводятся паттерны, удовлетворяющие условию:

для медвежьих паттернов на участке от точки D до нулевого бара не должно быть баров, у которых максимум бара выше максимума рамки зоны развития точки D;

для бычьих паттернов на участке от точки D до нулевого бара не должно быть баров, у которых минимум бара ниже минимума рамки зоны развития точки D.

  • AllowedBandPatternInfluence - задается коэффициент от величины расстояния между точками X и D паттерна. Этот коэффициент задает расстояние от точки D до точки где влияние паттерна предположительно заканчивается.
  • RangeForPointD - разрешает показ зоны развития точки D.
  • OldNewRangeForPointD - выбор варианта построения зоны развития точки паттерна.
  • ExtColorRangeForPointD - цвет рамки зоны развития точки D.
  • VectorOfAMirrorTrend  = 1 выводится Вектор тренда.
  • VectorOfAMirrorTrend  = 2 выводится Вектор зеркального тренда.
  • VectorOfAMirrorTrendColor - задает цвет линии обратного тренда.
  • VectorOfAMirrorTrendStyle - задает стиль линии обратного тренда.
  • shortNamePatterns - разрешает вывод коротких наименований паттернов.
  • visibleLineOrTriangle - разрешает вывод паттернов в виде линии или в виде треугольников, кроме паттернов AB=CD.
  • PatternLineStyle - задает стиль линии пятиточечных паттернов и AB=CD.
  • PatternLineWidth - задает толщину линии пятиточечных паттернов и AB=CD.
  • ExtColorPatternsBullish - цвет бычьих паттернов.
  • ExtColorPatternsBearish - цвет медвежьих паттернов.
  • ExtColorPatternList - задается список цветов для закраски паттернов Gartley для режима "Китайская игрушка". Названия цветов перечислены через запятую. Если какой-либо цвет будет записан с ошибкой, то для этого цвета выбирается красный.
  • ExtDeltaGartley - допуск на отклонение цены для поиска паттернов по умолчанию 9% - 0.09.
  • ExtDeltaGartleyPRZ  - специальный допуск для построения рамки развития точки D паттерна.
  • levelD - включает вывод на график уровней ретресментов XD возможных вариантов точных паттернов для текущей комбинации.
  • colorLevelD - задает цвет уровней ретрейсментов XD.
  • Equilibrium - включает вывод линий Equilibrium, Reaction1 и Reaction2.
  • ReactionType — задает тип линий реакции.
  • EquilibriumStyle — задает стиль линий.
  • EquilibriumWidth — задает толщину линий.
  • ColorEquilibrium — задает цвет для Equilibrium.
  • ColorReaction — задает цвет для Reaction1 и Reaction2.
  • Ext_3Drives - разрешает вывод паттерна 3 Drives.
  • Ext_xO - задает коэффициент для поиска 7-точечного паттерна 3 Drives.
  • Dragon — разрешает вывод паттерна Dragon.
  • PeakZZDragon — задает номер экстремума зигзага, до которого производится поиск паттерна Dragon.
  • Ext_4PointPattern - разрешает поиск 4-точечного паттерна продолжения.
  • _maxXB - задает максимальное значение ретрейсмента XB для паттерна The 4 Point Pattern. Узнать об этом паттерне можно у автора здесь: http://kanetrading.com/.
  • ABCD — разрешает поиск паттернов AB=CD:
    • 0 - паттерны AB=CD не выводятся;
    • 1 - выводятся любые AB=CD;
    • 2 - выводятся только гармоничные AB=CD, у которых соотношения в пределах допуска соответствуют ряду Фибоначчи. 
  • searchABCDAlternate — разрешает вывод альтернативных паттернов AB=CD.
  • ABCDAlternate — задает список альтернативных паттернов AB=CD. В данном списке через запятую перечисляются коэффициенты X из формулы X*AB=CD.
  • visibleABCDrayZZ — разрешает вывод паттернов AB=CD в виде линии.
  • Ext_noname - разрешает поиск неизвестных пятиточечных паттернов, у которых все четыре ретрейсмента равны какому-то фибо-уровню.
  • CustomPattern — определяет, выводить или нет пользовательские паттерны:
    • 0 - не выводится пользовательский паттерн;
    • 1 - выводится вместе с другими паттернами;
    • 2 - выводится только пользовательский паттерн.
  • NameCustomPattern — название пользовательского паттерна.
  • minXB — задает минимальное значение ретрейсмента XB.
  • maxXB — задает максимальное значение ретрейсмента XB.
  • minAC — задает минимальное значение ретрейсмента AC.
  • maxAC — задает максимальное значение ретрейсмента AC.
  • minBD — задает минимальное значение ретрейсмента BD.
  • maxBD — задает максимальное значение ретрейсмента BD.
  • minXD — задает минимальное значение ретрейсмента XD.
  • maxXD — задает максимальное значение Equilibrium ретрейсмента XD.

Минимум и максимум ретрейсмента задают диапазон для поиска.

  • filtrEquilibrium — включает в качестве фильтра линию, проходящую через точки X и B паттерна. Если фильтр включен, то паттерн будет прорисован, когда цена пробьет эту линию при движении от точки C паттерна в сторону точки D. Работает только с пользовательскими паттернами и паттернами noname.
  • readFromFileListPatterns — задает чтение списка паттернов из файла \\ZUP\ListPatterns\listpatterns.csv:
    • 0 - чтение списка паттернов из файла запрещено;
    • 1 - используется для поиска пятиточечных паттернов только тех паттернов, список которых загружен из файла;
    • 2 - к встроенному в ZUP списку пятиточечных паттернов дописывается список паттернов из файла. В этом случае получается составной список паттернов.

Файлы *.csv находятся в папке MQL4\Files\ZUP\ListPatterns.

  • NameFileListPatterns — задает название .csv файла, из которого читается список параметров паттернов.
  • writeToFileListPatterns — разрешает запись списка пятиточечных паттернов:
    • 0 - запись осуществляется в файл \\ZUP\ListPatterns\listpatternsdefault.csv;
    • 1 - запись осуществляется в файл \\ZUP\ListPatterns\listpatternscustom.csv;
    • 2 - запись осуществляется в файл \\ZUP\ListPatterns\listpatternsmixt.csv.
  • picture — разрешает вывод в файл картинки графика с паттерном.

Файлы с картинкой найденного паттерна находятся в папке MQL4\Files\ZUP\PicturePatterns.

  • writeInfoPatternsToFileXML — разрешает вывод в файл .XML параметров текущего пятиточечного паттерна:
    • 0 - запрещен вывод параметров в файл;
    • 1 - параметры времени выводятся в развернутом виде;
    • 2 - параметры времени выводятся в виде количества секунд.

Файлы *.xml с параметрами найденного паттерна находятся в папке MQL4\Files\ZUP\XML.

  • writeInfoPatternsToFileCSV — разрешает вывод в файл .CSV параметров текущего пятиточечного паттерна:
    • 0 - запрещен вывод параметров в файл;
    • 1 - параметры времени выводятся в развернутом виде;
    • 2 - параметры времени выводятся в виде количества секунд.

Файлы *.csv с параметрами найденного паттерна находятся в папке MQL4\Files\ZUP\CSV.

  • namefileSymbolPeriod = true — задается название файлов с картинками паттернов и с параметрами в виде Symbol()+"_"+Period()+"_Patterns.
  • InfoPointD — разрешает вывод информации о точке D паттерна крупным шрифтом.
  • MonitorPatterns — включает монитор паттернов.
  • TextSize — задает размер шрифта в мониторе паттернов.
  • ExtGlobalVariableSet — разрешает запись информации о паттернах в глобальные переменные терминала.

Информация о найденном паттерне может выводиться в глобальную переменную с названием "ZUP"+_Symbol+_Period . Пример названия глобальной переммной — ZUPGBPUSD240. Если паттерн найден, то в переменную будет записана цифра 1.

Пояснение некоторых возможностей ZUP, реализованных в режимах поиска паттернов Gartley


Монитор паттернов

Ниже показана работа Монитора паттернов на примере  режима "китайская игрушка". В этом режиме на график выводится множество найденных паттернов:

monitor patterns

Строки в левом верхнем углу графика и есть монитор. Каждая строка соответствует одному из паттернов, выведенных на график. Цвет первых трех колонок соответствует цвету соответствующего паттерна. Цвет четвертой колонки: синий — паттерн бычий и задан параметром ExtColorPatternsBullish, красный — паттерн медвежий и задан параметром ExtColorPatternsBearish .

В первой колонке выводится номер бара, на котором находится точка D паттерна.

Во второй колонке выводятся параметры minBars/ExtBackstep зигзага, на котором найден соответствующий паттерн.

В третьей колонке выводится условное отклонение ретрейсментов XC-XB-AD-CD от идеального значения. Разберем это подробнее на примере паттерна Bullish Butterfly [1.414/.786/.786/2.0] в пятой строке монитора паттернов. Идеальные значения ретрейсментов показаны в квадратных скобках после названия паттерна. Каким образом формируются условные отклонения? И что означают условные отклонения?

Чем больше число, тем больше отклонение от идеального значения.

  • Значение 0: отклонение должно быть меньше заданного параметром ExtDeltaGartleyPRZ. По умолчанию значение параметра равно 2%.
  • Значение 1: отклонение должно быть меньше заданного параметром ExtDelta. По умолчанию - 4%.
  • Значение 2: отклонение должно быть меньше, заданного параметром ExtDeltaGartley. По умолчанию - 9%.
  • Значение * : отклонение больше, чем при значении 2. Найденный паттерн будет соответствовать паттерну, который был бы найден первыми версиями ZUP.

Линия равновесия и линия вектора зеркального тренда

Параметр Equilibrium включает вывод линии равновесия, проходящей через точки XB паттерна и двух линий реакции (красные пунктирные линии):

equilibrium / vector of a mirror trend

Линия реакции 1 параллельна линии равновесия и находится от нее на расстоянии, равном расстоянию точки C паттерна до линии равновесия.

Линия реакции 2 параллельна линии равновесия и находится от нее на расстоянии, равном расстоянию точки A паттерна до линии равновесия.

При подходе к линиям реакции можно ожидать либо коррекции, либо окончания формирования паттерна.

Вектор зеркального тренда включается параметром VectorOfAMirrorTrend . После этого начинает выводиться пунктирная линия. На вышеприведенной картинке линия вектора зеркального тренда бледно-зеленая. Она проведена через диагональ потенциальной разворотной зоны, показанной в виде красного прямоугольника у точки D паттерна.


Часть третья. Кратко о других паттернах

Кроме паттернов Гартли, ZUP позволяет работать с паттернами Песавенто и с другими видами.

Существуют, например, так называемые паттерны Меррилла. Они используются совместно с полосами Боллинджера. ZUP позволяется идентифицировать их на уже построенном зигзаге. На графиках они не отображаются: выводится только их название. На четырех первых справа лучах зигзага будут динамические паттерны Меррилла, на лучах со второго по пятый — статические.

Информация о паттернах Меррилла включается с помощью параметра infoMerrillPattern=true. Информация о паттерне выводится в строке в левом верхнем углу экрана мелким шрифтом. Можно вывести название паттерна крупным шрифтом с помощью параметра bigText=true. Крупным шрифтом название выводится в правом верхнем углу экрана.

Merrill pattern

На первых четырех лучах образовался динамический паттерн Меррилла, который называется Треугольник.

На лучах со второго по пятый видим статический паттерн под названием M13.

Паттерны Меррилла — пятиточечные. Можно создать их графическое представление с помощью графического интерфейса. Например, это уже сделал участник форума Станислав Тривайло под ником поручик.

При включении параметра bigText=true крупным шрифтом может выводиться также информация о найденном паттерне Гартли. Эта информация и монитор могут быть выведены только для первых двух вариантов поиска паттернов.


Заключение

Приведенное краткое описание позволит понять, как использовать ZUP для поиска паттернов.

Скачать индикаторную платформу ZUP можно в Маркете: https://www.mql5.com/ru/market/product/19758



Aleksey Vyazmikin
Aleksey Vyazmikin | 6 мар 2018 в 14:23
Eugeni Neumoin:

Тема паттернов для меня была интересна 10 лет назад. И примерно тогда же на форуме ОНИКС обсуждались варианты передачи параметров паттернов в советники и для внешнего использования.

Я в эту тему особо не вникал. НО сделал несколько вариантов вывода информации о паттернах.

Спасибо за содержательный ответ!

Eugeni Neumoin
Eugeni Neumoin | 6 мар 2018 в 15:17

ys_mql5:

Меня, как, думаю, и многих других трейдеров, кто только начинает знакомство с вашим индикатором, очень интересует какой же всё-таки алгоритм зигзага наиболее оптимален для работы. Или так - могли бы вы описать плюсы/минусы каждого имеющегося алгоритма, т.к. уверен, что они все не зря были добавлены в индикатор. Понимаю, что в одних случаях предпочтительнее применение одного зигзага, а в других - другого.

Может быть, вы могли бы дать некоторые рекомендации? Возможно, есть какой-то более универсальный алгоритм и его базовые настройки (с которого могли бы начать все), которые подошли бы для старта, чтобы не приходилсь мучительно и многократно "рыскать" по параметрам, меняя их и исследуя график в поисках изменений в работе индикатора с очередным набором настроек?

PS Да, я имею ввиду исключительно работу с индикатором в режиме поиска паттернов (ExtIndicator = 11)

Спасибо.


1. Есть ли в индикаторе опция, которая выводит буквенные обозначения вершин паттернов в цвете паттерна (а ещё лучше прямо с названием на графике)? Мне кажется, так было бы удобнее ориентироваться по сформировавшемуся или формирующемуся паттерну.

2. Чем отличаются паттерны имеющие одно название без префикса и с префиксами "А" и "max", например - "Gartley", "A Gartley" и "max Gartley"?

3. Что за группа паттернов "TOTAL" - это пользовательские паттерны?

4. Если использовать параметр "ExtGartleyTypeSearch - режим поиска паттернов" в Режиме "Китайская игрушка 1", то на последних зигзагах присутствуют паттерны - _http://prntscr.com/inkjnc, а если переключиться в режим "0 - поиск заканчивается после первого найденного паттерна", то паттернов, которые были в режиме китайской игрушки не будет - _http://prntscr.com/inkkfx. Скорее всего будет 1-2 паттерна уже давно завершившихся. Вопрос, почему в режиме поиска первого найденного паттерна не отображается ближайший паттерн к текущему бару?

В режиме ExtIndicator = 11 используется алгоритм стандартного зигзага. Что такое паттерны. Луч XA - это импульсная волна. А структура ABCD является коррекционной волной. То есть в теории патерны являются частью волновой структуры по Эллиотту. Более 10 лет назад Putnik исследовал параметры стандартного зигзага и предложил настройки параметров, которые не всегда но достаточно часто выявляют волновые модели по Эллиотту. Putnik специализируется на волновом анализе. Вот эти его настройки и выбраны по умолчанию. На самом деле вариантов настроек может быть множество. Поговорите на эту тему с поручиком. Он специализируется на паттернах.

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

Вот текущий пример по йене:

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

Это просто какое-то чудо. У меня есть объяснение почему это происходит. Но оставим эту тему.

По вопросам.

1) Нет возможности вывода буквенных обозначений вершин паттернов (XABCD).

2 и 3) Буква "A" обозначает антипаттерны. Посмотрите, например, A Gartley и Gartley. Их как паттерны и TOTAL придумал поручик. Приставка max используется для паттернов, которые были в первых версиях ZUP, в которых был создан поиск паттернов. В этих паттернах использовался наиболее широкий диапазон ретресментов. В текущей версии встроен, скажем так, классический Gartley и max Gartley. Отличаются параметрами. Отличия небольшие.

4) Для режима китайская игрушка используются значения параметра ExtGartleyTypeSearch  1 или 2. В одном случае производится одноразовый поиск паттернов. В другом случае поиск паттернов производится при каждом изменении нулевого бара. В пределе поиск осуществляется на каждом тике, когда нулевой бар изменяет свой размер на каждом тике. Это накладно для метатрейдера.

ys_mql5
ys_mql5 | 6 мар 2018 в 19:08
Eugeni Neumoin:

В режиме ExtIndicator = 11 используется алгоритм стандартного зигзага. Что такое паттерны. Луч XA - это импульсная волна. А структура ABCD является коррекционной волной. То есть в теории патерны являются частью волновой структуры по Эллиотту. Более 10 лет назад Putnik исследовал параметры стандартного зигзага и предложил настройки параметров, которые не всегда но достаточно часто выявляют волновые модели по Эллиотту. Putnik специализируется на волновом анализе. Вот эти его настройки и выбраны по умолчанию. На самом деле вариантов настроек может быть множество. Поговорите на эту тему с поручиком. Он специализируется на паттернах.

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

Вот текущий пример по йене:

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

Это просто какое-то чудо. У меня есть объяснение почему это происходит. Но оставим эту тему.

По вопросам.

1) Нет возможности вывода буквенных обозначений вершин паттернов (XABCD).

2 и 3) Буква "A" обозначает антипаттерны. Посмотрите, например, A Gartley и Gartley. Их как паттерны и TOTAL придумал поручик. Приставка max используется для паттернов, которые были в первых версиях ZUP, в которых был создан поиск паттернов. В этих паттернах использовался наиболее широкий диапазон ретресментов. В текущей версии встроен, скажем так, классический Gartley и max Gartley. Отличаются параметрами. Отличия небольшие.

4) Для режима китайская игрушка используются значения параметра ExtGartleyTypeSearch  1 или 2. В одном случае производится одноразовый поиск паттернов. В другом случае поиск паттернов производится при каждом изменении нулевого бара. В пределе поиск осуществляется на каждом тике, когда нулевой бар изменяет свой размер на каждом тике. Это накладно для метатрейдера.

Евгений, спасибо за комментарий.

А вилы вы строите вручную или вы пользуетесь автоматическим построением индикатора? И если так, то алгоритм постоения вил использует экстремумы, найденные зигзагом. И всё равно приходим к тому, что нужно понимать, какой зигзаг с какой целью внедрялся. Можете дать рекомендацию, какой с какого зигзага оптимальнее начать, может быть там есть какой-то специальный для лучшей работы алгоитма построения вил?

Eugeni Neumoin
Eugeni Neumoin | 6 мар 2018 в 19:47
ys_mql5:

Евгений, спасибо за комментарий.

А вилы вы строите вручную или вы пользуетесь автоматическим построением индикатора? И если так, то алгоритм постоения вил использует экстремумы, найденные зигзагом. И всё равно приходим к тому, что нужно понимать, какой зигзаг с какой целью внедрялся. Можете дать рекомендацию, какой с какого зигзага оптимальнее начать, может быть там есть какой-то специальный для лучшей работы алгоитма построения вил?


Используется стандартный зигзаг ExtIndicator=0. По умолчанию.

Можно делать с помощью волнового зигзага ручную волновую разметку. Описание в статье про версию 151.

Привязываются вилы либо к экстремумам стандартноеп зигзага, либо к волновому зигзагу.

Нужен определенный навык. Можно поступить проще.. Включайте статические вилы. Пстроения будут проводиться на автомате. На форуме forexdengi так все и делают. Строят вилы на автомате.

Но эти вилы н всегда пригодны. Понимание приходит со временем. Полезно изучить волновой анализ. Для начала можно хотя бы посмотреть вебинары от РОмана Павелко. Его вебинары транслирует периодически FxPro. На ютюбе поищите.

А можно поискать вебинары Putnika на ютюбе. Наберите в поиске DML@EWA. Там есть много информации по применению вил Эндрюса из ZUP

ys_mql5
ys_mql5 | 6 мар 2018 в 20:12
Eugeni Neumoin:


Используется стандартный зигзаг ExtIndicator=0. По умолчанию.

Можно делать с помощью волнового зигзага ручную волновую разметку. Описание в статье про версию 151.

Привязываются вилы либо к экстремумам стандартноеп зигзага, либо к волновому зигзагу.

Нужен определенный навык. Можно поступить проще.. Включайте статические вилы. Пстроения будут проводиться на автомате. На форуме forexdengi так все и делают. Строят вилы на автомате.

Но эти вилы н всегда пригодны. Понимание приходит со временем. Полезно изучить волновой анализ. Для начала можно хотя бы посмотреть вебинары от РОмана Павелко. Его вебинары транслирует периодически FxPro. На ютюбе поищите.

А можно поискать вебинары Putnika на ютюбе. Наберите в поиске DML@EWA. Там есть много информации по применению вил Эндрюса из ZUP

Отлично, спасибо. Это будет хорошей стартовой точкой для изучения этой методики анализа.

Посмотрел я анализ рынка от Gelox на сайте forexdengi, конечно, сразу не разберёшься (даже если и понимаешь в общих чертах принципы волнового анализа), нужно начинать с малого - с изучения основ данного подхода. Кроме того, как я понимаю, конкретно учебных материалов по DML&EWA нет, т.к. Putnik, насколько я понял, проводит (или проводил?) платные семинары на эту тему. А значит, если информация и есть в открытом доступе, то разбросанная по крупицам или вообще исключительно в практическом применении при анализе рынка. 

Евгений, могли бы вы посоветовать хорошую литературу и/или ресурсы на тему анализа рынка с помощью вил Эндрюса? Я нашёл у себя в загашнике книгу Патрика Микулы "Лучшие методы линий тренда Алана Эндрюса плюс пять новых техник". Думаю, базовое понимание работы с ВЭ оттуда можно получить.

И ещё один момент - какая конфигурация для работы с ZUP в МТ4 наиболее актуальна сейчас:

  1. 9 ZUP с разными настройками отображения на разных ТФ (как советует Игорь в своём семинаре от 2013 года)
  2. Выложенный Gelox'ом "Комплект ZigZag" от вас - https://www.forexdengi.com/threads/10201-zup-i-vili-endryusa-termini-ponyatiya-parametri?p=12419002&viewfull=1#post12419002
  3. Или же, если судить по наиболее актуальному сообщению Gelox от 03.03.2018 - установка 2 комплектов ZUP в 3 окна с разными ТФ и разными настройками minBars и ExtBackstep - https://www.forexdengi.com/threads/84088-nastroyka-vil-endryusa-v-indikatornoy-platforme-zupv150-s-nen-v-kartinkah-ot-sledopyt?p=18037607&viewfull=1#post18037607

LifeHack для трейдера: замешиваем ForEach на дефайнах (#define) LifeHack для трейдера: замешиваем ForEach на дефайнах (#define)

Промежуточная ступенька для тех, кто всё ещё пишет на MQL4, но никак не может перейти на MQL5. Мы продолжаем искать возможности для написания кода в стиле MQL4. На этот раз рассмотрим макроподстановку препроцессора - #define.

Глубокие нейросети (Часть V). Байесовская  оптимизация гиперпараметров DNN Глубокие нейросети (Часть V). Байесовская оптимизация гиперпараметров DNN

В статье рассматриваются возможности байесовской оптимизации гиперпараметров глубоких нейросетей, полученных различными вариантами обучения. Сравнивается качество классификации DNN с оптимальными гиперпараметрами при различных вариантах обучения. Форвард-тестами проверена глубина эффективности оптимальных гиперпараметров DNN. Определены возможные направления улучшения качества классификации.

Визуализируем оптимизацию торговой стратегии в MetaTrader 5 Визуализируем оптимизацию торговой стратегии в MetaTrader 5

В статье реализовано MQL-приложение с графическим интерфейсом для расширенной визуализации процесса оптимизации. Графический интерфейс создан с помощью последней версии библиотеки EasyAndFast. У многих пользователей возникает вопрос, зачем нужны графические интерфейсы в MQL-приложениях. В настоящей статье продемонстрирован один из множества случаев, когда они могут быть полезными для трейдеров.

Управляемая оптимизация: метод отжига Управляемая оптимизация: метод отжига

В тестере стратегий торговой платформы MetaTrader 5 есть только два варианта оптимизации: полный перебор параметров и генетический алгоритм. В этой статье предложен новый вариант оптимизации торговых стратегий — метод отжига. Приводится алгоритм метода, его реализация и способ подключения к любому советнику. Разработанный алгоритм протестирован на советнике Moving Average.