Конструктор стратегий и торговых роботов. Разработку форекс робота начинаем с идеи

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

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

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

1. Разработку форекс робота начинаем с идеи

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

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

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

2. 4 важных вопроса перед разработкой

Но перед этим попытайтесь ответить себе на следующие вопросы:

  • В чем состоит ваша торговая идея?
  • Какие задачи будет решать советник, и какое объективное преимущество это может дать в торговле?
  • Возможно, вам нужен графический индикатор или вспомогательный скрипт?
  • Насколько идея реализуема технически, и можете ли вы самостоятельно оценить ее сложность?

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

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

У новичков на валютном рынке часто возникает множество вопросов, ответы на которые бывают не совсем очевидны, либо являются лишь вопросом неопытности оного. Будучи начинающим трейдером, достаточно прочитать одну книгу Билла Вильямса, чтобы на всю жизнь подменить понятие торгового хаоса торговым порядком. Затем такие люди удивляются, почему вот здесь да не купить, а вот здесь да не продать, и заказывают у программистов советник по пересечению двух скользящих средних. А ведь на начальных этапах обучения это вполне можно отдать на откуп готовым инструментам разработки. Одной из таких как раз является MQL5 Wizard – мастер по созданию советников для MetaTrader 5.

Для реализации простых вещей Мастер идеален. Вам не нужно обладать никакими магическими способностями – навыки программирования здесь не требуются. Несколько простых шагов, и советник готов. Уже готовый советник можно протестировать в том же терминале MetaTrader. Держите комбайн по производству простецких Граалей.

Итак, для начала запускаем MetaTrader 5 и переходим в редактор приложений (кнопка F4). На верхнем меню жмем кнопку «Создать» и в появившимся диалоге выбираем генерацию нового советника.

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

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

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

Обычный трейлинг стоп или закрытие сделки по значениям индикатора – на ваш выбор.

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

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

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

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

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

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

«Старайтесь вникать в процесс работы и всего, что непосредственно касается реализации идеи вашего советника»

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

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

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

7. Выбор исполнителя

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

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

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

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

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

Один из типичных примеров – недопонимание форматов файлов и их значения. Вроде: «У меня тут есть.dll библиотека (.exe файл или.ex4 программа), не могли бы вы быстренько поправить то и то, а я вам за это копеечку закину? Нет? А почему? Василий мне сделал советника за 5 баксов, а вы плохой разработчик значит!».

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

Этап сдачи работы – самый сложный. Будьте уверены, каждый исполнитель с горя пьет успокоительный отвар, черным маркером отмечая день календаря, когда его в очередной раз просят поправить и без того исчерпавший все сроки заказ. Как и вселенной, совершенству нет предела, но в определенный момент нужно собраться и сказать – задача завершена.

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

Со стороны исполнителя же работа завешена ровно тогда, когда исполнены все пункты заказа. Техническое задание для программиста – это четко проведенная тропа, отходить от которой значит додумывать за заказчика. Иногда эта тропа заводит в тупик, как дорога из бывшей столицы Руси в либеральную Европу. То есть, на этапе приема работ выясняется, что задача, оказывается, состояла совсем не в том, а в кардинально обратном.

Если задача небольшая, исполнитель вполне может пойти на уступки, и исправить работу в соответствии с новым ТЗ. Если работа проделана масштабная – что-либо менять уже поздно. Частая проблема – тотальная отрешенность в процессе разработки, например, отказ от участия в бета-тестировании: «Зачем вы мне скинули советника с ошибками, я что за вас тестировать еще должен?» или: «Откуда я знаю, как этот ваш тестер запускать, я программист что-ли?».

Для адекватного человека такие заявления режут слух, исполнитель же впадает в депрессию. Разработка торгового робота – это, в первую очередь, работа. Если вы ищете готовое решение, существует магазин готовых советников, где советника за вас и протестируют, и вымоют до блеска, попутно документируя его историческую успешность. В таком случае, обращаться на фриланс-биржу не имеет смысла.

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

