Автоматическое построение линий поддержки и сопротивления
Введение
В этой статье мы рассмотрим автоматическое построение линий поддержки и сопротивлений. Технический анализ валютных инструментов — важная часть торговли на финансовых рынках. Поэтому автоматическое построение этих линий облегчит работу финансовым аналитикам и трейдерам и даст возможность ускорить технический анализ. Помимо этого, на базе рассмотренного индикатора можно будет создавать автоматические советники.
Поиск всех локальных максимумов и минимумов
Линии поддержки и сопротивления строятся через локальные максимумы и минимумы ценовых графиков. Для определения этих экстремумов мы будем применять всем известный индикатор ZigZag. В его входных параметрах можно задать необходимые свойства для линий поддержки и сопротивления.
Масштаб линий можно изменять с помощью параметров индикатора ZigZag, но можно применять на разных таймфреймах и одинаковые параметры. Это даст возможность получить нужные нам экстремумы, чтобы потом строить по ним уровни поддержки и сопротивления.
На рисунках ниже продемонстрировано, как меняется характер вершин при смене таймфрейма. На первом рисунке показан 30-минутный минутный график, а затем — 4-часовой.
Отбор подходящих экстремумов для построения уровней
Будем строить только те линии поддержки и сопротивления, которые проходят вблизи от текущей цены — а значит, будут актуальными для нас в плане технического анализа на данный конкретный момент. Также, чтобы линии имели сходящийся к цене наклон, используем те экстремумы, каждый из которых выше или равен предыдущему для линий сопротивления — при нисходящем тренде, или ниже или равен предыдущему — при восходящем. По первому рисунку это могут быть точки 1-2-3-4-5-7, а по второму — 1-2-3-6-7-8.
Мы определились с критериями отбора экстремумов. Теперь рассмотрим реализацию в виде кода. Продемонстрируем его здесь лишь частично, чтобы разъяснить основные моменты.
В функции OnInit() создаем хэндл индикатора ZigZag:
Далее, перебирая поочередно все экстремумы индикатора Zigzag, заносим информацию о них в матрицу:
Определение критериев для построения трендовых линий
Теперь сформировав массив с вершинами, мы можем строить нужные нам линии поддержки и сопротивления. Определение основных критериев для построения линий разъяснено на рисунке ниже.
Начиная с точки 1, мы можем построить линии через любую из последующих точек. Но не все такие линии можно считать линиями поддержки и сопротивления. Или же они могут быть неактуальными на данный момент и будут не нужны нам на графике. Для нас удобнее, чтобы на графике не было лишних построений, поэтому сделаем перебор и отфильтруем лишние линии.
Будем считать, что начальная точка линии — А, вторая вершина — Б, и точка, находящаяся возле последнего бара, — С.
Критериев может быть много, в различных ситуациях они разные. Рассмотрим здесь только основные. В дальнейшем каждый желающий сможет усовершенствовать этот индикатор по своему усмотрению. Итак, основные критерии:
- Соотношение расстояний АБ и БС
- Количество пересечений ценой отрезка АБ
- Количество пересечений ценой отрезка БС
- Расстояние от С до текущей цены
- Минимальная и максимальная длина линии
- Наклон линии
- Нахождение цены выше или ниже линии сопротивления
Рассмотрим перечисленные критерии более детально, чтобы лучше понять настройку входных параметров.
- Для соблюдения допустимых пропорций можно воспользоваться коэффициентами Фибоначчи и принять минимально допустимым соотношение не менее 0,25 или 0,382. В соответствии с данным критерием, отношения длин должны соответствовать условию АБ/АС>=02.25 (0.382) и БС/АС>=02.25 (0.382). Для удобства значение этого параметра можно будет задавать во входных настройках.
- По количеству пересечений ценой отрезка линии АБ также нужно тщательно фильтровать все имеющиеся линии. Есть много вариантов того, как проводить такую проверку. Можно учитывать только бары, которые закрылись, пробив данную линию, а можно учитывать пробитие по ценам High или Low. Второй критерий этой проверки — количество баров, которые пересекли этот отрезок линии. Эти параметры тоже вынесены во входные настройки.
- По количеству пробоев, их характеру и положению текущей цены относительно участка БС можно судить о важности линии. Все перечисленные критерии можно использовать как для формирования линии, так и для формирования торговых стратегий при создании автоматических советников. В данном индикаторе мы будем отображать лишь линии, которые еще не пересекали данный отрезок.
- Расстояние от текущей цены до линии в первую очередь может фильтроваться из соображений того, актуальна ли сейчас для нас эта линия. К примеру, можно строить только линии, расстояние до которых не более 50 — 100 пунктов.
- Минимальная длина линии в нашем случае определяется входными параметрами индикатора ZigZag, но при необходимости этот параметр также можно контролировать. В индикаторе будут проверяться минимальные длины отрезков АБ и БС.
- Так как линии поддержки более значимые, потому что по ним открываются позиции, то индикатор будет строить для восходящего тренда линии с нулевым или положительным наклоном, а для нисходящего — с нулевым или отрицательным.
- Мы можем использовать линии двумя путями. Первый — учитывать только непробитые линии и торговать в направлении тренда. Второй — использовать только пробой трендовых линий для открытия сделок в обратном направлении. Оба типа линий важны, поэтому оба они будут отражаться в индикаторе.
Ниже показана часть кода, где формируются линии сопротивления нисходящих трендов.
Примеры построения индикатора:
Использование линий поддержки и сопротивления в торговле
Основной принцип торговли с применением уровней поддержки и сопротивления состоит в том, чтобы покупать вблизи линии поддержки на восходящем тренде (и продавать при понижающемся) или на флэте. Используются и некоторые графические модели (паттерны).
Такая торговая стратегия позволяет воспользоваться трендовым движением, даже когда финансовый инструмент находится во флэте, или же когда цена формирует какую-либо фигуру. Тренд помогает определять направление, в котором необходимо открывать сделки. К примеру, если текущий тренд нисходящий, но затем переходит во флэт, то предпочтительнее открывать сделки на продажу вблизи линии сопротивления, а не покупать на уровне поддержки. Присутствие понижающегося тренда означает, что сделки на продажу имеют больше шансов на успех, чем сделки на покупку. Если тренд восходящий, а после него формируется треугольник, тогда лучше открывать сделки на покупку возле линии поддержки этого треугольника.
Открытие сделок по тренду вблизи линий поддержки и сопротивления может принести прибыль, однако цена часто пробивает эти уровни. Поэтому нужно дождаться подтверждения значимости этого уровня по конкретному финансовому инструменту. Перед тем как покупать или продавать на линии, необходимо дождаться консолидации цены возле нее. Как вариант, можно подождать отскока цены от уровня, и открывать сделку только после этого.
При открытии сделок на покупку от линии поддержки рекомендуется дождаться консолидации цены возле нее, и только после этого открывать ордер на покупку, когда цена пробьет вверх High этой зоны консолидации. Это дает возможность убедиться в том, что уровень действительно влияет на цену, а также в том, что цена начинает двигаться в нужном нам направлении (идти вверх) от этого уровня. Это как раз то, что нам нужно для покупки. Аналогичная ситуация складывается при открытии сделок на продажу от линии сопротивления: необходимо дождаться появления консолидации возле зоны сопротивления, и лишь потом открывать сделку, когда цена опустится ниже Low этой зоны консолидации.
Открывая сделку, нужно заранее спрогнозировать условия ее закрытия. При открытии сделки на покупку от линии поддержки желательно закрывать сделку перед тем, как цена достигнет сильной линии сопротивления. Аналогичная ситуация складывается при открытии сделки на продажу. Можно также закрывать сделки на второстепенных уровнях поддержки и сопротивления. При покупке на линии поддержки нужно продать на уровне сопротивления в повышающемся трендовом канале. Но можно также попробовать получить более крупную прибыль, если дать цене пробить уровень. Например, при покупке от уровня поддержки в треугольнике (при общем повышающемся тренде) можно удерживать позицию, пока цена не пробьет треугольник и не продолжит движение вверх. После этого можно выйти из сделки на следующей линии сопротивления.
Советник на основе индикатора
Ниже представлен советник, имеющий следующие функции:
- StopLoss и TakeProfit
- Максимальное количество Buy/Sell ордеров
- Trailing Stop
- Функция безубытка
- Закрытие встречных сделок по сигналам индикатора
- 4 HTF-фильтра (MACD, RSI, WPR, MA) с возможностью выбора
Советник работает непосредственно с трендовыми линиями, созданными индикатором, поэтому для его работы в реальном времени надо добавить индикатор на график с установленным советником. Настройки, касающиеся индикатора, нужно устанавливать в самом индикаторе. В советнике тоже есть настройки индикатора, но они используются лишь при тестировании. Чтобы можно было тестировать советник, в коде создан хэндл на индикатор, который определяется при инициализации советника.
Предусмотрены 3 режима работы советника:
- from level — торговля на отражение цены от трендовой линии. Сделка открывается, если минимальная или максимальная цена бара пересекла уровень, цена закрытия не пробила текущую трендовую линию, а также цена следующего бара закрылась, не пробив линии. Происходит проверка на пробой ценой линии после касания.
- level breakdown — торговля на пробое ценой трендовой линии. Сделка открывается, если минимальная или максимальная цена бара пересекла уровень, цена закрытия не пробила текущую трендовую линию, а свеча следующего бара закрылась, пробив трендовую линию.
- all — используются оба вышеописанных режима.
Ниже представлена функция в коде, где формируются сигналы на покупку и продажу:
При тестировании удалось определить, что прибыльность торговли на отскок от линии менее прибыльная, чем торговля по пробитию уровней.
Ниже представлены графики тестирования трех режимов со следующими входными параметрами:
При тестировании открывалась только одна сделка размером 0.1 лота в одном из направлений. При встречном сигнале закрывалась текущая сделка и открывалась противоположная ей. Применялся фильтр по индикатору MACD, при котором сделки на покупку открывались при значениях индикатора меньше нуля, а на продажу — выше нуля. Тестирование делалось на временном интервале 1 час по EURUSD за 2015-2017 гг.
Режим from level:
Режим level breakdown:
Ниже приведены результаты теста с настройками по умолчанию на нескольких валютных парах.
Здесь видно, что хорошие результаты показаны только по EURUSD и USDCHF. В первую очередь это связано с тем, что не все линии нужно учитывать при торговле. Также нужно учитывать другие факторы, перечисленные в начале статьи.
Кроме того, нужно помнить о влиянии фундаментального анализа, так как прохождение линий поддержки/сопротивления очень часто происходит после выхода важных новостей.
Поэтому в советник можно добавить фильтр новостей и протестировать работу только в моменты выхода новостей и при полном запрете работы на выходе новостей. Как альтернатива, данный советник можно применять на РЕНКО-графиках.
Оптимизация
Первые семь параметров, на мой взгляд, изначально в советнике установлены оптимально, и их оптимизацию далее я не делал. А вот параметры по индикатору Зиг-Заг установлены по умолчанию и нам немного не подходят. При оптимизации удалось установить, что наиболее подходящие для всех ранее протестированных валют — следующие значения параметров:
- _ExtDepth=24;
- _ExtDeviation=55;
- _ExtBackstep=9;
Для открытия сделок при оптимизации определялось, какой из режимов работы более подходит для конкретного финансового инструмента, а также насколько влияет на результат использование фильтра. В роли фильтра использовался только индикатор MACD. Но можно пробовать работать и с любыми другими индикаторами на различных таймфреймах.
Для закрытия прибыльной или убыточной сделки использовалась функция закрытия встречным сигналом. Чтобы зафиксировать прибыль и получить максимальный результат, использовались функции безубытка и установки тейк-профита. Оптимальные параметры для каждой валюты по этим функциям определялись в процессе тестирования.
Стоп-лосс для фиксации убытка не использовался, а убыточные сделки закрывались только по встречному сигналу.
Процесс оптимизации отображен в таблице. Тестирование проводилось с размером лота 0.1 за 2017 год. Также было увеличено количество открытых сделок на покупку и продажу до 10, все остальные параметры были настроены по умолчанию.
Символ | Режим | MACD фильтр | TakeProfit | Start BE | Прибыль | Profit Factor: | Recovery Factor: | Max DD,% | Total Trades: | Profit Trades,% |
---|---|---|---|---|---|---|---|---|---|---|
EURUSD | level breakdown | false | 0 | 25 | 117.20 | 1.88 | 1.65 | 0.69 | 79 | 73.42 |
USDCHF | level breakdown | false | 20 | 10 | 135.24 | 1.31 | 1.12 | 1.03 | 482 | 72.41 |
GBPCHF | from level | true | 20 | 10 | 91.56 | 1.39 | 0.51 | 1.58 | 246 | 91.06 |
AUDUSD | level breakdown | false | 20 | 10 | 139.20 | 1.39 | 1.66 | 0.79 | 485 | 71.96 |
AUDCAD | level breakdown | true | 25 | 5 | 117.51 | 1.94 | 1.06 | 0.57 | 246 | 84.96 |
EURJPY | level breakdown | false | 20 | 5 | 128.90 | 1.60 | 0.98 | 1.26 | 341 | 78.89 |
GBPUSD | from level | false | 100 | 0 | 102.1 | 1.20 | 1.32 | 0.58 | 274 | 52.92 |
USDJPY | from level | false | 30 | 0 | 147.75 | 1.56 | 0.79 | 1.73 | 348 | 79.89 |
EURGBP | from level | true | 20 | 5 | 124.45 | 1.39 | 1.14 | 1.03 | 341 | 78.01 |
EURCHF | from level | true | 20 | 5 | 141.08 | 2.07 | 1.88 | 0.68 | 367 | 63.22 |
USDCAD | level breakdown | false | 100 | 25 | 142.57 | 1.46 | 0.45 | 1.22 | 248 | 78.87 |
NZDUSD | from level | false | 0 | 25 | 270.50 | 1.37 | 1.04 | 2.37 | 616 | 62.11 |
GBPJPY | level breakdown | true | 150 | 20 | 163.62 | 2.56 | 1.10 | 1.41 | 103 | 68.25 |
Заключение
В статье продемонстрирован базовый принцип автоматического построения линий поддержки и сопротивления. На его основе создан торговый советник и произведена оптимизация входных параметров на 13 финансовых инструментах. Для получения максимального результата по конкретному финансовому инструменту нужно индивидуально подбирать его оптимальные параметры. Чтобы подобрать оптимальные параметры, автоматизировать торговлю и проверить работу по линиям поддержки и сопротивления, и был сделан советник, имеющий ряд основных функций и 4 HTF-фильтра. В дальнейшем индикатор и советник можно расширить и модернизировать, в зависимости от конкретных потребностей.
По итогам работы было определено, что по некоторым валютам торговля на отскок менее прибыльная, чем торговля на пробой. Это говорит о том, что характер движения различных финансовых инструментов непохож и к каждому нужен индивидуальный подход.
Торговля по уровням поддержки и сопротивления. Способы построения
Сегодня постараемся разобраться в том, что такое торговля от уровней поддержки и сопротивления.
Даже, если вы начинающий трейдер, то все равно замечали, как рынок, двигаясь в определённую сторону, в один прекрасный момент упирается как будто в стену, которую он не может преодолеть.
После такой ситуации, с высокой вероятностью происходит откат цены, после чего упершись в новую стену, цена вновь пытается пробить ранний рубеж и, если ей это удается – на рынке наблюдается сильный рывок.
Такая ситуация складывается благодаря уровням поддержки и сопротивления, а главная закономерность рынка состоит в том, что цена двигается от уровня к уровню, в то время как сопротивление, в один прекрасный момент, становится поддержкой и наоборот.
Рассмотрим два метода торговли опционами от уровней — индикаторный и безиндикаторный.
Торговля от уровней поддержки и сопротивления
Торгуя бинарными опционами от уровней, вы будете находить самые выгодные моменты для входа в рынок, ведь цена вблизи них всегда проявляет активность и именно они являются той точкой, от которой набирает свои обороты ценовое движение!
Многие начинающие трейдеры не придают им значения, однако, как показывает моя практика, непонимание основ движения цены и графического анализа всегда плохо заканчивается для торгующего.
Главной особенностью торговли от уровней является то, что они работают на всех возможных активах и валютных парах, а также таймфреймах, а дополнив ими свою стратегию, вы с легкостью сможете высчитывать вероятные цели.
Преимущества торговли опционами от уровней
Рынок Форекс представляет собой некую денежную массу, которая переходит из одних рук в другие. Именно переходит, так как продукт на этом рынке один — деньги!
Вы, будучи трейдером, отнимаете деньги своим решением (если оно правильное), у других трейдеров. Если неправильное, то другие отнимают деньги у вас! Да, пора открыть глаза и знать, когда вы зарабатываете, кто-то потерял деньги и дал вам возможность их забрать -)
В этом месте важно понять одну простую вещь — хотя мы и торгуем бинарными опционами, но на самом деле рынком правят крупные игроки, которые торгуют Форекс. То есть, мы ведем торговлю от экспирации опционов, а трейдеры на Форекс, ведут торговлю от тейк профитов и стоп лоссов!
Именно вследствие установки трейдерами защитных ордеров и возникают невидимые, на первый взгляд, ценовые уровни на наших графиках.
И, поскольку все учатся практически по одним и тем же учебникам, пусть и на разных языках и в разных странах, но принцип установки защитных ордеров у всех принципиально одинаковый.
Самыми популярными местами установки стопов являются точки, либо у локальных максимумов и минимумов, либо по максимумам и минимумам сигнальной свечи, цене закрытия открытия дня.
Для того, чтобы забрать деньги у игрока, его необходимо выбить с рынка, то бишь сорвать его стоп приказы. Именно поэтому цена движется от уровня к уровню. Думаю принцип понятен? Торгуя от уровней бинарными опционами, мы можем собрать в разы больше прибыли , нежели трейдеры, торгующие Форекс.
В то время, как цена повыбивает их стопы и развернется, мы, на этом развороте собираем сливки, правильно рассчитав экспирацию опционов, которыми торгуем -)
Варианты построения уровней поддержки и сопротивления
Существует два способа определить уровни поддержки и сопротивления, а именно графический и математический. Оба подхода имеют право на существование, а их уровни одинаково верны, поскольку этими методами пользуется широкая публика.
Графическое построение уровней
Выстроить уровни для торговли самостоятельно довольно просто — вам потребуется такой простой инструмент, как горизонтальные линии, который имеется в любом терминале МТ4.
Для того, чтобы с уверенностью провести линию и утверждать, что это уровень поддержки или сопротивления, вам необходимо найти как минимум несколько точек условного соприкосновения, когда цена неоднократно подходила к нему и отбивалась от него.
- Уровень поддержки – это уровень, который находится под ценой и выступает в качестве трамплина, от которого цена отбивается в сторону бычьего тренда. На графике определяется по нижним хвостикам и/или телам свечей;
- Уровень сопротивления – это уровень, который цена пытается преодолеть. Наносится на график по верхам свечей.
- При пробитии уровня поддержки ценой, он становится уровнем сопротивления. И наоборот.
Пример разметки уровней вручную, смотрим ниже (цифры показывают точки по которым проведены уровни):
Важно понимать, что каждый уровень имеет свой вес и силу. Это зависит от таймфрейма на котором отслеживаются уровни и от частоты его пробоя ценой.
И, чем чаще цена пыталась пробить уровень, но не смогла (больше точек, на основе которых происходит построение), тем он становится сильнее.
Математическое построение уровней
Под математическим подходом построение уровней подразумевается использование технических индикаторов.
Как правило, уровни строятся по двум методикам, а именно:
- Торговля по уровням Мюррея, собственно так и называется индикатор;
- Торговля от уровней по точкам Пивот.
Также существуют и авторские методики, но в любом случае в их основе лежит задача автоматизировать графический подход и избавить нас от рутины с разметкой.
Пример построения уровней индикатора Мюррея смотрим ниже:
Скачать индикатор Мюррея можно по этой ссылке. Научиться устанавливать индикаторы в терминал МТ4 можно из этой статьи.
Торговля по уровням на отбой или пробой
Существует только два варианта торговли по уровням, а именно:
- На отбой от уровня сопротивления/поддержки;
- На пробой уровня сопротивления/поддержки.
Пробои сильных уровней встречаются не так часто и бывают обманчивыми, но, если вы правильно определили пробой, то сможете очень неплохо заработать. Особенно, если в вашем арсенале имеются в наличие пробойные или канальные стратегии.
Отбой от уровня более частое явление. Однако не стоит загребать все уровни под одну гребенку. На практике, слабые уровни чаще всего пробиваются, а цена сквозь них проходит как нож сквозь масло.
От сильных уровней цена чаше всего отбивается, однако в определённый момент, на фоне экономических новостей, вы сможете наблюдать их прорыв, который в большинстве случаев, будет ложным.
Именно поэтому торговлю от уровней важно применять в комплексе с другими инструментами .
К примеру, для торговли опционами от уровней, отлично подходят такие осцилляторы, как Стохастик, который входит во многие стратегии, как например, эту. Или же индикатор RSI, который также является частым обитателем многих стратегий торговли бинарными опционами.
Стратегия торговли от уровней
В качестве примера предлагаю рассмотреть очень простую стратегию торговли опционами от уровней на основе стохастического осциллятора:
- Покупаем опцион на повышение, если цена приблизилась к уровню сверху вниз, а стохастический осциллятор находится в зоне перепроданности (от 0 до 20);
- Покупаем опцион на понижение, если цена приблизилась к уровню снизу вверх, а стохастический осциллятор находится в зоне перекупленности (от 80 до 100).
В заключение стоит отметить, что торговля по уровням поддержки/сопротивления является базой, которой должен владеть каждый трейдер на подсознательном уровне, ведь именно уровни позволяют увидеть дальнейший потенциал движения, его направление и самое главное — точки разворота.
https://www.mql5.com/ru/articles/3215
https://sergmedvedev.ru/binarnye-opciony/obuchenie-treiding/torgovlya-ot-urovnej/