Среда, 1 февраля, 2023

Конструктор Советников

Графический конструктор стратегий. Создание торговых роботов без программирования

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

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

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

Хотя в названии бесплатной версии и есть слово Demo, она обладает всем функционалом полной версии и не содержит существенных ограничений. В ней лишь есть несколько «неудобств». Ссылки на платные версии программы есть в описаниях бесплатных версий на их страницах в Маркете.

Этот конструктор стратегий разработан для трейдеров-«непрограммистов» и может быть полезен широкому кругу пользователей. Потратив немного времени на знакомство с ним и освоение принципов его работы, любой человек может создавать полноценные торговые роботы.

В этой статье на примерах создания реальных торговых советников рассмотрен основной функционал конструктора.

Возможности конструктора

Программа Mission Automate позволяет превращать идеи в готовых торговых роботов. Интуитивно понятный графический интерфейс с технологией «drag and drop» делает процесс легким и доступным. Создание советника выглядит как сборка схемы из готовых блоков (элементов) и их соединение логическими связями. Когда схема создана, ее можно немедленно запустить в работу или автоматически конвертировать в код на MQL5 для дальнейшего использования в тестере стратегий или на реал-тайм графиках.

Перечислю лишь часть доступных в конструкторе элементов.

  • Все стандартные индикаторы платформы MetaTrader.
  • Пользовательские индикаторы.
  • Открытие / закрытие / модификация позиции (группы позиций).
  • Установка / отмена / модификация отложенного ордера (группы ордеров).
  • Управление сделками: калькулятор лота, безубыток, трейлинг-стоп.
  • Доступ к торговой истории (информация о закрытых сделках).
  • Элементы для получения различной информации о ценовой истории.
  • Данные последних тиков для различных инструментов.
  • Различные арифметические операции и преобразования цен.
  • Логические операции.
  • Переменные / переключатели.
  • Операции со временем.
  • Различная информация о торговых инструментах.
  • Информация о счете (баланс, средства, свободная маржа и др.).
  • Уведомления: Alert, Лог, Push и комментарий на графике.
  • Элементы для создания входных параметров советника, которые видны в его настройках и могут быть оптимизированы в тестере стратегий.

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

  • Советники с использованием технических индикаторов.
  • Стратегии на основе Price Action.
  • Советники на свечных паттернах
  • Стратегии на уровнях поддержки и сопротивления.
  • Различные виды сеточных советников.
  • Системы с использованием методов Мартингейла.
  • Утилиты для контроля открытых позиций.
  • Системы уведомлений.
  • Помощники для управления позициями и money management.

В конструкторе и в этой статье слова сделка и позиция используются как синонимы. Сделка / Позиция может быть текущей т.е. еще не закрытой, или исторической, т.е. уже закрытой в прошлом. Слово ордер везде по тексту следует читать как «отложенный ордер«. Ордер может в дальнейшем превратиться в сделку, а может быть отменен и оказаться в истории.

Работа с программой

В общем виде процесс превращения идеи в торгового робота состоит из нескольких этапов.

  1. Формирование торговой стратегии в голове трейдера— творческая работа.
  2. Оформление стратегий в виде свода правил «на бумаге» — формализация стратегии, или подготовка технического задания.
  3. Превращение этих правил в машинный код и исполняемый файл торгового робота — программирование советника.

Большинство трейдеров могут успешно самостоятельно справиться с пунктами №1 и №2. Описываемый в данной статье продукт позволяет выполнить и пункт №3, что делает алготрейдинг доступным для любого трейдера.

Конструктор Mission Automate позволяет создавать свои стратегии «с нуля» или на основе одного из готовых шаблонов / примеров, что гораздо проще.

На видео ниже представлен весь процесс создания советника «с нуля». В данном примере создается классическая стратегия на основе двух скользящих средних.

На видео представлены следующие шаги (все они будут более подробно описаны далее).

  • Построение схемы из элементов.
  • Соединение элементов логическими связями.
  • Настройка параметров элементов и связей.
  • Автоматическая генерация .mq5 файла советника.
  • Компиляция кода и получение исполняемого .ex5 файла.
  • Запуск и проверка советника в тестере стратегий.

Стратегии собираются из блоков / модулей. Эти блоки называются элементы.

Все доступные элементы расположены на панели элементов.

Элементы могут быть соединены между собой логическими связями.

Часто используемые комбинации элементов и связей могут быть сохранены в виде заготовок.

Все созданные заготовки располагаются на панели заготовок.

Элементы перетаскиваются с помощью «drag and drop».

Группа элементов и связей образует схему.

Схема может быть создана с помощью шаблона.

