Перейти к содержимому

Создание EA с помощью EA Builder Pro

Последнее обновление: 27 апреля 2023

Если вы пришли сюда, потому что начинаете создание торгового робота (EA), вы попали в нужное место! Этот учебник будет посвящён созданию EA с помощью EA Builder Pro. Вы можете создать наш пример EA, следуя нашим шагам, или принимать собственные решения, используя дополнительную информацию, предоставленную в этом учебнике.

Этот учебник даёт пример создания продвинутого EA, и сам учебник может показаться довольно сложным.
Если вы хотите начать с EA лёгкой сложности, посмотрите наш YouTube-канал: Научитесь создавать торгового бота.
Если вы хотите начать с EA средней сложности (только MT5), хотим отметить, что один из наших давних пользователей, Raoul, написал блог о своём EA и о том, как он создал его с помощью нашего инструмента. Ознакомьтесь с блогом Raoul.

Давайте начнём! В этом продвинутом учебнике мы создадим знаменитый EA ‘Cowabunga’. Этот EA будет использовать тренд на таймфрейме H4 (4 часа) в качестве фильтра, а затем искать возможности для открытия длинных или коротких позиций на таймфрейме M15.


Запишем входы/выходы, которые мы называем «Сигналами» как общий термин для набора условий входа и выхода.


  • Сигнал открытия покупки:
    Фильтр для длинных позиций проверяет, направлен ли тренд вверх. Тренд направлен вверх, когда на таймфрейме H4:

    1. 5-барная EMA находится выше 10-барной EMA
    2. RSI больше 50
    3. Стохастик движется вверх, но не в зоне перекупленности

    Возможности входа для длинных позиций на таймфрейме M15:

    1. MACD пересекает значение 0 вверх или
    2. MACD отрицательный, но только начал расти
  • Сигнал открытия продажи:
    Фильтр для коротких позиций проверяет, направлен ли тренд вниз. Тренд направлен вниз, когда на таймфрейме H4:

    1. 5-барная EMA находится ниже 10-барной EMA
    2. RSI меньше 50
    3. Стохастик движется вниз, но не в зоне перепроданности

    Условия входа для коротких позиций на таймфрейме M15:

    1. MACD пересекает значение 0 вниз или
    2. 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 и заметили в ходе этого учебника, что у вас есть вопросы и нужна дополнительная помощь, пожалуйста, оформите подписку и отправьте нам свои вопросы. Продолжим!

Чтобы начать создание нашего первого Expert Advisor (EA) — торгового робота — нажмите синюю кнопку «Add Expert Advisor», которую можно найти в нашем веб-инструменте.

нажмите добавить Expert Advisor
Нажмите кнопку, чтобы добавить новый EA в ваш аккаунт.

Далее вам предложат выбрать шаблон для MT4 или MT5. Если вы не знаете, какой выбрать, прочитайте мой блог: MT4 или MT5, что лучше? Затем решите, хотите ли вы начать с рабочего примера, например «Moving average template», или с пустого EA. Поскольку мы будем создавать новый EA с нуля и проведём вас через все шаги, мы выберем «Empty template».

Далее введите имя для вашего EA. Мы назовём наш EA «Cowabunga» и нажмём «Create EA».

назовите и создайте ваш EA
Введите имя и нажмите Add Expert Advisor.

Инструмент автоматически откроет ваш EA, разделённый на 4 основные части: Индикаторы, Сигналы, Стратегия и Управление капиталом. В следующей части этого учебника мы начнём с первого раздела: Индикаторы.

Теперь добавим индикаторы к этому EA.

Чтобы добавить индикатор, нажмите «Add» в списке индикаторов.

нажмите добавить индикатор
Нажмите кнопку 'Add', чтобы добавить индикатор в ваш EA.

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

Для нашего EA мы добавим индикатор «Moving Average». Фактически, мы добавим этот индикатор 2 раза. Помните нашу цель для EA, указанную в начале этого учебника? Мы используем 2 разных варианта EMA.
Найдите индикатор «Moving Average» в списке:

добавить индикатор MA
Добавьте стандартный индикатор 'Moving Average' из списка в этот EA.

