Доброго дня, уважаемые трейдеры!
Представляю вашему вниманию советник, реализующий торговую систему, основанную на графической ценовой модели “Pattern-123”
- Вступление
- Описание Паттерна-123 и принципы работы советника
- Разворотные ордера для компенсации убытков
- Дополнительные возможности
- Как я торгую с помощью советника Pattern-123 ( + пример реальных торгов)
- Полное описание параметров советника
Паттерн-123 давно известен и популярен у трейдеров – это разворотный паттерн, который сигнализирует о возможном окончании и развороте тренда.
Еще в 2016 году я написал индикатор, распознающий паттерны-123 на графике. Разработка получилась очень удачной. Удобное визуальное отображение паттернов, отсутствие запаздывания (главный недостаток большинства индикаторов) и перерисовок сделали индикатор довольно популярным у трейдеров.
И сразу же после публикации индикатора посыпалась масса заявок с просьбой автоматизировать торговлю по Паттерну-123.
Хоть я и противник полностью автоматических советников и считаю, что робот не может торговать лучше человека. Однако мне самому был нужен робот-помощник, который мог бы отслеживать сигнал и открывать сделки в мое отсутствие.
Разработка советника оказалась непростой и затянулась на пару лет - тестовый демо-счет с роботом был запущен только в январе 2019 года
Девять месяцев тестирования советника показали, что форекс-инструменты – это не лучший выбор:
Как видно, из всех тестируемых инструментов, советник показывает хорошие результаты только на золоте. Хотя в будущем я планирую провести тестирование на индексах, CFD и крипте.
На данный момент робот торгует на реальном счете, под контролем, в полуавтоматическом режиме.
Описание Паттерна-123 и принципы работы советника
Ценовая модель "Паттерн-123" является одним из самых простых и надежных паттернов графического анализа, который указывает на разворот рынка. Пожалуй, это самая важная информация для трейдера – знать, где заканчивается один тренд и начинается противоположный.
Паттерн-123 основывается на трёх точках (рассмотрим пример Паттерна-123 вверх):
- Первая точка – это минимум нисходящей тенденции;
- Вторая формируется в момент отката от нисходящего тренда. В этот момент мы еще не знаем, что будет, разворот наверх или откат продолжение движения вниз;
- Третья точка появляется в момент, когда цена снова разворачивается вверх, не пробивая уровень точки #1.
Когда формируется Паттерн-123, советник устанавливает отложенный стоп-ордер на пробой точки #2.
Если цена пробьёт уровень точки #2 – отработка паттерна- отложенный ордер превращается в рыночный.
Если цена не дойдет до точки #2, а уйдет за уровень точки #1 – отмена паттерна – советник удалит ордер.
StopLoss может устанавливаться за уровнем точки #1 или #3 или задаваться фиксированным значением (параметр “Method of calculating the Stop Loss (from point 1/3 or fixed)”)
TakeProfit устанавливается на уровне Фибо или задается фиксированным значением (параметр “Take Profit for 1st order (Fixed, Fibo enum or Fibo manually)”) – так задается TakeProfit 1-го ордера (могут быть и другие, т.н. разворотные ордера – они имеют свой TP, но о них позднее).
Для определения точек 1,2,3 индикатор и советник используют Зигзаг собственной разработки, который максимально приближен к стандартному зигзагу, но, в отличие от него, не перерисовывается.
Разворотные ордера для компенсации убытков
Для увеличения прибыльности в советнике предусмотрена возможность установки противоположных отложенных ордеров на уровне срабатывания стоп-лосса текущей сделки (Stop’n’Reverse-ордера).
При этом советник может увеличивать лотность SnR-ордеров на коэффициент мартингейла (параметр “Coeff. of Martingale”). Когда открывается рыночная сделка, на уровне ее стопа устанавливается встречный отложенный SnR-ордер с увеличенным лотом.
Стоп SnR-ордера ставится на уровне открытия предыдущей сделки.
Тейк SnR-ордера выставляется на некоторое количество пунктов больше уровня безубыточности (задается параметром “TP for next SnR-orders - distance from BreakEven level”).
При срабатывании стоп-лосса рыночной сделки открывается встречный SnR-ордер, а на месте закрытой убыточной сделки ставится новый SnR-ордер с увеличенным лотом.
При закрытии сделки в прибыли, коэффициент увеличения сбрасывается в 1.
Количество возможных разворотных SnR-ордеров задается параметром “Number of allowed SnR-orders in the set (including 1st order)”. Если этот параметр меньше или равен 1 - разворотные ордера не используются.
Внимание! Использование разворотных ордеров с увеличенным лотом является торговлей с повышенным риском. Соблюдайте принципы управления капиталом (Money Management).
Настоятельно рекомендуется использовать разворотные ордера только на очень волатильных инструментах (например на золоте).
Все ордера – 1-й ордер (по сигналу индикатора) и последующие разворотные ордера – составляют один сет.
Советник различает Buy-сет (1-й ордер в сете BuyStop) и Sell-сет (1-й ордер SellStop) по Magic-номерам и обрабатывает Buy- и Sell-сеты раздельно.
При запуске, советник ищет свои ордера по символу и по двум Magic-номерам и включает их в работу. О всех своих действиях советник сообщает на вкладке Эксперты.
Дополнительные возможности
- В советнике предусмотрена возможность задать разрешенный период времени для торгов. Однако сигналы вне торгового времени все равно учитываются советником. И если на начало торгового периода эти сигналы не были отработаны или отменены, то советник установит отложенный ордер на пробой точки #2, сформированной до начала торгов.
Эта особенность советника позволяет использовать его даже для пробоя утреннего флета. Установите время начала торгового периода на начало европейской сессии, и советник установит в это время отложенные ордера на покупку/продажу, конечно если за период утреннего флета сформируются Паттерны-123. - В советнике предусмотрена возможность трейлинга прибыльной позиции. Трейлинг работает только для 1-го ордера (параметр "Trailing Stop - coeff.of TakeProfit").
- Советник автоматически распознает 5-ти и 4-х значные котировки. Нужно задавать параметры в 4-х значном формате, а советник сам пересчитает.
Как я торгую с помощью советника Pattern-123 ( + пример реальных торгов):
Хотя советник может работать как полный автомат, но сам я не использую его в полностью автоматическом режиме - только как советник-помощник, для установки ордеров по сигналам в заданное время.
Каждый торговый день я начинаю с разметки значимых уровней на таймфреймах H1-H4, от которых цена отталкивалась в прошлом.
Если в текущем моменте цена подходит к одному из уровней, то я запускаю советник для поиска сигналов.
Торговое время - Европейская и Американская сессии (настраивается в советнике).
Я стараюсь всегда сопровождать сделку. Если вижу, что тенденция разворачивается, то могу сократить убытки, уменьшив стоп-лосс вручную.
Вот пример сегодняшней сделки:
Увидев такой отскок от уровня 1500, я запустил советник на поиск Паттерна-123 вверх с целью до следующего уровня на Н1, который совпал с Фибо-уровнем 262%.
Итог вы видите на следующем рисунке.
Если сегодня сделка принесла прибыль, то больше не торгую в этот день (настраивается в советнике)
В конце поста вы найдете два сета:
- Сет “EA_123_Pattern_v1.0_XAUUSD_M5_manual_GMT3_0.01.set” я использую для своей ручной торговли.
Пожалуйста, не ставьте этот сет на автоматическую торговлю – он убыточен на полном автомате.
- Если у вас нет возможности торговать вручную, то я могу предложить вам сет “EA_123_Pattern_v1.0_XAUUSD_M5_auto_GMT3_0.01.set” для полностью автоматической торговли.
Это очень консервативный сет – без использования разворотных ордеров.
Тестирование проводилось за 2 года 9 месяцев на таймфрейме M5
Оптимизация: весь 2017 год + Форвард-тест: с 2018.01.01 по 2019.09.18
Достоинства:
- Среднегодовой доход – более 100%
- Может использоваться совсем небольшой депозит – от 100$ на 0.01 лот. При этом максимальная просадка менее 50$ в течение всего времени тестирования
- Не требует Вашего присутствия у компьютера (но уверен, что сопровождение сделок сможет увеличить Вашу прибыль)
Недостатки: отсутствие прибыльности в течение 9 месяцев (с 2017.05 по 2018.02)
Настройка торгового времени в обоих сетах GMT+3
Полное описание параметров советника:
Название параметра | Соответствующее имя переменной в советнике | Описание |
---|---|---|
EA Info | EA_Info | Наименование set-файла с настройками. Включает в себя версию советника, символ инструмента, таймфрейм, имя оптимизатора и дату создания сета. Заполняется оптимизатором. |
Magic Number (reserve the next number too) | Magic | Магик-номер. Советник определяет свои ордера по символу инструмента и Магику. Советник использует два Магика: заданный этим параметром (для Buy-сетов) и на единицу больше (для Sell-сетов). Если вы ставите несколько экземпляров советника на один инструмент, но на разные таймфреймы, то вы должны увеличить/уменьшить этот номер по крайней мере на 2 |
If have a profit today - no more trading today | NoTradeIfProfit | Если сегодня получена прибыль - больше не торговать сегодня. Опция полезна для внутридневной торговли. Может быть: “Disable” – отключена (открываем сделку на всех сигналах); “We don't trade today if there is a profit today” - Не торгуем сегодня если есть прибыль сегодня. Прибыль/убыток прошлых дней не учитывается; “We don't trade today if there is a profit and a maximum Balance” - Не торгуем сегодня, если есть профит и баланс максимальный (например, если вчера был убыток, будем торговать на всех сигналах, пока баланс не достигнет максимума) |
Disable open the 1st order after this date | FinalGridDate | После этой даты новые ордера не устанавливаются. При этом существующие рыночные и отложенные ордера советник обрабатывает как обычно. Параметр необходим для корректного завершения тестирования, без убытка от принудительно закрытых тестером сделок. Установите эту дату примерно на 1-2 дня раньше даты окончания тестирования, чтобы советник успел корректно закрыть существующие ордера |
--- Trading settings --- | ||
Fixed Lot of the 1st order | Lot | фиксированный лот для первого ордера в сете |
Risk, % of Free Margin (from 0 to 100%), if =0 - use Fixed Lot | Risk | Расчет размера лота в процентах от свободных средств. Зависит также от величины стоп-лосса. Если Risk=0 – используется фиксированный лот из предыдущей переменной |
----- SL options ----- | ||
Method of calculating the Stop Loss (from point 1/3 or fixed) | StopLossCalc | метод вычисления уровня стоп-лосса. Стоп может ставиться под точкой 1 или точкой 3. Если StopLossCalc = “Fixed value” - используется фиксированное значение стопа из следующей переменной. Если вы выбрали стоп под точкой 3, то при установке отложенного ордера советник сначала все равно ставит стоп под точку 1, потому что точка 3 может еще сместиться. Когда отложенный ордер сработает и превратится в рыночный – точка 3 зафиксирована – тогда советник передвигает уровень стопа под точку 3. |
Fixed Stop Loss (4 sign) | StopLoss | Фиксированный стоп-лосс в в 4-х значных пипсах. Используется когда StopLossCalc = “Fixed value”. Если при этом StopLoss=0 - стоп-лосс не ставится |
Maximum StopLoss (4 sign, =0 -disabled) / Minimum StopLoss (4 sign, =0 -disabled) | MaxStopLoss / MinStopLoss | фильтр сигналов по максимальному и минимальному значению стоп-лосса (в пп. 4-х знак). Используется, когда размер стоп-лосса НЕфиксированный – т.е. определяется расстоянием между точкой 1 и точкой 2 (или между точкой 3 и точкой 2 – в зависимости от параметра “Method of calculating the Stop Loss”). Если это расстояние больше "Maximum StopLoss" или меньше "Minimum StopLoss" - сигнал пропускается. Если параметр =0 – фильтр не используется. Если стоп-лосс фиксированный (StopLossCalc = “Fixed value”) - фильтр также не используется |
----- TP and Trail options ----- | ||
Take Profit for 1st order (Fixed, Fibo enum or Fibo manually) | ProfitFiboEnum | Уровень тейк-профита 1-го ордера. Может задаваться в % Фибо от расстояния между точками 1 и 2, либо фиксированным значением в пипсах. В большинстве случаев достаточно выбрать число Фибо из выпадающего списка, но вы можете задать его вручную. Если ProfitFiboEnum = “Fibo manually” - число Фибо задается вручную в переменной “Take Profit if Fibo manually (must be more than 100%)”. Если ProfitFiboEnum = “Fixed value” - используется фиксированное значение тейка из переменной “Take Profit if Fixed value (pips, 4 sign)”. |
Take Profit if Fixed value (pips, 4 sign) | TakeProfit | Фиксированный тейк-профит в в 4-х значных пипсах. Используется когда ProfitFiboEnum = “Fixed value”. Если при этом TakeProfit =0 - тейк не ставится |
Take Profit if Fibo manually (must be more than 100%) | ProfitFiboManual | Поле для задания числа Фибо вручную (в %). Используется когда ProfitFiboEnum = “ Fibo manually ”. Обратите внимание - число Фибо, задающее ТейкПрофит вручную, должно быть больше 100%, иначе невозможно корректно рассчитать уровень TakeProfit. В этом случае советник будет использовать фиксированное значение из поля "Take Profit if Fixed value (pips, 4 sign)" |
TrailingStop - coeff.of TakeProfit: from 0.1 to 0.9, if =0 -disabled | TrailStopRatio | Трейлинг-стоп. Ставится только для 1-го ордера. Размер трейлинг-стопа рассчитывается как отношение размера тейк-профита (от 0.1 до 0.9, если = 0 - отключено). Если цена уйдет на расстояние больше чем TrailingStop от уровня открытия, тогда стоп переносится сначала в безубыток, а потом тралится при дальнейшем продвижении цены. |
----- Reversal settings ----- | ||
Number of allowed SnR-orders in the set (including 1st order) | SnRnumber | максимальное количество разворотных ордеров в сете, включая 1-й ордер. Минимальное значение =1 Т.к. разворотный ордер ставится на уровне стоп-лосса текущей рыночной сделки, то при осутствии стоп-лосса (StopLossCalc = “Fixed value” и StopLoss=0) установка разворотных ордеров отключается. |
Coeff. of Martingale (if <=1 - disabled) | Martingale | коэффициент Мартингейла, на который умножается лот для последующих ордеров в сете. Если меньше или равен 1, то лот всех ордеров в сете равен лоту 1-го ордера |
TP for next SnR-orders - distance from BreakEven level (4 sign) | NextTPfromBE | тейкпрофит последующих разворотных ордеров в сете. Сначала рассчитывается суммарный уровень безубыточности всех предыдущих ордеров в сете, которые закрылись по стоплоссу. К этому уровню прибавляется количество пунктов из этой строки (в 4-х значных пипсах) |
----- Time settings ----- | ||
Hour and Minutes to start of trading / Hour and Minutes to end of trading | HourBegin, MinutesBegin HourEnd, MinutesEnd | время начала и конца торгового периода. Параметры только для 1-го ордера. Сигналы вне этого торгового периода пропускаются. Если все параметры =0 – торговля ведется круглосуточно. Полезно применять для торговли на мелких таймфреймах, задавая период Европейской и Американской сессий. Хотя вне торгового времени 1-й ордер не устанавливается, но сигнал индикатора остается действительным до его отмены, и в начале торгового времени советник установит 1-й ордер, если сигнал не отработался или не отменен. |
Start trading/ End trading color | clTradeBegin, clTradeEnd | цвет вертикальных линий, указывающих начало и конец торгового времени (не отображаются при круглосуточной торговле) |
----- Indicator settings ----- | ||
Depth of ZigZag | ExtDepth | кол-во баров для поиска вершин Зигзага (аналог параметра "Depth" стандартного Зигзага) |
Drawing enable | DrawingEnable | визуализация работы советника – рисует зигзаг и уровни аналогично индикатору Pattern 123 |
ZigZag Color / ZigZag Width | ColorZZ, WidthZZ | параметры линии зигзага: цвет/ширина |
Color to BUY / Color to SELL | UPColor, DNColor | цвета Buy/Sell уровней |
Points size | PointsSize | размер точек 1,2,3 |
Еще раз ссылка на страницу с советником "EA Pattern-123": https://www.mql5.com/ru/market/product/41710