Все доступные шаблоны расположены на панели шаблонов.

Обзор

Новую схему можно создать с использованием одного из имеющихся шаблонов или полностью «с нуля».

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

После того как схема создана, её иконка появляется на панели схем. Иконки схем служат для быстрого доступа к возможным действиям со схемой. Панель управления схемой появляется при одинарном клике по иконке. Если сделать двойной клик по иконке, то выбранная схема будет перемещена в центр экрана. Каждой схеме можно присвоить своё имя. Можно свободно передвигать схему по рабочей области.

Чтобы добавить к схеме новые элементы, их нужно перетащить на нее с панели элементов.

Если элемент с панели перетащить на чистое пространство, то будет создана новая схема, содержащая только этот элемент. Каждому элементу можно присвоить свое имя.

При клике по элементу появляется панель его настроек. Можно менять значения параметров элемента или установить значение по умолчанию. Кроме настроек параметров, доступны опции для клонирования элемента, его удаления, сброса настроек и для доступа к краткому описанию элемента и его параметров.

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

Элементы можно условно разделить на три группы.

  1. Элементы для совершения определенных действий (открытие новых позиций, уведомления, изменение существующих позиций и др) при наступлении определенных условий. Условие, необходимое для совершения действия, называется триггером.
  2. Элементы-объекты (тик, бар, символ, позиция, отложенный ордер, индикатор). Сначала нужно сформировать объект и настроить его параметры, и только после этого можно будет получить информацию о нем.
  3. Элементы для получения информации об объекте (текущие цены, информация о состоянии счета, торговая история и др).

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

Элементы можно соединять логическими связями. Связь передает данные от одного элемента к другому.

Чтобы создать новую связь, необходимо «потянуть» за край элемента. При клике по связи появится окно ее настроек.

Картинка выше показывает, как выглядела бы утилита, оповещающая о наступлении нового бара.

Связями можно соединять только элементы и параметры одинаковых типов или типов, которые превращаются друг в друга без потери информации.

Некоторые действия могут применяться к группе элементов.

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

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

Остальной функционал программы будет рассмотрен на примерах построения реальных торговых советников.

Пример №1: Советник «Пересечение Скользящих Средних»

Рассмотрим классическую торговую стратегию, основанную на пересечении двух скользящих средних.

Стратегию можно кратко описать следующим образом.

Покупаем, когда быстрая скользящая средняя (МА) пересекает медленную МА снизу вверх. Продаем, когда быстрая МА пересекает медленную сверху вниз. Закрываем позиции при наступлении противоположного сигнала, а также с помощью Stop Loss и Take Profit.

Теперь опишем стратегию более формальным языком, в виде правил/условий.

  • Скользящие средние строим по ценам закрытия свечей. Работаем только со сформированными барами. Торговые действия предпринимаем на открытии бара, следующего за появлением сигнала.
  • Периоды быстрой и медленной средних должны быть вынесены во входные параметры советника.
  • Сигнал на покупку (и закрытие продаж) — состояние, когда на предыдущем баре быстрая МА была ниже медленной, а на текущем стала выше неё.
  • Сигнал на продажу (и закрытие покупок) — состояние, когда на предыдущем баре быстрая МА была выше медленной, а на текущем стала ниже неё.
  • Одновременно может быть открыта только одна позиция.
  • Торговля будет вестись постоянным лотом. Размер торгового лота должен быть вынесен во входные настройки советника.
  • Значения Stop Loss и Take Profit в пунктах должны быть вынесены во входные параметры эксперта.
  • Советник должен работать только с тем инструментом, на график которого он помещен. Таймфрейм для расчета индикаторов должен соответствовать периоду текущего графика.
  • Должна быть обеспечена возможность работы нескольких советников на одном счете с помощью уникального идентификатора Magic Number. Этот параметр должен быть вынесен во входные настройки советника.
  • Должна быть возможность задавать пользовательский комментарий для позиций советника.

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

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

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

Период индикатора — целое число. Будем использовать соответствующий элемент. Создадим новую схему. Добавим в нее 2 элемента, дадим им названия и настроим их значения. Для быстрой МА установим значение по умолчанию =14, а для медленной =28. Эти значения можно в дальнейшем оптимизировать в тестере стратегий.

Периоды скользящих средних

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

Нам понадобятся два элемента Moving Average .

Добавим их в нашу схему и соединим элементы периодов индикаторов с параметрами Период Индикатора. После этого схема будет выглядеть так:

Индикаторы

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

Читать статью  Трендовые советники

Теперь, чтобы определить условия сигналов на покупку/продажу, нам нужно получить по два значения для каждого индикатора — на предыдущем баре и на текущем.

Для получения значения индикатора служит элемент Значение Индикатора. Добавим 4 таких элемента в нашу схему и создадим соответствующие связи.

Бары нумеруются от настоящего к прошлому. Текущий бар, который еще не сформирован, имеет номер . Номер 1 присваивается предыдущему сформированному бару, номер 2 — бару перед ним.

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

Значения скользящих средних

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

Для сравнения чисел используется элемент Сравнение. Этот элемент выдает значение «истина», если два числа удовлетворяют указанному отношению, и значение «ложь» — если нет. Добавим два таких элемента в нашу схему. В первом будем определять, была ли быстрая МА выше медленной на предыдущем баре, а во втором — стала ли быстрая МА выше медленной на текущем баре. Создадим соответствующие связи и настроим параметры для двух элементов сравнения.

Сравнение значений

Сигналом для открытия покупок должно быть одновременное выполнение двух условий:

  • быстрая МА НЕ была выше медленной на предыдущем баре
  • быстрая МА стала выше медленной на текущем баре.

Для проверки одновременного выполнения этих условий будем использовать элемент логическое И . Этот элемент выдает значение «истина», если ВСЕ условия выполнены, и значение «ложь», если хотя бы одно из них не выполнено.

Добавим два таких элемента в нашу схему и присоединим оба элемента Сравнение к каждому из них.

При этом нам нужно будет «перевернуть» некоторые связи. Элемент Сравнение выдает «истину», если Быстрая МА была выше Медленной МА на предыдущем баре, а нам нужно проверить что она НЕ была выше. Поэтому мы перевернем выходное значение с помощью настройки соответствующих связей в параметрах элементов. Перевернутые связи обозначаются на схеме красным цветом.

Сигналы

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

Чтобы получить доступ к информации о позициях, используем элемент Группа Сделок. Этот элемент формирует группу сделок, удовлетворяющих определенным условиям. Сделки могут фильтроваться по различным параметрам, таким как символ, magic, комментарий и др.

Нам необходим один такой элемент для покупок и один для продаж. Добавим два этих элемента на схему и настроим их соответствующим образом:

Группы сделок

Чтобы получить информацию о группе сделок (нам нужно знать их количество), будем использовать элемент Информация о Группе Сделок (Целое). Добавим два таких элемента в нашу схему. Полученное значение будем сравнивать с нулем с помощью элемента Сравнение.

Количество сделок

Теперь нам необходимо сформировать окончательные условия — триггеры для совершения торговых операций. Каждый триггер содержит два условия.

  1. Триггер для открытия покупки — (1) Нет открытых покупок и (2) есть сигнал на покупку
  2. Триггер для открытия продажи — (1) Нет открытых продаж и (2) есть сигнал на продажу
  3. Триггер для закрытия покупки — (1) Есть открытая покупка и (2) есть сигнал на продажу
  4. Триггер для закрытия продажи — (1) Есть открытая продажа и (2) есть сигнал на покупку

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

Обратите внимание, что для триггеров на открытие позиций связи от элементов сравнения должны быть перевернуты.

Тригееры

Триггеры готовы. Осталось добавить торговые элементы.

Для открытия позиции используется элемент Открыть Сделку. Нам нужно по одному для открытия продаж и покупок.

Для закрытия сделок используется элемент Закрыть Группу Сделок. Здесь тоже нужно по одному для закрытия продаж и закрытия покупок.

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

Торговые элементы

Торговая логика советника полностью готова. Осталось сделать так, чтобы торговый лот, magic, комментарий сделок и значения Stop Loss/Take Profit можно было настраивать из входных параметров советника. Для этого нам опять понадобятся элементы из группы Входные Параметры.

Торговый лот задается десятичным числом, комментарий — строкой, а magic, stop loss и take profit — целыми числами. Добавим эти элементы в схему и присоединим их к соответствующим параметрам торговых элементов.

Окончательный вид схемы

Схема готова. Теперь необходимо создать файл советника.

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

Упорядочивание входных параметров

Мы готовы к генерации кода и к созданию файла советника. Весь процесс показан на картинке ниже и состоит из следующих шагов.

  1. Генерация файла советника через меню файлового навигатора программы.
  2. Открытие готового файла исходного кода советника (.mq5) в программе MetaEditor.
  3. Компиляция советника и получение файла эксперта (.ex5).

После успешной компиляции в той же папке, где находится файл исходного кода (.mq5), появится файл советника с расширением .ex5 и тем же названием, что и файл исходного кода.

Этот файл советника необходимо поместить в папку Эксперты торгового терминала, и тогда он будет доступен для использования в терминале.

Если запустить получившийся советник в тестере стратегий мы увидим следующую картину:

Проверка в визуальном режиме

Советник готов и полностью соответствует первоначальным правилам торговой стратегии!

Пример №2: Советник «Перевёртыш с Мартингейлом»

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

Открываем позицию в любом направлении начальным лотом. Устанавливаем Stop Loss и Take Profit равными друг другу. Если позиция закрылась в профит, то следующая открывается опять с начальным лотом. Если позиция закрылась в убыток, то следующая сделка должна быть увеличенного объема, чтобы при закрытии в плюс компенсировать предыдущие потери.

Техническое задание на такого робота могло бы выглядеть следующим образом.

  • Первая сделка открывается в направлении, заданном пользователем (входной параметр) и с начальным лотом (входной параметр).
  • Для открытой позиции устанавливаются одинаковые stop loss и take profit в пунктах (входной параметр).
  • Если сделка закрывается в профит, следующая сделка открывается в противоположном направлении с начальным лотом.
  • Если сделка закрывается в убыток, следующая сделка открывается в противоположном направлении с увеличенным лотом (Lot Multiplier — входной параметр).
  • Должна быть возможность задавать комментарий для сделок советника (входной параметр Comment).
  • Должна быть предусмотрена возможность одновременной работы нескольких советников (входной параметр Magic).
  • Советник должен торговать инструментом графика, на который он установлен. Таймфрейм не имеет значения.

Приступим к созданию этого советника с помощью конструктора.

Для реализации стратегии нам необходимо иметь информацию о текущем состоянии (наличие открытых позиций) и о торговой истории (нужно знать направление, прибыль и лот предыдущей сделки).

Сформируем две группы сделок: одну — с закрытыми позициями и одну — с текущими. Сразу добавим элемент Входной Параметр для мэджика советника.

Группы сделок

Если сейчас нет открытой позиции, ее надо открыть. Как и в предыдущем примере, для определения количества открытых позиций будем использовать элемент Информация о Группе Сделок, и сравним полученное значение с нулем. Если позиции нет, это будет триггером для открытия новой сделки. В нашем случае данная связь должна быть перевернута.

Открытие позиции

Если позиция есть, для неё нужно установить Стоп Лосс и Тейк Профит.

В предыдущем примере это делалось сразу в момент открытия сделки, но не все режимы исполнения / брокеры позволяют это сделать. Поэтому мы рассмотрим случай открытия позиции без СЛ и ТП и их установку в дальнейшем.

Установку (модификацию) уровней СЛ и ТП обеспечивает элемент Изменить Группу Сделок.

Кроме этого, добавим элементы для входного параметра с Комментарием к сделкам и для входного параметра со значением величины СЛ и ТП в пунктах.

Установка стопов

Для определения типа следующей сделки нужно знать направление последней закрытой позиции. Для доступа к информации о позиции воспользуемся элементом Информация о Сделке. Для этого нужно знать тикет последней сделки. Его можно получить с помощью элемента Информация о Группе Сделок.

Последняя сделка

Определим тип последней сделки и узнаем, была ли это покупка или продажа. Для этого нужно использовать элемент Равно. Он позволяет сравнивать числа с различными типами данных и возвращает «истину», если они равны.

Тип последней сделки

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

Если предыдущая сделка была на покупку, то следующая будет на продажу, и наоборот. Если тип последней сделки неизвестен (если еще не было открыто ни одной сделки), то будет использован тип из входных настроек. Его создадим с помощью соответствующего элемента.

Тип следующей сделки

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

Прибыль и объем последней сделки

Если это первая сделка или если последняя сделка закрылась в профит, мы начнем новый цикл с начальным лотом.

Для определения условия начала нового цикла воспользуемся элементом логическое ИЛИ . Он возвращает «истину», если хотя бы одно из условий выполнено, и «ложь» — если все условия не выполнены. Нам нужно проверить два условия. (1) Условие закрытия сделки в плюс мы возьмем из элемента Сравнение, где проверяется, была ли прибыль меньше нуля (эту связь к элементу ИЛИ необходимо перевернуть). (2) — проверку того, что это первая сделка, создадим с помощью элемента И, куда присоединим перевернутые значения из элементов Равно. Ведь если предыдущая сделка — это не покупка и не продажа — значит, это как раз та ситуация, когда предыдущей сделки просто нет.

Новый цикл

