Стратегия Двойная вершина двойное дно

Рейтинг брокеров бинарных опционов за 2020 год по надежности:
  • Бинариум
    Бинариум

    1 место! Самый лучший брокер бинарных опционов. Подходит для новичков! Получите бонус за регистрацию счета:

Двойная (тройная) вершина (дно) – фигуры разворота на форекс

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

Описание фигуры двойная вершина/основание

Двойная вершина – фигура разворота , образующаяся в конце бычьего тренда. Внешне напоминает букву «М», так как содержит в себе два последовательных максимума примерно одного ценового уровня с откатом между ними.

Аналогичным образом строится и двойное основание (также встречается название “двойное дно”) в конце медвежьего тренда и напоминает теперь уже букву «W».

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

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

Применение в торговле на форекс

Предугадать появление разворотной фигуры двойная вершина/двойное основание (дно) в теханализе невозможно. Всё, что остаётся трейдеру – это наблюдать за поведением цены при подходе к нужному ценовому уровню. Здесь может возникнуть обычный небольшой отбой как от сопротивления, которым и является по сути эта зона (как мы знаем, сопротивление строится по экстремумам в прошлом). Если цена показывает разворот с подтверждением на малых периодах, то далее можно предполагать, что у нас как раз образуется двойная вершина. В этом случае есть несколько вариантов входа в рынок, выбирать стоить наиболее подходящий как по ситуации, так и по правилам своей торговой системы:

  1. Вход на пробое экстремума отката. Это самый простой способ торговли, который, правда, не всегда актуален из-за возможности формирования крупной фигуры графического анализа – “флага”. Либо же цена может пойти на ещё один заход и далее всё будет зависеть уже только от того, где был выставлен стоп лосс. В общем, не самый надёжный вариант, но многие используют именно его. Некоторую ясность может внести характер формирования как самого предшествующего тренда, так и колебания в рамках формирования этой разворотной фигуры. Если они происходят резко, то скорее всего мы увидим разворот, особенную важность в такой субъективной оценке имеет момент пробоя этого экстремума. Если ещё на подходе к нему наблюдается неуверенное движение с откатами, то лучше повременить и зайти позднее. В этом случае можно рассчитывать на явление ретеста пробитого уровня, которое позволяет зайти в уже подтверждённое движение. Правда, случается он далеко не всегда.
  2. Вход по паттерну двойная вершина – на пробое трендовой линии, проведённой следующим образом. Берётся какой-либо значимый экстремум с предыдущего тренда, желательно, чтобы он был в самом начале или вообще начинал само движение. От него проводится прямая к экстремуму между двумя вершинами. И вот здесь уместно будет упомянуть паттерн “Дракон”, который именно по такой схеме и строится, основываясь на двойном основании (перевёрнутый дракон – на двойной вершине). Пробой этой трендовой линии будет сигналом на вход в рынок. Здесь также как и в предыдущем рассмотренном варианте есть возможность подождать ретеста, но вероятность получить убыток уменьшается из-за того, что будет возможность поставить безубыток при подходе к экстремуму отката, где возможен новый разворот, как и говорилось в предыдущем пункте.
  3. Вход, когда вершины в составе фигуры двойная вершина или двойное основание находятся не на одном уровне. Такое часто встречается и легко объясняется тем, что сам по себе уровень в техническом анализе – весьма условный ориентир, это скорее зона вокруг ценового значения. В связи с этим и получается так, что двойная вершина может иметь разные значения экстремумов. В этом случае проводим канал, который будет использоваться для определения точки входа. Опорными точками будут как раз три ключевых экстремума фигуры двойная вершина или двойное дно – собственно, сами вершины и разворотная точка отката между ними, как показано на следующей картинке. В этом случае ждём пробоя границы канала и входим по нему.

Выставление стоп лосса

Здесь всё достаточно просто – стоп убирается за одну из вершин, выбирать следует ту, у которой дальше по тренду ценовое значение. Для двойной вершины это будет большая котировка, для двойного основания – меньшая. На всякий случай делается ещё небольшой отступ в несколько пунктов на тот случай, если всё же сформируется ещё один виток колебательного движения в диапазоне.