После выбора индикатора вы увидите все его параметры. Эти параметры должны быть вам знакомы, поскольку они те же, что показываются в 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

После настройки всех индикаторов у вас должен получиться список индикаторов, выглядящий так:

список индикаторов
Все 6 индикаторов, используемых этим EA.

Мы добавили все индикаторы и теперь можем перейти к следующей части.

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

После добавления индикаторов в 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.

открытие покупки
Нажмите на сигнал 'Open Buy' вашего EA.

Если вы выбрали «Empty template» в Части 1 (EA Builder Pro - Начало работы) этого учебника, вы увидите почти пустой экран. Это потому, что сигнал ещё без условий. Нам нужно добавить условия, формирующие сигнал, самостоятельно.

Вероятно, вы видите это:

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

Сигнал отображает заполнитель для ввода первого условия. Чтобы добавить больше условий, нажмите «значок меню», который выглядит как 3 тёмные точки, расположенные вертикально. После нажатия выберите «Add Condition», чтобы добавить условие. Повторите этот шаг ещё 3 раза, чтобы в сигнале было всего 4 условия, все одинаковые на вид.

Помните наш сигнал Open Buy со вводной страницы учебника? Перефразируем сигнал Open Buy:

  1. 5-барная EMA находится выше 10-барной EMA
  2. RSI выше 50
  3. Стохастик движется вверх, но не в зоне перекупленности
  4. MACD пересекает 0 вверх или
  5. MACD отрицательный, но только начал расти

Теперь настроим созданные условия так, чтобы они соответствовали описанию первой части сигнала Open Buy: 1. 5-барная EMA находится выше 10-барной EMA
Чтобы проверить, находится ли значение индикатора EMA 5 выше (>) значения индикатора EMA 10, мы сравним индикатор с другим индикатором, используя оператор «above» (>).

5-барная EMA выше 10-барной EMA
5-барная EMA выше 10-барной EMA.

2. RSI выше 50
Чтобы проверить, находится ли значение индикатора RSI выше (>) 50, мы сравним индикатор со значением, используя оператор «above» (>). Чтобы выбрать «50», сначала нужно изменить правую часть условия на «Constant» вместо «Indicator» подробнее.

RSI выше 50
RSI выше 50.

3. Стохастик движется вверх, но не в зоне перекупленности
Здесь нужно использовать 2 условия: одно для проверки, растёт ли индикатор, и одно для проверки, не находится ли индикатор в зоне перекупленности.

  • Чтобы проверить, растёт ли индикатор Стохастик, нужно сравнить предыдущее значение индикатора с текущим. Когда значение увеличивается, он растёт. Итак, чтобы проверить, растёт ли линия, нужно проверить, что текущее значение (сдвиг 0) выше (>) предыдущего значения (сдвиг 1).
  • Чтобы проверить, что индикатор Стохастик не находится в зоне перекупленности, нужно проверить, что значение индикатора ниже 80. Для этого используем оператор «Below» (<).
Стохастик движется вверх, но не в зоне перекупленности
Стохастик движется вверх, но не в зоне перекупленности.

4. MACD пересекает 0 вверх или MACD отрицательный, но только начал расти
Теперь добавим ещё одно (5-е) условие к нашему сигналу, но выберем «Group» и укажем «Any». Используя меню новой группы «Any», добавим ещё одно условие и ещё одну (вторую) группу. Для второй группы выберем «All». Используя меню второй группы, добавим 3 условия. Отлично! Вы уже освоились!
Итак, в первой группе 2 условия, но только одно должно быть истинным, поэтому мы использовали «Any» для первой группы. Вторая группа содержит 3 условия. Однако для второй группы мы используем оператор «All», чтобы сообщить EA, что все условия должны быть выполнены.

MACD пересекает 0 или начинает расти
MACD пересекает 0 или начинает расти

Мы создали первый сигнал. Теперь пришло время протестировать сигнал:

  1. Экспортировать EA.
  2. Поместить EA в папку «Experts» (в MT5 это происходит автоматически при двойном клике по скачанному файлу, для MT4 сделайте это вручную).
  3. Запустить EA в тестере MetaTrader в «Visual mode».
  4. Убедиться, что ордер на покупку был открыт в правильный момент.