Если же сделка была открыта, то нужно вычислить новый объем. Для этого воспользуемся элементом Арифметика . Он позволяет производить различные математические операции с двумя числами. В данном случае будем умножать лот предыдущей сделки на параметр Множитель Лота, который создадим с помощью элемента Входной Параметр. Для нашей стратегии установим его значение по умолчанию, равное =2.

Вычисление лота

Для окончательного расчета лота воспользуемся элементом Переменная, как и в случае с определением типа сделки. Ведь если мы начинаем новый цикл, то нам нужно использовать начальный объем, а если мы продолжаем цикл после убыточной сделки — то нужно взять размер следующего лота, рассчитанный на предыдущем этапе.

Кроме этого, добавим элемент для начального объема (входной параметр). В окончательном виде схема будет выглядеть так:

Выбор лота

Для быстрого обзора параметров всех элементов схемы/стратегии можно воспользоваться функцией Обзор Параметров.

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

Давайте убедимся, что во всех элементах используется текущий символ графика, на котором запущен эксперт. Для этого переведем схему в режим Обзора Параметров и выберем в левом списке параметр Имя Символа. Тогда в правой области мы увидим, что данный параметр присутствует в трех элементах нашей схемы и везде установлен как Current Symbol, что означает использование текущего инструмента графика. При необходимости это значение может быть изменено на имя любого другого инструмента из Обзора Рынка.

Читать статью  Сеточник Советник Auto-Profit 3.0

Обзор параметров

Проверим наш советник в тестере стратегий. Для этого, как и в предыдущем примере, нужно сгенерировать файл исходного кода и скомпилировать его в программе MetaEditor.

Проверка в тестере

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

Пример №3: Утилита «Закрытие группы сделок по совокупной прибыли»

С помощью конструктора можно реализовывать не только торговые стратегии, но и более простые утилиты — помощники в торговле.

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

Утилита должна удовлетворять следующим требованиям.

  • НЕ открывает сделок.
  • Отслеживает на счете текущие позиции с определенным мэджиком (входной параметр).
  • При достижении этими позициями заданного уровня прибыли (входной параметр) все сделки должны быть закрыты.
  • Советник должен выдавать алерт при закрытии позиций, с указанием совокупной прибыли и количеством попыток закрытия группы сделок.

Последний пункт требований обусловлен тем, что не всегда удается закрыть позицию с первой попытки. Причины этого могут быть разными. Самая частая — устаревание запрошенной цены (реквот). Чем больше количество позиций в закрываемой группе, тем больше вероятность того, что какая-нибудь из них не будет закрыта с первой попытки, особенно в моменты повышенной волатильности.

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

Сформируем группу сделок (элемент Группа Сделок) с заданным мэджиком (элемент Входной Параметр), узнаем их количество и сравним полученное значение с нулем, чтобы определить, есть ли хоть одна позиция для мониторинга.

Группа сделок

Узнаем текущую прибыль этой группы позиций (элемент Информация о Группе Сделок) и сравним это значение с заданным уровнем прибыли для закрытия (элемент Входной Параметр).

Прибыль группы сделок

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

Поэтому будем запоминать факт наступления условия для закрытия всей группы в элементе Переменная. Советник будет закрывать все сделки на следующих тиках, если в этой переменной хранится значение «истина», до тех пор, пока все они не будут успешно закрыты. Когда все сделки будут закрыты, мы будем сбрасывать условие на закрытие (установим значение «ложь») и ждать наступления новой ситуации на закрытие.

Закрытие группы будем осуществлять элементом Закрыть Группу Сделок.

Закрытие группы сделок

Торговая логика утилиты готова, и она уже может полноценно функционировать. Теперь добавим функционал для подсчета попыток закрытия группы сделок.

Для этого тоже воспользуемся элементом Переменная. Будем сбрасывать значение в 0, когда нет открытых сделок в группе, и увеличивать значение на 1 (прибавлять единицу с помощью элемента Арифметика) каждый раз, когда мы пытаемся закрыть группу позиций.

Кроме этих двух элементов, понадобится еще элемент для преобразования десятичного числа в целое (Преобразование), т.к. мы используем переменную целого типа для счетчика, а элемент Арифметика возвращает значение десятичного типа. Если бы мы использовали Переменную десятичного типа, то это преобразование можно было бы не делать.

Добавим элементы на схему и настроим их, как показано ниже:

Счетчик попыток

Теперь осталось сформировать текст сообщения и выдать алерт с ним в момент закрытия группы сделок. Текст сообщения можно сформировать с помощью элемента Собрать Строку, который объединяет части сообщения в единое целое.

Алерт MetaTRader 5 реализован с помощью элемента Алерт.

Алерт