Сильно отодвигать стоп не стоит, так как:

  1. Это не предусмотрено стратегией торговли, и любые собственные изменения в порядок действий, значения параметров и варианты выставления тейка и стопа негативно сказывается на общей статистике. Эти фигуры приносят прибыль на длительном периоде наблюдений и при одинаковом размере позиций.
  2. В случае пробоя вполне вероятна отработка уже упомянутого ранее паттерна теханализа “флаг” , который подразумевает ускорение движения после консолидации. Поэтому, отодвигая стоп, мы лишь увеличиваем убыток, а вовсе не сокращаем вероятность его получения.

Выставление тейк профита

Здесь уже гораздо больше вариантов действий. Объясняется это тем, что сама фигура двойная вершина или двойное дно не подразумевают какого-либо ориентира для фиксации прибыли, а лишь свидетельствуют о том, что рынок развернулся. Поэтому здесь можно использовать самые ходовые приёмы, ориентированные на предыдущий тренд. Рассмотрим два наиболее актуальных:

ТОП лучших русскоязычных брокеров бинарных опционов:
  • Бинариум
    Бинариум

    1 место! Самый лучший брокер бинарных опционов. Подходит для новичков! Получите бонус за регистрацию счета:

  1. Выставление тейка на том уровне, где начинался предыдущий тренд с отступом в 5-10% от величины самого тренда, то есть не доходя самого уровня начала. Обычно это актуально использовать в том случае, когда тренд был очень динамичным, разворот происходил быстро и, что самое главное, есть некоторая симметрия между обеими частями фигуры двойная вершина или двойное основание. В этом случае внимательно смотрим на то, как развивается тренд в теперь уже новом направлении. Если он показывает симметрию с предыдущим трендом, то в этом случае вполне обоснованно держать позицию до последнего. Если же он развивается коряво, то в этом случае следует фиксировать прибыль частями по мере продвижения цены в сторону открытой позиции. Какими долями фиксировать – решать каждому придётся самому. Как вариант – разделить движение на равные участки и на каждой такой отметке фиксировать соответствующую часть.
  2. Ориентироваться на фибоуровни. Этот удобный вариант требует минимум действий и практически всегда даёт хороший результат. В качестве диапазона берётся предыдущий тренд, на него накладывается сетка уровней и получается готовый маршрут. Первая цель нового тренда – значение 38,2%. Это первое серьёзное сопротивление на пути цены. Далее следует 50%, затем 61,8%. Всё, что дальше – уже скорее относится к первому варианту, описанному ранее. Очень часто движение останавливается именно на 61,8%. Поэтому, торгуя по фигуре двойная вершина или двойное дно стоит учитывать этот момент.
    Пример двойной вершины, отработавшей до уровня 61,8%

Тройная вершина и тройное основание на форекс

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

Прочтите, это ВАЖНО:  Способы обмана брокера Option Rally

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

Заключение

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

Стратегия двойная вершина — двойное дно для применения в бинарных опционах

Дата 23 Апрель 2020. Опубликовано в Стратегии торговли

Стратегия торговли на бинарных опционах «Двойное дно» — это еще один представитель из огромного числа систем, что базируются на графических элементах технического анализа.

Данная стратегия разработана на использовании одноименной фигуры поворота, называемой «двойная вершина» либо «двойное дно».

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

Образование двойной вершины или двойного дна.

Заметить указанные фигуры на ценовом графике довольно не просто, поскольку чисто внешне они сильно похожи на фигуру «голову-плечи», только при этом не имеют четко выраженных плеч. По данной причине, чтобы сократить поиски фигуры «двойного дна» и «двойной вершины», стоит соорудить горизонтальную линию, что бы смогла выполнять функции поддержки.

Подобная фигура, как «двойная вершина» берет своё формирование в процессе восходящего тренда. Она складывается из двух последовательных вершин, что образовались посредствам цены на графике. Так что, вершины фигуры — это ценовые границы, которые появляются, в момент того, когда продавцы стараются чрезмерно задрать цену, тогда как покупатели с таким положением не соглашаются и просто оставляют торги.

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

Самой идеальной окажется фигура «двойная вершина» в той ситуации, когда её вершины будут находиться четко на одном уровне. Однако, подобное явление происходит достаточно редко, в основном, вторая вершина значительно меньше предыдущей. Полагают, что цена доходит к точке разворота в момент преодоления вниз линии поддержки.

