Price Action. Автоматизация торговли по внутреннему бару

Введение

Каждый, кто изучает рынок Forex, рано или поздно сталкивается с Price Action. Это не просто методика чтения графиков, это целая система определения возможного направления движения цены. В данной статье мы детально рассмотрим паттерн «внутренний бар» и создадим эксперта, который будет отслеживать данный паттерн и на его основании принимать торговые решения.

Коротко о Price Action

Что же такое Price Action? Это безындикаторный метод определения движения цены. Определение происходит за счет образовавшихся сложных и простых паттернов, а также построения вспомогательных графических элементов на графике (горизонтальные, вертикальные и трендовые линии, уровни Фибоначчи, уровни поддержки/сопротивления и так далее).

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

Внутренний бар

Внутренний бар (Inside Bar) — это бар, тело и тень которого находятся полностью в диапазоне предыдущего (определяющего) бара. Максимум внутреннего бара находится ниже максимума, а минимум — выше минимума определяющего бара. Определяющий бар также часто называют измерительным. В качестве паттерна и потенциального сигнала для входа рассматривают внутренний бар вместе с определяющим.

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

MT4

MT4

Правила внутреннего бара:

*    Работать с паттерном «внутренний бар» следует на старших временных графиках: H4, D1.
*    Паттерн может быть как разворотным, так и продолжением тренда.
*    Для более точного входа следует применять дополнительные элементы графического анализа: трендовые линии, уровни поддержки/сопротивления, уровни Фибоначчи, другие паттерны Price Action и так далее.
*    Во избежание преждевременного или ложного входа в рынок необходимо использовать отложенные ордера.
*    Внутренние бары, повторяющиеся во флэте, не стоит использовать в качестве сигнала к входу в рынок.

MT4

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

Определение точек входа, установка стоп-приказов

Мы нашли на графике (рис. 3) качественный внутренний бар. Как же следует входить в рынок и где выставлять стоп-приказы? Рассмотрим рисунок 4.

MT4

Рассмотрим правила входа и установки стоп-приказов на примере выше:

1.    Выставляем отложенный ордер Buy Stop по цене чуть выше цены High (на несколько пунктов, для подтверждения) определяющего бара.
2.    Уровень Stop Loss устанавливаем ниже уровня поддержки и ниже цены Low определяющего бара. Это дает нам дополнительную защиту в случае срабатывания отложенного ордера и разворота, когда цена может вновь отскочить от уровня поддержки и возобновить движение в нужном направлении.
3.    Уровень Take Profit устанавливаем, не доходя до ближайшего уровня сопротивления.

Мы также помним, что внутренний бар может быть предвестником как разворота, так и продолжения тренда. Следовательно, имеет смысл устанавливать Sell Stop ордер.

MT4

Рассмотрим правила входа и установки стоп-приказов на примере выше:

1.    Выставляем отложенный ордер Sell Stop по цене чуть ниже цены Low (на несколько пунктов, для подтверждения) определяющего бара.
2.    Уровень Stop Loss устанавливаем выше цены High определяющего бара.
3.    Уровень Take Profit устанавливаем, не доходя до ближайшего уровня поддержки.

Создание советника для торговли по внутреннему бару

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

Далее мы постараемся реализовать алгоритмы советника и автоматизировать торговлю по внутреннему бару.

Открываем MetaEditor из терминала MetaTrader 4 и создаем нового советника (на данном моменте останавливаться подробнее не буду, так как на сайте достаточно литературы по созданию советников). На этапе создания оставляем все параметры пустыми. Назвать их можно как угодно. В итоге должно получиться следующее:

Перенос конструкции графической модели в алгоритмы MQL4

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

В качестве примера мы рассмотрим одну конструкцию внутреннего бара, когда определяющий бар медвежий (бар 2), а внутренний бар бычий (бар 1). Для этого напишем несколько условий в теле функции OnTick():

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

В результате мы получаем следующий код:

Определение уровней стоп-приказов

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

В теле функции OnTick() пишем следующий код:

Работа над ошибками исполнения

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

В результате всех действий получаем следующий код:

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

Тестирование советника

Проверяем советника на работоспособность и отсутствие ошибок. Запускаем тестер стратегий и устанавливаем входные параметры. Я установил следующие:

MT4
1.    Выбираем валютную пару для тестирования. Я выбрал CADJPY.
2.    Обязательно выбираем модель тестирования «Все тики», а также указываем, что тестирование будем проводить на исторических данных. Я выбрал за весь 2014 год.
3.    Указывам период D1.
4.    Запускаем тестирование.
5.    После завершения тестирования проверяем журнал. В результате мы видим, что при тестировании не возникало ошибок исполнения.

Вот пример журнала после тестирования:

MT4

Убедившись в отсутствии ошибок, проводим оптимизацию советника.

Оптимизация

Для оптимизации советника я выбрал следующие параметры:

MT-4

MT-4

В результате оптимизации и тестирования мы получаем вполне рабочего робота.

Результаты оптимизации и тестирования

MT-4

MT-4

Заключение

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

Спасибо за внимание, надеюсь, статья оказалась полезной

Прикрепленные файлы | Загрузить ZIP
insidebar.mq4 (19.53 KB)

Источник: https://www.mql5.com/ru/articles/1771?utm_campaign=MetaEditor+5&utm_medium=special&utm_source=mt5editor+article

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *