Как написать советника для mt5 своими руками

MQL4: Пишем один советник сразу для MT4 и MT5

Приветствую вас, друзья!

Многие из вас наверняка уже не раз сталкивались с таким неудобством: написали советник на языке mql4, а потом захотелось попробовать поиграться с ним в MetaTrader 5. Переписывать заново весь код – довольно кропотливое и долгое занятие, к тому же приходится сначала разобраться с работой уже имеющегося. Писать два разных советника отдельно для MT4 и для MT5 – тоже накладно по времени. Именно эту задачу мы с вами сегодня и решим в новом видео уроке.

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

К счастью, MetaEditor поддерживает директивы условной компиляции препроцессора. И сегодня мы на очень простом примере рассмотрим, как это делается.

В коде для МТ5 будем заменять переменные из MQL4 c помощью директивы #define:

В шапке советника поместим входные переменные:

Теперь можно написать методы для покупки и продажи:

Метод для продажи подобен методу buy(). Над стратегией в данном примере думать особо не будем, получим условие на открытие случайным образом и поместим этот код в OnTick():

Заключение

Вот и все. Теперь можно компилировать код в MetaEditor 4 и в терминале MetaTrader 4 он будет работать. Можно скомпилировать советник в MetaEditor 5 и он будет нормально работать в терминале MetaTrader 5. При всем при этом для смены терминала не нужно переписывать ни строчки кода – все будет нормально компилироваться и работать.

Источник

Как самому создать советника или индикатор

Для разработки торговых систем в платформу встроен собственный язык программирования MetaQuotes Language 5 (MQL5), среда разработки MetaEditor и инструменты тестирования стратегий.

Любую информацию о разработке торговых стратегий на языке MQL5 можно найти на официальном сайте MQL5.community. На этом же сайте в разделе Code Base могут быть найдены примеры готовых приложений.

Встроенный язык программирования торговых стратегий MQL5 #

В торговую платформу встроен язык программирования торговых стратегий MetaQuotes Language 5. Это — пятое поколение языков MQL. Он позволяет писать советники, автоматизирующие управление торговыми процессами, и реализовывать собственные торговые стратегии. Кроме того, на MQL5 можно создавать пользовательские индикаторы, скрипты и библиотеки функций.

Читайте также:  Автомобильный тестер свечей зажигания своими руками

Особенности языка MQL5:

  • Объектная ориентированность;
  • Синтаксис MQL5 похож на синтаксис языка C++;
  • Большое количество функций, необходимых для анализа котировок, управления позициями, вызова технических индикаторов и других;
  • Высокая производительность;
  • Высокий уровень защиты от декомпиляции: новые, сложные алгоритмы шифрования, проверка целостности файлов и сложность самого языка;
  • Поддержка OpenCL, что позволяет использовать видеокарты для выполнения вычисления в MQL5-программах;
  • Интегрированная среда разработки программ MetaEditor, включающая отладчик.

Подробное описание всех конструкций языка и функций приведено в справочнике MQL5. Также всю интересующую информацию о MQL5 можно найти на сайте сообщества разработчиков https://www.mql5.com.

Редактор для разработки торговых приложений MetaEditor #

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

  • Мастер MQL5 для создания шаблонов и готовых торговых роботов
    В MetaEditor встроен Мастер MQL5, который помогает быстро создавать MQL5-программы. Благодаря Мастеру MQL5, трейдер может создать советники, не обладая знаниями в области программирования. Все что нужно сделать — это выбрать торговые сигналы, которые будет использовать советник, алгоритм мани-менеджмента и трейлинг стопа. Код советника будет сгенерирован автоматически на основе выбранных параметров.
    Помимо этого, Мастер MQL5 позволяет создавать шаблоны MQL5-программ, что облегчает работу программиста.
  • Помощь при работе с исходным кодом
    MetaEditor распознает различные конструкции языка: выдает подсказки по использованию функций и подсвечивает различные элементы кода программы. Таким образом, сам редактор облегчает ориентирование в коде торговых программ и ускоряет их разработку.
  • Отладка для поиска ошибок
    MetaEditor позволяет осуществлять отладку программ, что значительно облегчает поиск ошибок. Можно пошагово выполнять исходный код и следить за значениями переменных.
  • Профилирование для оптимизации кода
    В редакторе также доступна возможность профилирования. Вы сможете выявить наиболее медленные функции в исходном коде и максимально оптимизировать работу торговых программ.
  • Статьи о программировании и библиотека исходных кодов
    Прямо в редакторе вы можете найти множество обучающий статей о программировании на MQL5. Помимо этого имеется доступ к огромной библиотеке бесплатных программ для автотрейдинга в виде исходных кодов.
  • MQL5 Storage — онлайн хранилище с поддержкой версионности
    Хранилище предоставляет множество преимуществ: безопасное хранение файлов и возможность восстановления при выходе вашего компьютера из строя, доступ к своим кода с любого компьютера при помощи аккаунта MQL5.community, возможность совместной работы над проектами.

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

