treeofprosperityinternational

Prosperity
With
Purpose

написать советник Школа Каратэ

Это выражение — проверка факта, является ли цена закрытия бара 1 (предыдущий завершенный бар) больше, чем значение скользящей средней MA-8 того же периода (периода бара 1). Если цена закрытия выше, значит второе наше условие выполняется. Если оба этих условий не выполнены, в принципе не имеет смысла проверять следующие. Затем, при помощи функции CopyRates мы копируем информацию последних трех баров в массив типа MqlRates. Функция CopyRates используется для получения исторических данных по указанному символу, периоду и запрашиваемому количеству данных, которые затем помещаются  в массив типа MqlRates.

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

Разработка торгового советника с нуля

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

написать советник

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

  • Итак, я советую вам выбрать именно C++ за его сходство с mql.
  • Способ использования частичных ордеров я оставляю на усмотрение читателя.
  • Главное — понимать структуру самих приказов и знать функции для отправки этих приказов, а также для получения нужных для торговли данных.
  • Многих вещей вы просто не поймете, либо будете допускать ненужные ошибки, которые подчас обходятся очень дорого.
  • При запуске функции OnTick(), произойдет остановка работы советника, он остановится в точку останова 1.

Это очень опасно, и трудно предсказать, когда это произойдет, но как программисты мы должны это предвидеть и создавать механизмы для минимизации ущерба. Точно так же, в разделе выше, мы объявили переменные типа bool для каждого из условий, которые должны удовлетворяться для помещения ордера на продажу. Поэтому торговая стратегия для продажи также состоит из четырех условий. Если условие выполняется, соответствующая переменная устанавливается в TRUE, иначе FALSE. Начиная с текущего бара (0), мы копируем также еще два бара. Таким образом, полное количество баров равно 3 (бары 0-й,1-й и 2-й).

MQL5: Как написать советник на основе индикатора

Да, с MetaTrader 5 вы можете очень детально контролировать все совершаемые операции. Однако если размещать ордера напрямую с помощью системы MetaTrader 5, у менее опытных пользователей могут возникнуть ошибки и даже финансовые потери. А если вы хотите торговать фьючерсными контрактами, где на отправку ордера есть очень мало времени, работа может превратиться в кошмар. Нужно правильно заполнять все поля, а за это время можно упустить хорошую возможность. Если же поторопиться, то можно вообще теряем деньги, если что-то заполнено неправильно. Для того, чтобы реализовать это, сначала объявим две переменные типа boolean (Buy_opened и Sell_opened), которые будут установлены в TRUE в случае наличия соответствующих открытых позиций.

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

При создании советника использовался подход ООП (объектно-ориентированного программирования), который позволяет изолировать код, облегчая его обслуживание и возможное добавление нового функционала в будущем. Полученный в результате советник пока не является безупречным или завершенным, многие улучшения еще предстоит сделать для его использования в реальной торговле. Мы успешно написали и протестировали наш советник на истории и теперь имеем заготовку для дальнейшей работы. Можно опять вернуться во вкладку «Настройки» Тестера стратегий и протестировать его на другом временном интервале. Если используется оптимизация параметров при тестировании, нужно указать значения переменных, выделенных на рис.

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

Здесь для имени символа мы использовали предопределенную переменную _Symbol. Следует отметить, что это можно сделать однократно в функции инициализации советника. Тем не менее, для последовательности изложения я решил рассмотреть этот вопрос здесь. В нашем случае переменная mresult объявлена как структура тип MqlTradeResult. Функция удаляет хэндл индикатора и освобождает расчетную часть индикатора, если ею больше никто не пользуется.

Массив buffer в параметре функции CopyBuffer, это массив, куда будут помещены данные. В нашем случае это динамические массивы adxVal, plsDI, minDI и maVal. Этот тип переменной является локальной переменной, в отличие от переменных, декларированных в разделе входных параметров нашего кода. В примере 12 я привожу минимальный код советника, использующего класс CiMA. Этот советник просто выводит в комментарии значение скользящей средней на первой свече. Все без исключения изменения в торговле — будь то немедленная покупка или изменение цены Stop Loss — происходят с помощью торговых приказов.

MQL4 Программирование. Как самому написать советник / индикатор / скрипт

Функция OnDeinit вызывается при удалении советника с графика. Для лучшего понимания, рассмотрим отдельно различные секции кода. Как видно, мы выбрали тип integer (int) для всех параметров. В нашем советнике нам нужно иметь возможность изменять Stop Loss, Take Profit, ADX Period and Moving Average Period, так что укажем их здесь.

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

  • Как видно, это значения, которые были установлены в Мастере MQL5 на рис.
  • В зависимости от того, как написан ваш код, могут возникать ошибки времени выполнения (runtime errors).
  • Все это вопрос творчества и потребностей каждого отдельного пользователя.
  • Большая часть кода, отвечающего за реализацию нашей торговой стратегии будет содержаться в данной функции.

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

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

Leave a Comment

Your email address will not be published. Required fields are marked *