Что ж, попробуем проверить как себя покажет советник по этой тривиальной торговой системе. Так как этот урок по созданию советника mql4 является вторым по счету, то особо мудрить с торговой системой мы не будем и обратимся к классике. Советник циклом перебирает все открытые ордера, чтобы провести их подсчет, а также модифицировать те ордера, у которых по какой-либо причине нет выставленных целей.
В этот раздел входят значения различных индикаторов (RSI, Stochastic, MACD или любых других), классические графические паттерны, время и другие условия работы. После выделения ордера идет стандартная проверка на то, чтобы он был рыночным, его символ совпадал с текущим, как и магик номер соответствовал магику вашего советника. Именно так – на основании входных данных StrategyQuant сгенерирует большое количество вариантов помощников, которые после создания пройдут через фильтр эффективности, установленный трейдером. Функцию для открытия ордера мы рассматривали на прошлом уроке, поэтому останавливаться на ней подробно нет смысла. Представленная последовательность действий схематически показывает процесс работы кода будущего советника.
В прошлом примере советника мы не учти возможность того, что сервер нам может не позволить модифицировать уже открытый ордер по какой-либо внутренней ошибке. Перебор идет только по рыночным ордерам (выделяется по MODE_TRADES), начиная от максимального количества открытых ордеров OrdersTotal() в сторону уменьшения. Из новых переменных у нас появится bool переключатель для закрытия существующего ордера при появлении противоположного сигнала индикатора, а также настройки скользящей средней. После того, как все вышеуказанные данные будут внесены в программу, необходимо установить фильтры, по которым будет определена степень эффективности отбираемых стратегий.
- Соответственно на первом тике ордер открывается, а на втором уже модифицируется.
- В прошлом примере советника мы не учти возможность того, что сервер нам может не позволить модифицировать уже открытый ордер по какой-либо внутренней ошибке.
- Выбор таймфрейма для торговли – одна из проблем, с которой на начальном этапе сталкивается каждый трейдер.
- Эта программа предназначена для того, чтобы дать возможность трейдерам, незнакомым с языком программирования MQL4, создавать собственных торговых помощников для терминала MetaTrader 4.
- В данном случае этот цикл нам нужно только как дополнительная мера на случай, если с первого раза у советника не получится закрыть рыночный ордер.
- Эти значения будут импортироваться в отдельные переменные.
Это размер торгового лота, проскальзывание, СЛ, ТП, комментарий и магик номер. Начнем с включения библиотеки ошибок и объявления внешних переменных, необходимых для открытия ордеров. Плюс при наступлении флета она дает очень большое количество ложных сигналов.
Ведь когда помощник пишется вручную, необходимо заранее чётко продумывать каждый, даже самый малозначительный параметр будущей программы. Готовый советник может быть сохранён на как написать советник для mt4 любом этапе его создания в формате mql4. Она позволяет выбирать параметры, значения и другие условия, от которых будет зависеть алгоритм введения заявок.
Как сделать своего Торгового Робота – Конструктор StrategyQuant
Если он успешно выставлен, то происходит проверка параметра CloseOppositeOrder — разрешение закрывать ордер в противоположном направлении после открытия текущего. Мы получили два значения по быстрой МАшке и два по медленной на и свечах. Просто прописываете ее название в коде и нажимаете клавишу F1. Хорошая новость в том, что вам нет необходимости их все хранить в голове. Для получения данных МА на свече мы создадим переменную дробного типа (поскольку значение МА хранятся в цене) и воспользуемся функцией iMA.
Как работает StrategyQuant
Суть урока — научиться использовать сигналы классических индикаторов в торговой системе. Давайте же попробуем модифицировать уже изученный код и добавим условие входа по пересечению двух скользящих средних (МА) разного периода. Выбор таймфрейма для торговли – одна из проблем, с которой на начальном этапе сталкивается каждый трейдер.
Также программа позволяет включать в помощника нестандартные индикаторы, в том числе созданные самостоятельно, если они написаны на языке MQL4. Для начала необходимо выбрать основные правила, по которым будет функционировать будущий помощник. Серьёзным положительным моментом является возможность сразу же протестировать полученную стратегию на исторических данных, что позволяет предварительно определять её жизнеспособность перед переносом на реальный счёт. Эта программа предназначена для того, чтобы дать возможность трейдерам, незнакомым с языком программирования MQL4, создавать собственных торговых помощников для терминала MetaTrader 4. Однако для большинства трейдеров это так и оставалось мечтой, поскольку для самостоятельного создания таких алгоритмов необходимо владеть навыками программирования, а работа сторонних исполнителей стоит достаточно дорого. Для отправки комментария вам необходимо авторизоваться.
8 Пишем пользовательский индикатор-гистограмму волатильности периода Н1
На этом уроке мы продолжим изучать теорию создания торговых советников.
- Получение данных индикатора и проверка условий для входа в рынок будут происходить один раз в момент открытия новой свечи.
- Все материалы на сайте носят исключительно информационный характер и не являются указанием к действию.
- Импорт данных индикатора выполняется с помощью всего одной функции.
- Если он успешно выставлен, то происходит проверка параметра CloseOppositeOrder — разрешение закрывать ордер в противоположном направлении после открытия текущего.
Сколько нужно денег, чтобы торговать на Форекс
Также стоит заметить, что торговля по показателям всего одного технического индикатора не рекомендуется никому. Да и вообще вы должны понимать, что из всей выборки 211 прогонов этот просто лучше всего подстроился под историю и показал наибольший профит фактор. Как видно по графику доходности, данный пример показал себя лучше по сравнению с предыдущим нашим советником. Выберем лучший вариант основываясь на прибыли и максимальной просадке.
1 Библиотека для расчета мани менеджмента советников
Если вы спрашиваете себя, зачем вначале модифицировать ордера, а уже после только отрывать, то тут все логично. Если у ордера нет ТП или СЛ, то идет его расчет в зависимости от внешних значений и происходит модификация с последующим принтом об успешности операции. Соответственно, переменная cnt_b будет хранить в себе актуальное количество открытых ордеров на покупку, а cnt_s на продажу. Сначала мы активируем цикл for, который будет подсчитывать и модифицировать уже открытые ордера.
Опыт работы с API Binance. Хотите автоматизировать Вашу торговлю? Вы несёте полную ответственность за принятые в ходе работы торговые решения. Все материалы на сайте носят исключительно информационный характер и не являются указанием к действию. Далее же вы можете пробовать и экспериментировать с этим кодом, менять существующие условия, добавлять дополнительные и т.д.
▶️ Запуск советника
Для этого поставим советник на быструю оптимизации с генетическим алгоритмом по Профит Фактору. Мы видим, что он вначале открывает, а потом модифицирует ордер. Комментарии дадут лучше понять то, что делает советник.
Магики должны совпадать друг с другом и тип ордера должен быть противоположный тому, что был только что открыт. Функция для поиска и закрытия противоположного ордера представляет собой простой цикл по всем рыночным ордерам. Теперь нам остается создать две пользовательские функции вне OnTick() для открытия текущего и закрытия противоположного ордера, а именно OpenTrade() и CloseTrade().
Из него понравившиеся помощники могут быть отправлены в «Реестр стратегий», после чего появится возможность снова выставить условия для новых фильтров отбора и протестировать их на реальных исторических значениях. В данном случае этот цикл нам нужно только как дополнительная мера на случай, если с первого раза у советника не получится закрыть рыночный ордер. Если все эти условия соблюдены, запускается второй цикл из трех попыток на закрытие ордера. Получение данных индикатора и проверка условий для входа в рынок будут происходить один раз в момент открытия новой свечи. Поэтому в этой версии советника мы вводим проверку на наличие целей у ордеров каждый тик.
📋 Системные требования для работы с торговыми роботами
Множество трейдеров, торгующих на финансовом рынке, хотя бы раз в жизни задумывались о том, что было бы неплохо иметь собственную программу-советника, которая бы помогала получать стабильную прибыль. Есть необходимость написать или доработать советник, скрипт или индикатор для торговой платформы MT4 или MT5? Во-первых, данный тест шел четыре года, а сделок всего 118, что очень мало. Также нужно посмотреть, как ведет себя функция принудительного закрытия противоположного ордера в журнале. Не получилось — советник делает паузу в 3 секунды и обновляет данные в предопределенных переменных и массивах-таймсериях, далее пробудет закрыться снова.
Если условие соблюдено, то активируется функция открытия рыночного ордера. То есть для получения данных индикатора ATR есть функция iATR, для Cтохастика это iStochastic, ну и для скользящей средней соответственно iMA. Название функций для работы с техническими индикаторами начинаются на букву i. Притом для классических индикаторов в редакторе Meta Editor уже предусмотрено порядка 37 функций для удобства импорта их данных. Импорт данных индикатора выполняется с помощью всего одной функции. Соответственно нам нет никакого смысла каждый тик узнавать значение скользящих средних и тормозить тем самым работу советника.