Создание EA с помощью EA Builder Pro
Если вы пришли сюда, потому что начинаете создание торгового робота (EA), вы попали в нужное место! Этот учебник будет посвящён созданию EA с помощью EA Builder Pro. Вы можете создать наш пример EA, следуя нашим шагам, или принимать собственные решения, используя дополнительную информацию, предоставленную в этом учебнике.
Прежде чем начать
Заголовок раздела «Прежде чем начать»Этот учебник даёт пример создания продвинутого EA, и сам учебник может показаться довольно сложным.
Если вы хотите начать с EA лёгкой сложности, посмотрите наш YouTube-канал: Научитесь создавать торгового бота.
Если вы хотите начать с EA средней сложности (только MT5), хотим отметить, что один из наших давних пользователей, Raoul, написал блог о своём EA и о том, как он создал его с помощью нашего инструмента. Ознакомьтесь с блогом Raoul.
Как создать EA с помощью EA Builder Pro?
Заголовок раздела «Как создать EA с помощью EA Builder Pro?»Давайте начнём! В этом продвинутом учебнике мы создадим знаменитый EA ‘Cowabunga’. Этот EA будет использовать тренд на таймфрейме H4 (4 часа) в качестве фильтра, а затем искать возможности для открытия длинных или коротких позиций на таймфрейме M15.
Запишем входы/выходы, которые мы называем «Сигналами» как общий термин для набора условий входа и выхода.
-
Сигнал открытия покупки:
Фильтр для длинных позиций проверяет, направлен ли тренд вверх. Тренд направлен вверх, когда на таймфрейме H4:- 5-барная EMA находится выше 10-барной EMA
- RSI больше 50
- Стохастик движется вверх, но не в зоне перекупленности
Возможности входа для длинных позиций на таймфрейме M15:
- MACD пересекает значение 0 вверх или
- MACD отрицательный, но только начал расти
-
Сигнал открытия продажи:
Фильтр для коротких позиций проверяет, направлен ли тренд вниз. Тренд направлен вниз, когда на таймфрейме H4:- 5-барная EMA находится ниже 10-барной EMA
- RSI меньше 50
- Стохастик движется вниз, но не в зоне перепроданности
Условия входа для коротких позиций на таймфрейме M15:
- MACD пересекает значение 0 вниз или
- MACD положительный, но только начал снижаться
-
Стратегия закрытия (для покупки и продажи):
Мы установим ценовые уровни 50 и 00 в качестве целей наших сигналов выхода. Так, если цена при открытии ордера на покупку составляет 1.09887, то нашей целью будет 1.10000, что на 11,3 пипса выше. Однако, если цель находится менее чем в 5 пипсах, мы изменим тактику и установим выход на расстоянии от цены открытия ордера до Parabolic SAR. Так, если Parabolic SAR находится на 10 пипсов ниже цены открытия ордера, мы установим выход на 10 пипсов выше цены открытия ордера.
Мы также установим стоп-лосс на значение Parabolic SAR, когда SAR находится ниже цены открытия ордера.
Это довольно много! EA, который вы задумали, может быть менее сложным. На самом деле, 9 из 10 торговых стратегий менее сложны, чем стратегия Cowabunga. Однако мы хотели, чтобы этот учебник показал, что EA Builder Pro способен создавать продвинутые EA, и одновременно убедиться, что вы научитесь достаточному для самостоятельного создания продвинутых EA. Если вы только начали создавать EA и заметили в ходе этого учебника, что у вас есть вопросы и нужна дополнительная помощь, пожалуйста, оформите подписку и отправьте нам свои вопросы. Продолжим!
1. Начало работы
Заголовок раздела «1. Начало работы»Чтобы начать создание нашего первого Expert Advisor (EA) — торгового робота — нажмите синюю кнопку «Add Expert Advisor», которую можно найти в нашем веб-инструменте.
Выбор шаблона
Заголовок раздела «Выбор шаблона»Далее вам предложат выбрать шаблон для MT4 или MT5. Если вы не знаете, какой выбрать, прочитайте мой блог: MT4 или MT5, что лучше? Затем решите, хотите ли вы начать с рабочего примера, например «Moving average template», или с пустого EA. Поскольку мы будем создавать новый EA с нуля и проведём вас через все шаги, мы выберем «Empty template».
Название и создание
Заголовок раздела «Название и создание»Далее введите имя для вашего EA. Мы назовём наш EA «Cowabunga» и нажмём «Create EA».
Инструмент автоматически откроет ваш EA, разделённый на 4 основные части: Индикаторы, Сигналы, Стратегия и Управление капиталом. В следующей части этого учебника мы начнём с первого раздела: Индикаторы.
2. Индикаторы
Заголовок раздела «2. Индикаторы»Теперь добавим индикаторы к этому EA.
Чтобы добавить индикатор, нажмите «Add» в списке индикаторов.
Вам предложат выбрать из всех стандартных индикаторов MetaTrader, отсортированных по алфавиту. Если вы загрузили собственные пользовательские индикаторы, они также будут доступны в верхней части списка. Количество и разнообразие добавляемых индикаторов не ограничено.
Для нашего EA мы добавим индикатор «Moving Average». Фактически, мы добавим этот индикатор 2 раза. Помните нашу цель для EA, указанную в начале этого учебника?
Мы используем 2 разных варианта EMA.
Найдите индикатор «Moving Average» в списке:
После выбора индикатора вы увидите все его параметры. Эти параметры должны быть вам знакомы, поскольку они те же, что показываются в MetaTrader при добавлении индикатора на график. Значения, которые вы введёте здесь, будут использоваться вашим EA для каждого торгового решения, ссылающегося на этот индикатор.
Вот как мы настроили индикаторы (не упомянутые параметры сохраняют значения по умолчанию):
- Moving average: Имя ‘5 EMA’, Таймфрейм ‘PERIOD_H4’, Period ‘5’, Method ‘EMA’, Applied price ‘Close’
- Moving average: Имя ‘10 EMA’, Таймфрейм ‘PERIOD_H4’, Period ‘10’, Method ‘EMA’, Applied price ‘Close’
- Stochastic Oscillator: Имя ‘Stochastic’, Таймфрейм ‘PERIOD_H4’, K period ‘10’, D period ‘3’, Slowing ‘3’, Method: SMA, Price field: Low/ High, Mode: Main
- Relative Strength Index: Имя ‘RSI’, Таймфрейм ‘PERIOD_H4’, Period: 9, Apply to: Close
- MACD: Имя ‘MACD’, Fast EMA: 12, Slow EMA: 26, SMA: 9, Applied price: Close, Mode: Main
- Parabolic SAR: Имя ‘PSAR’, Step: 0.02, Maximum: 0.2
После настройки всех индикаторов у вас должен получиться список индикаторов, выглядящий так:
Мы добавили все индикаторы и теперь можем перейти к следующей части.
2b Пользовательские индикаторы
Заголовок раздела «2b Пользовательские индикаторы»Если вы хотите использовать пользовательские индикаторы, посмотрите наш обучающий видеоролик или прочитайте инструкцию: Пользовательские индикаторы.
3. Сигналы
Заголовок раздела «3. Сигналы»После добавления индикаторов в EA он ещё не будет открывать или закрывать ордера. Вы лишь сообщили EA об индикаторах (и их параметрах). Следующая задача — создать сигналы входа/выхода, состоящие из одного или нескольких условий, определяющих, когда EA будет открывать и закрывать ордера. Сначала выберите, какой сигнал создать первым. Мы настоятельно рекомендуем начать с создания сигнала «Open Buy» и создавать другие сигналы только после того, как убедитесь, что ордер на покупку открывается в правильный момент. Мы рекомендуем это, чтобы сложность создания и настройки сигналов оставалась минимальной, пока вы ещё учитесь. Мы сделаем именно так, поэтому начнём с создания сигнала входа Open Buy.
4 типа сигналов:
- Open Buy: когда этот сигнал активируется, ваш EA откроет (войдёт в) ордер на покупку.
- Open Sell: когда этот сигнал активируется, ваш EA откроет ордер на продажу.
- Close Buy: когда этот сигнал активируется, ваш EA закроет (выйдет из) ваш(и) ордер(а) на покупку, если только сигнал Open Buy не активен в тот же момент.
- Close Sell: когда этот сигнал активируется, ваш EA закроет ваш(и) ордер(а) на продажу, если только сигнал Open Sell не активен в тот же момент.
Чтобы создать сигнал Open Buy, нажмите «Open Buy» на главном экране EA.
Если вы выбрали «Empty template» в Части 1 (EA Builder Pro - Начало работы) этого учебника, вы увидите почти пустой экран. Это потому, что сигнал ещё без условий. Нам нужно добавить условия, формирующие сигнал, самостоятельно.
Вероятно, вы видите это:
Сигнал отображает заполнитель для ввода первого условия. Чтобы добавить больше условий, нажмите «значок меню», который выглядит как 3 тёмные точки, расположенные вертикально. После нажатия выберите «Add Condition», чтобы добавить условие. Повторите этот шаг ещё 3 раза, чтобы в сигнале было всего 4 условия, все одинаковые на вид.
Помните наш сигнал Open Buy со вводной страницы учебника? Перефразируем сигнал Open Buy:
- 5-барная EMA находится выше 10-барной EMA
- RSI выше 50
- Стохастик движется вверх, но не в зоне перекупленности
- MACD пересекает 0 вверх или
- MACD отрицательный, но только начал расти
Теперь настроим созданные условия так, чтобы они соответствовали описанию первой части сигнала Open Buy:
1. 5-барная EMA находится выше 10-барной EMA
Чтобы проверить, находится ли значение индикатора EMA 5 выше (>) значения индикатора EMA 10, мы сравним индикатор с другим индикатором, используя оператор «above» (>).
2. RSI выше 50
Чтобы проверить, находится ли значение индикатора RSI выше (>) 50, мы сравним индикатор со значением, используя оператор «above» (>). Чтобы выбрать «50», сначала нужно изменить правую часть условия на «Constant» вместо «Indicator» подробнее.
3. Стохастик движется вверх, но не в зоне перекупленности
Здесь нужно использовать 2 условия: одно для проверки, растёт ли индикатор, и одно для проверки, не находится ли индикатор в зоне перекупленности.
- Чтобы проверить, растёт ли индикатор Стохастик, нужно сравнить предыдущее значение индикатора с текущим. Когда значение увеличивается, он растёт. Итак, чтобы проверить, растёт ли линия, нужно проверить, что текущее значение (сдвиг 0) выше (>) предыдущего значения (сдвиг 1).
- Чтобы проверить, что индикатор Стохастик не находится в зоне перекупленности, нужно проверить, что значение индикатора ниже 80. Для этого используем оператор «Below» (<).
4. MACD пересекает 0 вверх или
MACD отрицательный, но только начал расти
Теперь добавим ещё одно (5-е) условие к нашему сигналу, но выберем «Group» и укажем «Any». Используя меню новой группы «Any», добавим ещё одно условие и ещё одну (вторую) группу.
Для второй группы выберем «All». Используя меню второй группы, добавим 3 условия. Отлично! Вы уже освоились!
Итак, в первой группе 2 условия, но только одно должно быть истинным, поэтому мы использовали «Any» для первой группы. Вторая группа содержит 3 условия.
Однако для второй группы мы используем оператор «All», чтобы сообщить EA, что все условия должны быть выполнены.
Мы создали первый сигнал. Теперь пришло время протестировать сигнал:
- Экспортировать EA.
- Поместить EA в папку «Experts» (в MT5 это происходит автоматически при двойном клике по скачанному файлу, для MT4 сделайте это вручную).
- Запустить EA в тестере MetaTrader в «Visual mode».
- Убедиться, что ордер на покупку был открыт в правильный момент.
Теперь, когда первый сигнал работает, создадим остальные сигналы:
Open Sell
Close Buy
Помните, я говорил на начальной странице этого учебника, что он будет продвинутым? Вот, начинается.
Если вы скоро почувствуете себя перегруженным — не волнуйтесь: попробуйте сначала, отдохните, если это поможет, и вернитесь позже. Это учебный опыт, который принесёт результаты в долгосрочной перспективе.
Повторим стратегию закрытия:
Мы будем нацеливаться на ценовые уровни 50 и 00, но только если следующий уровень находится на расстоянии более 5 пипсов. В противном случае мы установим цель на расстояние до значения Parabolic SAR. Мы также установим стоп-лосс, для чего позже в этом учебнике используем модуль стоп-лосса.
Итак, как мы всё это сделаем? Мы знаем, что наш сигнал закрытия будет состоять из 2 условий:
- Расстояние до следующего ценового уровня должно быть более 5 пипсов.
- Цена должна быть выше цены открытия + расстояние до следующего ценового уровня.
1. Расстояние до следующего ценового уровня должно быть более 5 пипсов
Чтобы узнать, как далеко находится следующий ценовой уровень, нужно вычислить остаток от деления цены открытия ордера на расстояние ценового уровня (50 пипсов). При использовании арифметических операторов в нашем веб-инструменте выберите оператор «%» (модуло) для вычисления остатка от деления. Итак, когда мы вычисляем: 1.09887 (цена открытия) % 0.00500, остаток равен 0.00387 (38,7 пипсов). Если мы можем создать условие, проверяющее, что остаток меньше 45 пипсов, мы знаем, что расстояние до следующего ценового уровня более 5 пипсов.
Создадим первое условие:
Close Buy
2. Цена должна быть выше цены открытия + расстояние до следующего ценового уровня.
Поскольку первое условие установлено, второе условие будет оцениваться только если расстояние до следующего ценового уровня более 5 пипсов.
Второе условие проверит, прошла ли текущая цена следующий ценовой уровень. Для этого нужно проверить, находится ли цена выше цены открытия ордера + расстояние до следующего ценового уровня. Расстояние до следующего ценового уровня вычисляется вычитанием остатка из 50 пипсов. Итак, расчёт: 50 пипсов - (цена открытия % 50 пипсов) = количество пипсов до следующего ценового уровня. Мы закрываем ордер на покупку, если цена Bid выше цены открытия + (50 пипсов - (цена открытия % 50 пипсов)).
В нашем примере это 1.09887 + (0.00500 - (1.09887 % 0.00500)) = 1.01000. Если цена вырастет на 11,3 пипса, ордер будет закрыт. Вот условие для проверки, что Bid выше (>) цены открытия + (50 пипсов - (цена открытия % 50 пипсов)), в сочетании с первым условием закрытия:
Слова поддержки ВАУ! Вы создали сигнал Close Buy! Подождите… вы ещё здесь? Не беспокойтесь, если вы всё ещё делаете расчёты на бумаге, чтобы проверить всё это и попытаться понять. Также не стесняйтесь делать перерывы при создании EA — это требует практики и часто похоже на головоломку, но вы будете становиться лучше, и не успеете оглянуться, как будете создавать любой EA, который можете себе представить!
Close Sell Вот сигнал закрытия для ордеров на продажу. По сути, это тот же сигнал, что и для закрытия ордеров на покупку, но противоположный.
Если вы хотите узнать больше о сигналах и их возможностях, ознакомьтесь с подробной документацией по сигналам. Вы создали сигналы Open и Close для EA, что означает, что ваш EA уже будет торговать автоматически. Однако это ещё не всё. Существует множество способов изменить поведение вашего EA. Это так называемые «Модули», которые мы также будем использовать для нашего EA.
4. Модули
Заголовок раздела «4. Модули»После добавления сигналов ваш EA теперь будет открывать и закрывать ордера. Осталось две задачи: установить альтернативный тейк-профит на PSAR, если цель находится менее чем в 5 пипсах, и установить стоп-лосс на значение PSAR. Для этого нужно добавить модули Take profit - Conditional (Pro) и Stop loss - Conditional (Pro) дважды — один раз для покупки и один для продажи. В итоге у нас будет 4 модуля закрытия: 2 для тейк-профита и 2 для стоп-лосса.
Чтобы добавить модуль Take profit - Conditional (Pro), нажмите «Add» в разделе Strategy на главном экране EA.
Теперь вы увидите список всех модулей, которые можно добавить в EA. Мы добавим модуль Take profit - Conditional (Pro), один из самых продвинутых модулей. После нажатия Add вы увидите список модулей:
Теперь нужно ввести параметры модуля. Сначала введём имя и другие основные настройки:
- Имя: Buy TP
- Включён для: Is Enabled For Buy Order (чтобы включить этот модуль только для ордеров на покупку)
Затем определим предварительное условие — условие, которое должно быть выполнено перед установкой TP. Поскольку мы хотим, чтобы тейк-профит устанавливался только когда разница между ценой открытия ордера и целью составляет менее 5 пипсов, мы применим ту же логику, что и на предыдущей странице учебника. Кроме того, мы установим TP на значение PSAR только если PSAR находится ниже текущей цены, то есть направление цены — вверх. Итак, если цена растёт, мы проверим, больше ли остаток от деления цены открытия на 50 пипсов, чем 45 пипсов:
Далее установим значение тейк-профита как цену открытия ордера + расстояние до PSAR:
Мы не будем вводить условие для удаления тейк-профита, поэтому оставим последнее условие пустым. Однако установим последние значения:
- Trail distance (pips): 0
- Trail step size: 0
- Close percentage: 100
Также добавим такой же модуль Take profit - Conditional (Pro) для ордеров на продажу. Вот как мы его настроили:
Теперь добавим модули стоп-лосса, которые проще настроить, так как у них простое предварительное условие: мы просто всегда устанавливаем значение стоп-лосса как цену ордера минус PSAR, если PSAR находится выше текущей цены. Итак, предварительное условие (для покупки) — PSAR находится выше текущей цены. Начальное значение — значение PSAR.
Для продажи предварительное условие противоположное, но всё остальное то же:
Если вы хотите узнать больше о модулях и их возможностях, ознакомьтесь с подробной документацией по модулям. Вы будете удивлены гибкостью, которую можно создать с помощью модулей. Для примера посмотрите этот блог: Как установить стоп-лосс на основе индикатора ATR?
5. Итоги
Заголовок раздела «5. Итоги»Вы завершили создание своего первого полностью рабочего EA!
Теперь вы можете экспортировать EA и использовать его в MetaTrader. Если вам нужны подробные инструкции, посмотрите наш учебник о том, как запустить свой первый EA.
Рекомендуем следующие шаги:
- Протестируйте EA в MetaTrader, запустив бэктест. Обязательно включите «Visual mode», чтобы визуально подтвердить, что ордера открываются и закрываются в ожидаемые моменты. Если у вас есть сомнения, не допустили ли вы ошибок при следовании этому учебнику, вы можете сравнить свой EA с шаблоном EA «Tutorial - Cowabunga», который можно выбрать при добавлении нового EA в ваш аккаунт.
- Если вам нужна дополнительная помощь в настройке EA, пожалуйста, оформите подписку и свяжитесь с нами со своими вопросами. Мы ответим и предоставим примеры, пока вы не достигнете своей цели.
- Настройте EA, улучшив входные значения. Если вы используете бесплатную версию EA Builder Pro, вы можете изменить настройки в EA Builder Pro. Если вы подписчик, вы можете (автоматически) оптимизировать входные данные в MetaTrader.
- Когда вы считаете, что у вас хорошо работающий EA и хотите использовать его в реальной торговле, запустите EA на демо-счёте, пока вы не будете уверены, что EA работает как ожидается. Мы настоятельно рекомендуем запускать EA на VPS (подробнее).
- Запускайте EA на демо-счёте достаточно долго. Имейте в виду, что запуск EA около недели, как правило, не считается достаточным сроком. Лично мы проверяем не менее 200 ордеров вручную и запускаем EA как минимум 3 месяца на демо-счёте перед переходом на реальный счёт. Обратите внимание, что мы не имеем права давать финансовые рекомендации. Решение о переводе EA на реальный счёт (и на основании какой информации) — это ваша ответственность.
Благодарим вас за то, что прошли этот учебник до конца, и надеемся продолжать видеть вас! Более 50 000 трейдеров были здесь до вас. Более 2 миллионов тестов было выполнено с помощью нашего онлайн-бэктестера!