Теперь, когда первый сигнал работает, создадим остальные сигналы:

Open Sell

открытие продажи
Сигнал Open Sell

Close Buy Помните, я говорил на начальной странице этого учебника, что он будет продвинутым? Вот, начинается. Если вы скоро почувствуете себя перегруженным — не волнуйтесь: попробуйте сначала, отдохните, если это поможет, и вернитесь позже. Это учебный опыт, который принесёт результаты в долгосрочной перспективе.
Повторим стратегию закрытия: Мы будем нацеливаться на ценовые уровни 50 и 00, но только если следующий уровень находится на расстоянии более 5 пипсов. В противном случае мы установим цель на расстояние до значения Parabolic SAR. Мы также установим стоп-лосс, для чего позже в этом учебнике используем модуль стоп-лосса.
Итак, как мы всё это сделаем? Мы знаем, что наш сигнал закрытия будет состоять из 2 условий:

  1. Расстояние до следующего ценового уровня должно быть более 5 пипсов.
  2. Цена должна быть выше цены открытия + расстояние до следующего ценового уровня.

1. Расстояние до следующего ценового уровня должно быть более 5 пипсов

Чтобы узнать, как далеко находится следующий ценовой уровень, нужно вычислить остаток от деления цены открытия ордера на расстояние ценового уровня (50 пипсов). При использовании арифметических операторов в нашем веб-инструменте выберите оператор «%» (модуло) для вычисления остатка от деления. Итак, когда мы вычисляем: 1.09887 (цена открытия) % 0.00500, остаток равен 0.00387 (38,7 пипсов). Если мы можем создать условие, проверяющее, что остаток меньше 45 пипсов, мы знаем, что расстояние до следующего ценового уровня более 5 пипсов.


Создадим первое условие:

Close Buy

условие закрытия покупки 1
Первое условие сигнала 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 пипсов)), в сочетании с первым условием закрытия:

условие закрытия покупки 2
Первое и второе условие сигнала Close Buy

Слова поддержки ВАУ! Вы создали сигнал Close Buy! Подождите… вы ещё здесь? Не беспокойтесь, если вы всё ещё делаете расчёты на бумаге, чтобы проверить всё это и попытаться понять. Также не стесняйтесь делать перерывы при создании EA — это требует практики и часто похоже на головоломку, но вы будете становиться лучше, и не успеете оглянуться, как будете создавать любой EA, который можете себе представить!

Close Sell Вот сигнал закрытия для ордеров на продажу. По сути, это тот же сигнал, что и для закрытия ордеров на покупку, но противоположный.

закрытие продажи
Сигнал Close Sell

Если вы хотите узнать больше о сигналах и их возможностях, ознакомьтесь с подробной документацией по сигналам. Вы создали сигналы Open и Close для EA, что означает, что ваш EA уже будет торговать автоматически. Однако это ещё не всё. Существует множество способов изменить поведение вашего EA. Это так называемые «Модули», которые мы также будем использовать для нашего EA.

После добавления сигналов ваш EA теперь будет открывать и закрывать ордера. Осталось две задачи: установить альтернативный тейк-профит на PSAR, если цель находится менее чем в 5 пипсах, и установить стоп-лосс на значение PSAR. Для этого нужно добавить модули Take profit - Conditional (Pro) и Stop loss - Conditional (Pro) дважды — один раз для покупки и один для продажи. В итоге у нас будет 4 модуля закрытия: 2 для тейк-профита и 2 для стоп-лосса.

Чтобы добавить модуль Take profit - Conditional (Pro), нажмите «Add» в разделе Strategy на главном экране EA.

добавить модуль
Нажмите кнопку 'Add' в разделе Strategy вашего EA.

Теперь вы увидите список всех модулей, которые можно добавить в EA. Мы добавим модуль Take profit - Conditional (Pro), один из самых продвинутых модулей. После нажатия Add вы увидите список модулей:

добавить модуль тейк-профита
Нажмите на модуль Take profit - Conditional (Pro).