На этом примере рассмотрим еще одну опцию. Каждая схема может содержать несколько окончаний — действий? которые должны быть совершены в результате выполнения схемы и которые не влекут за собой исполнения других действий. В данной схеме это Алерт и Закрытие группы сделок.

Если нужно, чтобы эти действия выполнялись в определенном порядке — например, чтобы Алерт был создан ДО закрытия сделок, — нужно воспользоваться опцией Упорядочить Окончания . Тогда появится диалоговое окно, как и в случае с организацией порядка входных параметров, в котором можно будет перемещать элементы вниз/вверх.

Упорядочивание окончаний

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

Схему можно сразу запустить в реальную работу, даже без генерации кода и создания файла советника (хотя это может быть сделано, готовый советник можно запускать на отдельном графике в терминале). Для запуска схемы в реальное исполнение есть кнопка Начать/Остановить Выполнение, при нажатии на которую схема начнет исполняться точно так же, как если бы файл советника был запущен на отдельном графике. Этой опцией можно пользоваться для одновременного выполнения нескольких простых утилит без необходимости генерации кода для них и запуска их на отдельных графиках.

Исполнение схемы

Заключение

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

Скачать программу в Маркете и попробовать её в действии — бесплатно и легко. В комплекте идут 5 готовых бесплатных советников.

У меня большие планы по дальнейшему развитию проекта, поэтому буду признателен за любые замечания и пожелания по улучшению программы.

Сделаем алготрейдинг доступным каждому!

Предупреждение: все права на данные материалы принадлежат MetaQuotes Ltd. Полная или частичная перепечатка запрещена.

Конструктор Советников

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

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

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

Причем вы никогда не узнаете эффективна ли ваша стратегия или нет до тех пор, пока вы ее не запрограммируете и не проведете соответствующее тестирование согласно всех правил.

Не зря же одна и та же торговая стратегия в разных руках показывает разную эффективность, ведь в торговом процессе мы очень часто задействуем и интуицию.

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

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

Конструктор советников Forex Strategy Builder Pro

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

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

Конструктор советника МТ5

Изначально программа запустится на английском языке, однако настройки очень легко сменить на русский язык. Что бы приступить сразу к созданию советника в конструкторе нажмите на блок «Новая стратегия». Перед вами появится рабочая область:

Рабочую область можно условно разделить на три блока, а именно «Входные параметры», «Стратегия», «Статистика аккаунта». В блоке «Входные параметры» вы можете увидеть валютную пару на которой будет проводится тест, временной период, временные рамки, источник котировок, спред, своп, комиссия а так же метод интерпретации теста.

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

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

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

Для примера мы установили, чтобы советник рассчитывал лот в зависимости от процента риска, а так же включили мартингейл с множителем 1.7. Следующим шагом необходимо в разделе «Вход в рынок» с помощью индикаторов задать торговые условия.

Для этого заходим в этот блок и выбираем необходимые нам индикаторы. Мы же решили остановиться на пересечении скользящих средних и выбрали индикатор MA Crossover, в котором задали медленную и быструю МА.

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

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

Так же вы можете установить закрытие позиции по времени. Для нашего экспериментального советника мы поставили закрытие по профиту, поскольку ранее мы включили мартингейл.

Собственно на этом создание эксперта подходит к концу. Далее смотрим в блоке «Статистика аккаунта» как повел себя эксперт на истории. В нашем случае эксперт закрылся с прибылью, а результат вы можете увидеть на картинке ниже:

Так же у нас есть возможность протестировать скрипт в мультивалютном режиме, а именно задать несколько валютных пар и познакомится с поведением стратегии на каждой. Для этого в левой боковой панели выберите Мульти-рынки. После чего следует добавить нужные нам инструменты и нажать на кнопку «начало». Результат нашего робота в мульти тестере смотрим ниже:

Как оказалось, предложенная нами торговая стратегия дала прибыль по двум валютным парам, а именно по евро/доллар и по фунт/доллар.

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

Результат вашей работы можно сохранить как в виде советника для МТ4 так и для МТ5, нажав на кнопку «Экспорт советника».

Читать статью  Советники и скрипты для выставления отложенных ордеров

Программы для создания советников на МТ4 и МТ5

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

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

С языком программирования MQL4 знакомы не все, потому программы, облегчающие процесс создания робота, пользуются популярностью.

Как можно создать советник?

Обзор начнем с краткого описания всех возможных способов (возможно, вам и не придется разбираться с программами). Создать торговый робот можно:

• написав его самостоятельно в Meta Editor – хардкорный вариант. Сюда же занесем и модификацию кода уже существующего робота;