Применение методики «двойная вершина» в торговле опционами.

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

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

Таким способом, для удобства использования метода «двойной вершины» было определено главные сигналы во время торговли бинарными опционами, на которых стоит приобретать опционы.

Сигналы для покупки бинаров при образовании фигуры «двойная вершина»:

1) Цена пробивает показатели впадины;

2) Цена пробивает показатели поддержки;

3) Цена вернулась снизу вверх к уровням поддержки, которые сейчас превратились в уровни сопротивления и снова отошли к низу.

Заметим, что такая методика торговли бинарами «двойное дно» совершенно зеркальна способу «двойная вершина».

Сигналом для покупки колл опциона считается пробитие ценою актива линии сопротивления по направлению вверх. Однако бывают ситуации, в которых ценовой предел размещен достаточно высоко. В таких ситуациях не стоит ожидать его пересечения и спокойно можно покупать CALL опцион, но только после того, как цена актива отобьётся от линии поддержки.

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

Смысл использования таких графических фигур аналогичен к методике «двойная вершина» или «двойное дно». В текущем варианте цена должна образовать три вершины и лишь после этого пройти через линии поддержки.

Вывод. Несмотря на определённую сложность использования, методики торговли бинарными опционами «двойное дно» и «двойная вершина» считаются очень эффективными. Важно – своевременно обнаружить зарождения таких фигур и войти в рынок на том этапе, когда их образования окончится.

Брокера Биномо от других компаний отличает огромное количество способов ввода-вывода денег со счета. Тут доступны как известные в рунете Вебмани и Яндекс деньги, так и пейпал и нетеллер.

Разворотные паттерны: Тестируем паттерн «Двойная вершина/дно»

Содержание

Введение

Анализ, проведенный в статье «Сколько длится тренд?», демонстрирует, что около 60% ценовое движение находится в тренде. И именно открытие позиции в начале тренда дает возможность получить максимальный результат. Поиски точек разворотов трендов породили большое количество разворотных паттернов. Одним из наиболее известных и часто применяемых паттернов является двойная вершина/дно.

1. Теоретические аспекты формирования паттерна

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

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

Прочтите, это ВАЖНО:  Брокер Imperial Options - сайт www.imperialoptions.com, бинарные опционы и отзывы о компании

При поиске паттерна на графике не следует искать точного совпадения вершин/впадин. Считается нормальным отклонение уровня вершин/впадин. Главное, чтобы вершины находились в пределах одного уровня сопротивления/поддержки. Надежность паттерна прямо пропорциональна силе уровня, в зоне которого происходит его формирование.

2. Стратегия торговли по паттерну

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

2.1. Сценарий 1

Первая точка входа основана на пробитии линии шеи. Стоп-лосс выставляется за линией вершин / впадин. При этом существуют различные подходы для определения «пробития лини шеи». Здесь может использоваться как закрытие бара под линией шеи, так и преодоление линии шеи на фиксированное расстояние. Оба подхода имеют свои плюсы и минусы. При резком движении закрытие свечи может произойти на достаточном расстоянии от линии шеи, что сделает неэффективным использование паттерна.

К минусам такого подхода можно отнести относительно большой уровень стоп-лосса, что снижает коэффициент прибыль/риск используемой стратегии.

2.2. Сценарий 2

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

2.3. Сценарий 3

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

Во всех трех стратегиях предлагается выход на уровне равном расстоянию от экстремумом до линии шеи.

Также, при определении паттерна на графике следует обратить внимание, что двойная вершина/дно должно четко выделяться из ценового движения. И часто при описании паттерна добавляется ограничение: между двумя вершинами/впадинами должно быть не менее 6 баров.

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

3. Создаем советник

3.1. Поиск экстремумов

Создание торгового советника начнем с создания блока поиска паттерна. Для поиска экстремумом на графике воспользуемся индикатором зиг-заг из коробочной поставки MetaTrader 5. Перенесем расчетную часть индикатора в класс по технологии, описанной в статье [1]. Как известно, данный индикатор содержит два индикаторных буфера, содержащих значение цены в точках экстремумом. Между экстремумами индикаторные буферы содержат пустые значения. Чтобы не создавать два индикаторных буфера, содержащих множество пустых значений, они были заменены массивом структур, содержащих информацию об экстремуме. Структура для хранения информации об экстремуме имеет нижеследующий вид.

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