Теперь нужно ввести параметры модуля. Сначала введём имя и другие основные настройки:

  1. Имя: Buy TP
  2. Включён для: Is Enabled For Buy Order (чтобы включить этот модуль только для ордеров на покупку)

Затем определим предварительное условие — условие, которое должно быть выполнено перед установкой TP. Поскольку мы хотим, чтобы тейк-профит устанавливался только когда разница между ценой открытия ордера и целью составляет менее 5 пипсов, мы применим ту же логику, что и на предыдущей странице учебника. Кроме того, мы установим TP на значение PSAR только если PSAR находится ниже текущей цены, то есть направление цены — вверх. Итак, если цена растёт, мы проверим, больше ли остаток от деления цены открытия на 50 пипсов, чем 45 пипсов:

предварительное условие тейк-профита
Предварительное условие Take profit - Conditional (Pro) для ордеров на покупку

Далее установим значение тейк-профита как цену открытия ордера + расстояние до PSAR:

значение тейк-профита
Значение Take profit - Conditional (Pro) для ордеров на покупку

Мы не будем вводить условие для удаления тейк-профита, поэтому оставим последнее условие пустым. Однако установим последние значения:

  1. Trail distance (pips): 0
  2. Trail step size: 0
  3. Close percentage: 100

Также добавим такой же модуль Take profit - Conditional (Pro) для ордеров на продажу. Вот как мы его настроили:

тейк-профит для продажи
Модуль Take profit - Conditional (Pro) для ордеров на продажу

Теперь добавим модули стоп-лосса, которые проще настроить, так как у них простое предварительное условие: мы просто всегда устанавливаем значение стоп-лосса как цену ордера минус PSAR, если PSAR находится выше текущей цены. Итак, предварительное условие (для покупки) — PSAR находится выше текущей цены. Начальное значение — значение PSAR.

стоп-лосс для покупки
Модуль Stop loss - Conditional (Pro) для ордеров на покупку

Для продажи предварительное условие противоположное, но всё остальное то же:

стоп-лосс для продажи
Модуль Stop loss - Conditional (Pro) для ордеров на продажу

Если вы хотите узнать больше о модулях и их возможностях, ознакомьтесь с подробной документацией по модулям. Вы будете удивлены гибкостью, которую можно создать с помощью модулей. Для примера посмотрите этот блог: Как установить стоп-лосс на основе индикатора ATR?

Вы завершили создание своего первого полностью рабочего EA!

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

скачайте ваш EA
Нажмите кнопку 'Export to MetaTrader'.

Рекомендуем следующие шаги:

  1. Протестируйте EA в MetaTrader, запустив бэктест. Обязательно включите «Visual mode», чтобы визуально подтвердить, что ордера открываются и закрываются в ожидаемые моменты. Если у вас есть сомнения, не допустили ли вы ошибок при следовании этому учебнику, вы можете сравнить свой EA с шаблоном EA «Tutorial - Cowabunga», который можно выбрать при добавлении нового EA в ваш аккаунт.
  2. Если вам нужна дополнительная помощь в настройке EA, пожалуйста, оформите подписку и свяжитесь с нами со своими вопросами. Мы ответим и предоставим примеры, пока вы не достигнете своей цели.
  3. Настройте EA, улучшив входные значения. Если вы используете бесплатную версию EA Builder Pro, вы можете изменить настройки в EA Builder Pro. Если вы подписчик, вы можете (автоматически) оптимизировать входные данные в MetaTrader.
  4. Когда вы считаете, что у вас хорошо работающий EA и хотите использовать его в реальной торговле, запустите EA на демо-счёте, пока вы не будете уверены, что EA работает как ожидается. Мы настоятельно рекомендуем запускать EA на VPS (подробнее).
  5. Запускайте EA на демо-счёте достаточно долго. Имейте в виду, что запуск EA около недели, как правило, не считается достаточным сроком. Лично мы проверяем не менее 200 ордеров вручную и запускаем EA как минимум 3 месяца на демо-счёте перед переходом на реальный счёт. Обратите внимание, что мы не имеем права давать финансовые рекомендации. Решение о переводе EA на реальный счёт (и на основании какой информации) — это ваша ответственность.

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