• заплатив программисту – самый реальный вариант. Если бот сложный с множеством условий для входа, а у вас нет опыта в написании АТС, то лучше всего купить чужой опыт. Соответствующих объявлений полно на профильных форумах;

• используя спец. программу, облегчающую создание кода робота. В некоторых реализован принцип «Drag and Drop», то есть код бота строится в виде диаграммы, вы задается в отдельных блоках условия работы, затем передвигаете их, задаете связи между ними. Код компилируется по составленной блок-схеме автоматически.

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

Краткий обзор программ для написания торговых роботов

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

Forex strategy builder

Мощный инструмент, программа платная, но в ознакомительных целях с сайта forexsb.com можно скачать демо-версию. На ознакомление дается всего 15 дней, повторно воспользоваться триальной версией можно будет только с другого ПК. Работать FSB будет только если у вас установлен МетаТрейдер, дело в том, что программа использует базу данных из МТ4.

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

Программы для создания советников на МТ4 и МТ5

При создании советника рабочее пространство программы делится на 3 зоны:

• левая часть экрана – краткое описание стратегии;

• центральная зона – функциональные блоки советника. Указывается такая информация как размер лота, когда выполняется вход и на основании каких индикаторов. Также указывается условие для закрытия сделки. В примере на скриншоте ниже вход в рынок выполняется только на закрытии свечи и только в том случае если свеча закрывается над верхней границей конверта. Выход из сделки в этом примере предусмотрен только за счет срабатывания стоп-лосса или тейк-профита;

Программы для создания советников на МТ4 и МТ5

• правая часть экрана – результаты тестирования советника на исторических данных, импортированных из торгового терминала.

Находясь в Editor можно выделив каждый из блоков редактировать его значения. Например, изменить период скользящей средней, период индикатора, положение уровней и т. д. Можно добавить дополнительные условия для входа нажав на «Add an opening logic condition» и условия для выхода из рынка нажав на «Add a closing logic condition».

Программы для создания советников на МТ4 и МТ5

В разделе review вся информация по работе советника истории. Доступны такие пункты:

• overview – так как в примере рассматривается один из готовых советников, загруженных в базу программы, то здесь можно ознакомиться с подробным описанием советника;

• balance chart – график изменения депозита при тестировании алгоритма. В нашем примере видно, что робота неспособен обеспечить прибыль на тестовом участке истории;

Программы для создания советников на МТ4 и МТ5

• indicator chart – график выбранного инструмента, на котором будут отображаться сделки, совершенные при тестировании. Примерно то же самое увидит трейдер при тестировании советника в МТ4/МТ5 при активированном параметре «Визуализация». Это полезно если вы хотите изучить в полной ли мере соответствует работа советника тому, что вы задумывали;

Программы для создания советников на МТ4 и МТ5

• journal – в журнале записывается каждое действие робота при тестировании на исторических данных.

Есть пара полезных разделов и во вкладке Analysis:

• comparator – выбирается метод бэктеста. Здесь можно ничего не делать, оставить все как есть;

• multimarkets – в отличие от стандартного тестера в том же МетаТрейдере4 здесь можно выполнить тестирование сразу по нескольким парам. Результаты отображаются в виде графика в одном и том же окне;

Программы для создания советников на МТ4 и МТ5

•monte carlo – еще один раздел, посвященный тестированию. Его можно не трогать.

Перед тем как тестировать робот на истории рекомендуем подгрузить историю из МетаТрейдера. Для этого перейдите в Market-Download History Data-MT4 HST Import.

Главное, чем ценна программа так это возможностью сохранить написанный робот сразу в нужном формате для МТ4 или МТ5. Соответствующая кнопка есть на панели инструментов.

Программы для создания советников на МТ4 и МТ5

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

Ensed Cor

По сравнению с предыдущей программой Ensed Cor выглядит чуть менее удобной в использовании. Да и составить костяк советника так же просто как в FSB не получится. Как и в случае с FSB доступ к полному функционалу можно получить только оплатив подписку на сайте авторов. Но для ознакомления с возможностями программы подойдет и бесплатная версия Ensed Cor.

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

Перед началом работы нужно будет указать каталог МТ4. Enser Cod будет использовать все индикаторы, которые на данный момент содержаться в папке Indicators (в демо-версии реализована поддержка только стандартного инструментария МетаТрейдера).

Работу в программе рассмотрим на примере создания простенького торгового робота:

• при первом запуске указываем каталог терминала МТ4;

Программы для создания советников на МТ4 и МТ5

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