Для решения этой задачи был построен класс CTrends. Заголовок класса представлен ниже. При инициализации в класс передается ссылка на объект индикаторного класса и размер минимального движения, при котором новое движение будет считаться продолжением тренда.

Для получения информации об экстремумах в классе предусмотрены методы:

  • ExtremumByTime — получение номера экстремума в базе по заданному времени,
  • Extremum — возвращает экстремум по указанной позиции в базе,
  • IsHigh — возвращает true, если указанный экстремум является вершиной, и false — если впадиной.

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

Основная логика класса реализована в методе Calculate. Давайте рассмотрим его подробнее.

В начале метода проверим актуальность ссылки на объект индикаторного класса и наличие экстремумов, найденных индикатором.

Затем, определим количество необработанных экстремумов. В случае, если все экстремумы обработаны, выходим из метода с результатом true.

После этого запрашиваем необходимое количество экстремумов из индикаторного класса.

Если же до сих пор не было ни одного экстремума в базе, то добавляем в базу самый старый экстремум, вызвав метод AddTrendPoint.

Далее организовываем цикл с перебором всех загруженных экстремумом. Экстремумы до последнего ранее сохраненного пропускаются.

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

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

С полным кодом всех классов и их методов можно ознакомиться во вложении.

3.2. Поиск паттернов

После определения ценовых экстремумом построим блок поиска точек открытия позиции. Разделим эту работу на 2 подэтапа:

  1. Поиск паттерна для потенциального открытия позиции.
  2. Непосредственно точки открытия позиции.

Этот функционал будет возложен на класс CPttern, заголовок которого представлен ниже.

Паттерн будем определять по четырем соседним экстремумам, информацию о которых сохраним в четырех структурах s_StartTrend, s_StartCorrection, s_EndCorrection и s_EndTrend. Для идентификации паттерна нам также потребуются уровни минимума и максимума коррекции, которые будут храниться в переменных d_MinCorrection и d_MaxCorrection. Экстремумы будем получать из экземпляра ранее созданного класса CTrends.

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

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

Вначале метода проверим актуальность указателя на объект класса CTrends и наличие сохраненных экстремумов. В случае негативного результата выходим из метода с результатом false.

Затем определяем экстремум, соответствующий дате, полученной в входных параметрах. Если экстремум не найден, выходим из метода с результатом false.

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

Прочтите, это ВАЖНО:  Стратегия торговли бинарами «Slow Snake»

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

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

Для реализации этого функционала создадим метод CheckSignal(). Данный метод, помимо непосредственно сигнала, будет возвращать торговые уровни стоп-лосса и тейк-профита, поэтому в параметрах метода воспользуемся указателями на переменные.

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

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

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

Стоит отметить, что здесь я добавил еще некоторые ограничения:

  • Паттерн считается недействительным, если цена пробила уровень вершин/впадин.
  • Паттерн считается недействительным, если цена достигла ожидаемого уровня тейк-профита.
  • Сигнал на открытие сделки игнорируется, если с момента сигнала сформировалось более 2 свечей до открытия позици.

После обнаружения сигнала на открытие позиции укажем тип сигнала («-1» — Продажа, «1» — Покупка) и торговые уровни. Стоп-лосс установим на уровне максимальной глубины коррекции к линии шеи после ее пробития. Для тейк-профита установим 2 уровня:

1. На уровне, равном 90% расстояния от линии экстремумов до шеи в сторону открытия позиции.

2. На уровне, равно 90% от предыдущего трендового движения.

При этом добавим ограничение, что уровень первого тейк-профита не может превышать уровень второго тейк-профита.

С полным кодом всех классов и методов можно ознакомиться во вложении.

3.3. Собираем советник

После проведения подготовительной работы соберем все блоки в единый советник. Объявим внешние переменные, которые разделим на три блока:

  • Параметры индикатора зиг-заг;
  • Параметры для поиска паттернов и точек входа;
  • Параметры для совершения торговых операций.

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