Заключение

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

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

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

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

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

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

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

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

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

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

Forex strategy builder

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ensed Cor

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

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

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

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

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

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

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

Составляем алгоритм:

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

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

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

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

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

Expert Advisor Visual Wizard

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

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

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

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

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

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

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

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

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

Торгуй по крупному только с ведущим брокером.

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

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

Советник exp_Lego - это полностью автоматический торговый эксперт, который по совместительству является конструктором на основе стандартных индикаторов .

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

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

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

Установка советника exp_Lego

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

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

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

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

Алгоритм работы. Настройки

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

Конструктор базируется на шести таких индикаторах как скользящее среднее, Demarker , Stochastic, АС, АО, ССI.

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

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

Переменные otkr_MA и zakr_MA позволяют разрешить или запретить открытие и закрытие сделок по сигналам скользящих средних, причем периоды скользящих на пересечении которых появляется сигнал, вы можете задавать в строках MA1 и MA2.

Переменная Shift_ma отвечает за сдвиг скользящей средней на заданное количество баров.

Переменные otkr_Stoh и zakr_Stoh отвечают за октрытие и открытие сделок по индикатору Stochastic, причем в переменных zoneBUY и zoneSELL вы можете задавать уровни перепроданности и перекуплености, на основе которых происходит открытие позиции либо фильтр сигнала от скользящих средних.

Переменные otkr_AO и zakr_AO отвечают за разрешение открытия и закрытия сделок на основе индикатора AO, а переменные otkr_AC и zakr_AC отвечают за разрешение открытия или закрытия сделок по индикатору AC.

Переменные otkr_Dema и zakr_Dema отвечают за включение или отключение индикатора Демарка, а переменная DeMa_period позволяет изменять его период.

Переменные StopLoss и TakeProfit позволяют задавать в пунктах размер стоп приказа и профит, а переменная Lts0 отвечает за объем позиции. Благодаря переменной IK можно настроить множитель лота, который используется при активизации мартингейла.

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

Не умеете программировать? Создавайте советники в конструкторе! Это просто и быстро… Конструктор Форекс советников SMFX предназначен для быстрого проектирования роботов, без знаний программирования! Он хорошо зарекомендовал себя с самого начала своего существования, еще в 2013 году. Позволяет писать любые торговые стратегии построенные на сеточных алгоритмах, стратегии с использованием мартингейла, антимартингейла, новостные системы, а так же стратегии с использованием индикаторов.

Все созданные стратегии можно сохранять в set файлы и использовать в автоматической торговле на реальных счетах. Продавая конструктор все эти годы, мы не оставили без внимания все Ваши пожелания и комментарии по улучшению его работы! С каждым годом мы значительно улучшаем конструктор, добавляя в него новые полезные функции и сейчас перед Вами самая свежая и совершенная версия - Strategy Master FX 2017! Не пропустите!

Основные характеристики:
Советники создаваемые в конструкторе, могут работать с любым стартовым депозитом, у любого брокера, на любом типе счета, с любым кредитным плечом. Более того, в конструкторе есть магик номер, что позволяет использовать сделанную тактику сразу на неограниченом количестве торговых инструментов.

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

Видео инструкция

На что способен конструктор?


    • Создание советников с выставлением более 42 ордеров.
      Вы можете создавать стратегии с использованием 40 отложенных ордеров всех типов (buylinit, buystop, selllimit, sellstop) + 2 рыночных с любым шагом задаваемым для каждого ордера в отдельности. Для каждого ордера Вы можете выставить шаг, стоп лосс, тейк профит и лот, причем все эти параметры настраиваются индивидуально для всех выставляемых ордеров.
    • Невидимые стоп лоссы и тейк профиты.
      При проектировании робота Вы можете задать как видимый стоп лосс и тейк профит для каждого ордера, так и невидимый общий тейк профит и стоп лосс для всех ордеров стратегии. Это позволяет спрятать Ваши стоп лоссы и тейк профиты от брокера и тем самым исключить возможность их намеренного сбития.
    • Безубыток невидимка.
      Для сохранения прибыли и ее защиты при проектировании роботов Вы можете использовать безубыток - невидимку, который прописывается в валюте депозита и имеет 2 настройки. В первой задается сумма при которой сработает БУ, во второй прописывается профит, который нужно защитить. Тем самым при откате создаваемый робот закроет сделки в плюсе забрав защищенный профит.
    • Невидимый для брокера трейлинг стоп.
      В Ваших стратегиях Вы можете использовать встроенный в конструктор невидимый для брокера трейлинг стоп. Это позволит вам тестировать стратегии, получая больше профита на рывках рынка! Учтите так же тот факт, что при использовании трейлинг стопа, для взятия минимального профита, необходимо пройти расстояние вдвое больше, что не всегда удобно, например, в пипсующих и скальпинг стратегиях!
    • Торговля по времени.
      В конструкторе можно задавать любое время торговли в диапазоне от 0 - до 23.00, на каждый день недели. Создаваемый советник строго начнет работу в указанный час старта, а при указанном часе стопа доведет все уже открытые сделки до конца и только тогда прекратит торговлю, продолжив ее в указанный день и час…
    • Полный контроль всего происходящего на Вашем экране.
      В конструкторе советников Strategy Master FX, при разработке и тестировании робота вы сможете видеть все важные показатели хода торговли на Вашем экране. Это позволяет быть всегда вкурсе всего происходящего. Среди информации вы увидите название стратегии, текущий баланс, эквити, просадку, прибыль в текущий момент как в долларах так и в % от депозита, прибыль за все время работы робота, количество выставленных на данный момент ордеров BUY, SELL, BUYSTOP, SELLSTOP, BUYLIMIT, SELLLIMIT. А так же текущую дату и время сервера по которому советник входит в рынок и прекращает торговлю (при настройках с указанием времени). Полную информацию о безубытке, а так же о локировании в случае возникновения лока. Всю выводимую графику можно как включать так и выключать и настраивать.
    • Полное управление звуковыми настройками.
      При разработке экспертов Вы можете задавать звуковые сигналы при появлении новых ордеров (срабатывании отложенных), при достижении ценой общего тейк профита, а так же стоп лосса. Все звуковые сигналы Вы можете менять на любые звуки, или мелодии. Для этого следует закинуть нужную мелодию в формате wav в папку sounds Вашего терминала и прописать название мелодии в конструкторе советников (подробности в файле настроек).
    • Вы сможете писать стратегии самостоятельно не заказывая их у программистов.
      Используя данный конструктор советников Вы сможете конструировать, создавать, тестировать и торговать роботами собственной разработки. Это избавит Вас от затрат на заказ советников у программистов, а так же даст 100% конфиденциальность Ваших торговых систем. Напоминаем, что конструктор способен писать безиндикаторные торговые системы, что бы встроить индикатор обратитесь к нам через форму заказа советников.
    • Все стратегии написанные в Strategy Master FX можно сохранять в файл SET.
      После того, как Вы напишете стратегию Вы всегда можете сохранить ее в специальный файл SET как показано на скрине. Для реальной торговли просто установите конструктор советников на график любой валютной пары и загрузите в настройках Ваш файл SET с любимой стратегией разработанной в нем. Советник сразу же начнет работать…
    • Высокая скорость создания экспертов и их тестирования и оптимизации!
      Данный конструктор идеально подходит как начинающим трейдерам, которые только ищут свою систему успеха, так и трейдерам профи, которые постоянно имеют в своем багаже идеи, которые очень хочется проверить в реальном времени. Большим плюсом является то, что написать стратегию в конструкторе может абсолютно каждый трейдер! Простота и легкость в создании экспертов делают его доступным каждому. Более того, стратегии созданные в нем можно сразу же протестировать за большой промежуток времени, что очень сильно экономит Ваше время на реальные тесты! Если робот сливает по истории за несколько лет в тестере стратегий, то нет никакого смысла тестировать его в реальном времени! Слив будет однозначным! Если же стратегия будет показывать отличные результаты за несколько лет - это повод заняться роботом вплотную!
В конструкторе можно создавать:

    • Скальпирующие и пипсующие стратегии - Возможности конструктора позволяют создавать стратегии с ордерами имеющими небольшой тейк профит и стоп лосс. Ордера могут быть как рыночными так и отложенными. Вы можете располагать ордера для скальпинга на нужном расстоянии от текущей цены, а так же руководить их индивидуальными настройками.
    • Сеточные стратегии любой сложности - Выставление большого количества ордеров одновременно позволяет создавать сетки с бай стоп, селл стоп, бай лимит и селл лимит ордерами играя лотами, шагом, тейк профитом и стоп лоссом всех этих ордеров. Примеры получаемых стратегий Вы можете просмотреть ниже.
    • Мартингейловые стратегии - В данном конструкторе Вы можете создавать любые мартингейловые тактики. При этом вы можете задать лот каждого ордера из 40, чего Вам не сможет дать ни один уже готовый мартингейловый робот. Тем самым можно подобрать тактику, которая будет выдерживать любые испытания рынка и улучшить ее изменяя шаг между ордерами, который так же можно задать индивидуально для каждого ордера, значительно уменьшив тем самым общую просадку при торговле создаваемым роботом!
    • Антимартингейловые системы - Антимартингейловые тактики в последнее время набирают огромную популярность среди трейдеров. Их суть заключается в формировании сетки с увеличивающимся лотом по направлению движения. (зеркально мартингейловым стратегиям). Такие системы способны давать просто ошеломляющие результаты при выходе новостей, либо при безоткатном движении по сформированному тренду. Данный конструктор дает возможность создавать антимартингейловых роботов любой сложности!
    • Стратегии с подстраховочными ордерами - В можете создавать роботов с подстраховочными ордерами. Например выставляющие 3-4 ордера селл и бай лимит по обе стороны от текущей цены, после чего идут несколько стоп ордеров, которые ориентированы на резкое движение цены и закрытие сделок по общему профиту. Так же это стратегии чередующие ордера. Например бай лимит - селл стоп / бай лимит - селл стоп / бай лимит - селл стоп через заданный шаг и тд…
    • Локирующие стратегии - Конструктор Strategy Master FX дает отличную возможность создавать и тестировать локирующие стратегии, которые блокируют просадку при определенном стечении обстоятельств. Локирующие ордера так же можно выставлять в любом нужном месте торговой системы. При срабатывании лока (если общий лот ордеров бай сравняется с лотом ордеров селл) советник выдаст сообщение о том, что сработал ЛОК.
    • Новостные стратегии - В любой создаваемой стратегии можно выставлять время начала ее работы и время завершения. Это позволяет создавать отличных новостных роботов с использованием сеток, мартингейла, авнтимартингейла и локирования. Возможности здесь ограничиваются лишь Вашими идеями и фантазией!
Продажник Цена 15 $ Нужен будет этап 2

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

Хотя в названии бесплатной версии и есть слово 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 .

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


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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

Бары нумеруются от настоящего к прошлому. Текущий бар, который еще не сформирован, имеет номер 0 . Номер 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 и тем же названием, что и файл исходного кода.

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

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


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

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

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

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

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

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

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

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


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


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

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

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

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


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


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


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

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


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


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

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


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


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

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


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

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

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


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


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

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

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

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

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

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

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

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

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


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


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

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

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


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

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

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

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


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

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


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

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


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

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


Заключение

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

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

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

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