Статьи по разработке торговых приложений #

На сайте MQL5.community доступна обширная библиотека статей по программированию на MQL4/MQL5. Статьи являются отличным справочным материалом по созданию программ, в них рассматривается множество практических задач по алготрейдингу. Новые статьи выходят каждую неделю.

Список всех доступных статей отображается прямо в MetaEditor. Чтобы найти интересующий материал, воспользуйтесь онлайн-поиском.

Какие бывают типы приложений на MQL5 #

Существует три основных типа торговых приложений.

Советники

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

Читайте также:  Выкуп своими руками это

Все советники хранятся в папке /MQL5/Experts торговой платформы.

Пользовательские индикаторы

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

Все индикаторы хранятся в папке /MQL5/Indicators торговой платформы.

Скрипты

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

Все скрипты хранятся в папке /MQL5/Scripts торговой платформы.

Сервисы

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

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

Все сервисы хранятся в папке /MQL5/Services торговой платформы.

Внутри папок Experts, Indicators, Scripts и Services программы могут быть рассортированы по подпапкам, при этом в окне «Навигатор» будет отображаться структура их размещения.

Как создать и запустить торговое приложение #

Нажмите » Создать в редакторе» в контекстном меню окна «Навигатор» в разделе «Советники», «Индикаторы» или «Скрипты». Также для запуска MetaEditor можно нажать F4.

После этого будет запущен MetaEditor, и в нем автоматически откроется «Мастер MQL5». Он позволит сгенерировать шаблон нужной программы, что быстро приступить к разработке. Для примера создадим простой скрипт, который будет выводить в журнал надпись «Hello world».

В полученном шаблоне напишем код Print ( «Hello World» ); и произведем компиляцию клавишей F7, чтобы получить исполняемый файл. Исполняемый файл имеет расширение EX5, именно такой файл может быть запущен в торговой платформе.

Результаты компиляции выводятся в журнал редактора.

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

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

Как изменить торговое приложение #

Чтобы приступить к редактированию торгового робота или пользовательского индикатора, нажмите » Изменить» в его контекстном меню в окне «Навигатор» или выделите его и нажмите «Enter». При этом будет открыт MetaEditor, в который уже будет загружен исходный код выбранного индикатора. После изменения индикатора скомпилируйте его повторно (F7), иначе в платформе будет использоваться предыдущая, неизмененная версия.

Как завершить работу торгового приложения #

Существует множество способов завершить работу торгового приложения в платформе.

Читайте также:  Как сделать армопояс по газобетону своими руками

Пользовательский технический индикатор

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

Как запустить скачанный файл исходного кода MQ5 #

Если у вас имеется только файл исходного кода (*.MQ5), поместить его в папку, соответствующую типу приложения:

  • Для советников — /MQL5/Experts
  • Для индикаторов — /MQL5/Indicators
  • Для скриптов — /MQL5/Scripts

Чтобы быстро перейти к папке хранения информации торговой платформы, нажмите » Открыть каталог данных» в меню «Файл».

Чтобы запустить файл в торговой платформе, скомпилируйте его в MetaEditor:

  • Откройте MetaEditor клавишей F4.
  • В MetaEditor в окне «Навигатор» откройте файл исходного кода двойным нажатием на нем левой кнопкой мыши.
  • Скомпилируйте его клавишей F7.

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

Исходные файлы (*.MQ5) не отображаются в окне «Навигатор» торговой платформы.

Источник

MQL5: Пишем советник на Мартингейле

Уважаемые коллеги, друзья форекс трейдеры, здравствуйте!

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

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

Домашнее задание

  1. С целью минимизации убытка добавьте в советник StopLoss.
  2. Добавьте в советник ограничение на время торговли. К примеру, эксперт открывает позиции в ночное время, а в дневное только пытается выйти из просадки методом усреднения.
  3. Предлагаю изменить условия входа в рынок и воспользоваться индикаторомBollindger Bands. Входить в продажи, когда цена пересекает верхнюю границу канала и в покупки при пересечении ценой нижней границы канала.

И кто знает, быть может в совокупности этих доработок и удастся получить стабильную прибыльную систему 😉

Источник

Оцените статью