Сперва опишем принцип работы нашего советника текстом, для лучшего понимания работы алгоритма. Предположим, в работе будут использоваться только 2 индикатора – Стохастик и скользящая средняя. Покупки выполняем при условии, что осциллятор находится в зоне перепроданности, а ценовой график находится над мувингом. Продажи – при зеркальных условиях.

• в основном поле программы будут отображаться условия, использующиеся в работе советника. Индикаторы находятся в правой части, добавить на график их можно просто перетащив нужный на основное поле. Откроется окно с настройками, изменить параметры индикаторов можно и позже. На скриншоте ниже записаны условия для покупок, не забывайте только объединять их в одно целое;

Программы для создания советников на МТ4 и МТ5

• по той же схеме записываем условия для открытия коротких позиций. Теперь мувинг должен быть над ценой, а Стохастик находится в зоне перекупленности;

Программы для создания советников на МТ4 и МТ5

• теперь нужно указать условия для выхода из сделок. Предположим, что наш робот будет закрывать покупки при выполнении одного из 2 условий: Параболик со стандартными настройками переходит под график, цена пересекает скользящую среднюю сверху-вниз. Достаточно выполнение одного из этих условий, поэтому используем условие «или»;

Программы для создания советников на МТ4 и МТ5

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

Программы для создания советников на МТ4 и МТ5

• настройки робота – здесь задаются такие параметры как стоп-лосс, тейк-профит, будет вестись торговля фиксированным лотом либо будет использоваться мартингейл. Можно отметить пункт «автоучет знаков после запятой», в таком случае разрядность котировок советником будет определяться автоматически. Также задаются настройки мартингейла, будет ли переноситься стоп-лосс в безубыток и на каком уровне.

Программы для создания советников на МТ4 и МТ5

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

Программы для создания советников на МТ4 и МТ5

В целом, программа хотя и выглядит намного проще, чем FSB, но со своей задачей справляется. Создавать простые советники действительно легко. Проблема только в том, что функционал бесплатной версии ограничен, а продажу доступа к полноценной версии авторы временно ограничили. Можно поискать крякнутые версии Enser Cod, но нет гарантии, что работать она будет нормально.

Expert Advisor Visual Wizard

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

Процесс создания робота выглядит так:

• после открытия программы нужно будет указать путь к корневому каталогу МТ5, это ПО предназначено именно для создания ботов для МетаТрейдера5. Благодаря этому программа сможет работать не только со стандартными индикаторами, но и со всеми пользовательскими алгоритмами, которые трейдер сам установил в терминал;

• на график нужно будет добавить 2 кнопки Technical Analysis – для задания условий на покупку и продажу. Двойным щелчком по кнопке открывается окно, в котором выбираются нужные индикаторы, задаются условия для входа. Например, можно выбрать вход в рынок на пересечении 2 мувингов, выхода Стохастика из зон перепроданности/перекупленности и т. д.;

Программы для создания советников на МТ4 и МТ5

• потом добавляются блоки купить/продать, в них задаются параметры сделок – величина лота, стоп-лосс и тейк-профит.

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

Программы для создания советников на МТ4 и МТ5

На скриншоте выше – пример примитивнейшего советника на основе Стохастика. Его можно сохранить в нужном для МТ5 формате, загрузить в терминал и тут же испытывать на истории. В самой программе для создания возможности протестировать советник нет.

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

Такое ПО можно сравнить с костылями, ходить то они позволят, но это будет нечто далекое от ходьбы нормального человека. Такое ПО неспособно на 100% заменить все те возможности, которые имеются в распоряжении программиста, когда он пишет код робота с нуля.

Пока речь идет о простых советниках, основанных, например, на пересечении скользящих средних, или выхода Стохастика из зон, то все в порядке. Разницы между ручным написанием кода и использованием соответствующего ПО не будет. Но если дело доходит до относительно сложных роботов, то недостатки программ сразу становятся заметными.

Например, если в советнике нужно применить ВВ к индикатору RSI, программы это реализовать не смогут. Есть проблема с использованием свечных паттернов, паттернов Price Action, уровней Фибо и т. д.

Заключение

Программы для создания советников хороши только в тех случаях, когда нужно написать простой советник на основе индикаторов. Если ваши требования выходят за пределы этого ТЗ, в алгоритме нужно использовать свечные и графические паттерны, то придется обращаться за помощью к специалистам. Иного способа пока что нет, даже лучшая программа такого типа (Forex strategy builder) существенно уступает возможностям программиста.

Источник https://www.mql5.com/ru/articles/4951

Источник https://time-forex.com/programmy/konstruktor-sovetnikov

Источник https://rognowsky.ru/forex2/programmy-dlya-sozdaniya-sovetnikov-na-mt4-i-mt5/

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

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