Для реализации возможности выставления одновременно двух тейк-профитов к позиции воспользуемся технологией, предложенной в статье [2]

В функции OnInit() проведем инициализацию всех необходимых объектов. При этом, так как мы глобально не объявляли экземпляры классов CZigZag и CTrends, мы просто их инициализируем и добавим указатели на эти объекты в наш массив. В случае ошибки инициализации на любом из этапов выходим из функции с результатом INIT_FAILED.

В функции OnDeinit() произведем очистку экземпляров используемых объектов.

Как всегда, основной функционал реализован в функции OnTick. Функционал данной функции можно условно разделить на два блока:

1. Проверка сигналов на открытие позиции в ранее найденных паттернах. Запускается при каждом открытии новой свечи на малом таймфрейме поиска подтверждения сигнала.

2. Поиск новых паттернов. Запускается при каждом открытии новой свечи на рабочем (указанном для индикатора) таймфрейме.

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

В случае наступления нового бара организуем цикл проверки всех ранее сохраненных паттернов на наличие сигнала к открытию позиции. Здесь следует обратить внимание, что первые два объекта массива мы не будем проверять на наличие сигналов, так как в этих ячейках у нас хранятся указатели на экземпляры классов поиска экстремумов. В случаях, если хранимый указатель недействительный или функция проверки сигнала вернет значение false, указатель будет удален из массива. Непосредственно проверка сигналов паттерна будет осуществляться в функции CheckPattern(), алгоритм которой будет рассмотрен ниже.

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

При появлении нового бара определим начальную дату поиска паттернов (с учётом заданной в параметрах глубины анализируемой истории). Затем проверим актуальность указателя на объект класса CPattern и, в случае недействительного указателя, создадим новый экземпляр класса.

После чего в цикле вызываем метод поиска потенциальных паттернов. В случае успешного поиска сделаем сдвиг даты начала поиска нового паттерна и проверим наличие найденного паттерна в массиве ранее найденных. Если паттерн уже есть в массиве, переходим к новому поиску.

Если же найден новый паттерн, то проверим сигнал на открытие позиции, вызвав функцию CheckPattern(). После чего, при необходимости, сохраняем паттерн в наш массив и инициализируем новый экземпляр класса для следующего поиска. Цикл продолжается пока при очередном поиске метод Search() не вернет значение false.

Для полноты картины предлагаю рассмотреть алгоритм функции CheckPattern(). В параметрах данный метод получает указатель на экземпляр класса CPatern и возвращает логическое значение результата проведения операций. Напомню, что при получение результата false от рассматриваемой функции, анализируемый паттерн удаляется из массива сохраняемых объектов.

В начале функции вызовем метод поиска сигнала на открытия позиции класса CPattern. В случае ошибки проверки выходим из функции с результатом false.

При успешном поиске сигнала на открытие позиции установим торговые уровни и отправим приказ на открытие позиции в соответствии с полученным сигналом.

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

С полным кодом всех методов и функций можно ознакомиться во вложении.

4. Тестирование стратегии

После создания нашего советника пришло время проверить его работу на исторических данных. Тестирование будем проводить за период в 9 месяцев 2020 года для пары EURUSD. Поиск паттернов будем проводить на тайм фрейме М30, а точки открытия позиции будем искать на тайм-фрейме М5.

Результаты тестирование показали возможность советника генерировать прибыль. За тестируемый период советник совершил 90 трейдов, 70 из которых было прибыльными. Советник показал профит фактор 2.02 и фактор восстановления 4.77, что свидетельствует о возможности использования советника на реальных счетах. Полные результаты тестирования приведены ниже.

Заключение

В данной статье мы создали советник, работающий на паттерне разворота тенденции «Двойная вершина/дно». Тестирование советника на исторических данных показало приемлемые результаты и способность советника генерировать прибыль. Подобная работа подтверждает возможность использования паттерна «Двойная вершина/дно» для поиска точек открытия позиции, как хороший сигнал разворота тенденции.

Брокер бинарных опционов, выдающий бонусы за регистрацию:
  • Бинариум
    Бинариум

    1 место! Самый лучший брокер бинарных опционов. Подходит для новичков! Получите бонус за регистрацию счета:

Добавить комментарий