- MQL4: Пишем один советник сразу для MT4 и MT5
- Заключение
- Как самому создать советника или индикатор
- Встроенный язык программирования торговых стратегий MQL5 #
- Редактор для разработки торговых приложений MetaEditor #
- Статьи по разработке торговых приложений #
- Какие бывают типы приложений на MQL5 #
- Советники
- Пользовательские индикаторы
- Скрипты
- Сервисы
- Как создать и запустить торговое приложение #
- Как изменить торговое приложение #
- Как завершить работу торгового приложения #
- Как запустить скачанный файл исходного кода MQ5 #
- MQL5: Пишем советник на Мартингейле
- Домашнее задание
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.
Домашнее задание
- С целью минимизации убытка добавьте в советник StopLoss.
- Добавьте в советник ограничение на время торговли. К примеру, эксперт открывает позиции в ночное время, а в дневное только пытается выйти из просадки методом усреднения.
- Предлагаю изменить условия входа в рынок и воспользоваться индикаторомBollindger Bands. Входить в продажи, когда цена пересекает верхнюю границу канала и в покупки при пересечении ценой нижней границы канала.
И кто знает, быть может в совокупности этих доработок и удастся получить стабильную прибыльную систему 😉
Источник