Справка по 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, предназначенных для всех, кто хочет освоить создание торговых роботов и приложений для алгоритмической торговли. В этих книгах представлено систематическое и структурированное изложение материала, что существенно облегчает процесс изучения MQL5. Подробные примеры кода, шаг за шагом разъясняющие создание торговых роботов и приложений, позволяют глубже понять и освоить тонкости алготрейдинга.

"Программирование на MQL5 для трейдеров" — самый полный и детальный учебник по MQL5, подходит программистам любого уровня. Новички познакомятся с основами: изучат инструменты разработки и базовые понятия в программировании. Создадут первую программу, скомпилируют и запустят ее в торговой платформе MetaTrader 5. Пользователи с опытом программирования на других языках могут сразу же перейти к прикладной части: возможностям MQL5 для создания торговых роботов и аналитических приложений.

"Нейросети в алготрейдинге на MQL5" — учебное пособие по использованию методов машинного обучения при создании торговых роботов в платформе MetaTrader 5. Вы последовательно познакомитесь с основами нейросетей и возможностями их применения в алготрейдинге. По мере продвижения вы создадите и обучите собственный искусственный интеллект, постепенно дополняя его новыми функциями. Помимо изучения MQL5, вы научитесь писать программы на Python и OpenCL, а также узнаете о встроенных методах матриц и векторов, которые позволяют решать сложные математические задачи с помощью лаконичного и быстрого кода.

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

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

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

Статьи по программированию на MQL4/MQL5

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

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

Советники

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

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

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

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

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

Скрипты

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

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

Сервисы

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

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

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

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

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

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

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

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

Мастер MQL5 сгенерирует шаблон приложения

В полученном шаблоне напишем код 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) не отображаются в окне "Навигатор" торговой платформы.