Язык программирования MQL5

Основы языка программирования MQL5

MetaQuotes Language 5 (MQL5) — язык программирования приложений для автоматизации трейдинга, разработанный MetaQuotes Software Corp. Синтаксис языка MQL5 сходен с языком С++ с некоторыми исключениями.

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

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

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

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

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

 

Как использовать язык MQL5

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

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

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

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

Язык MQL5 позволяет создавать собственные модули для сборки торговых роботов посредством Мастера MQL5.

Программы на MQL5 создаются по событийной модели. Они реагируют на какое-либо событие, — изменение цены, реализацию ордера, изменение таймфрейма и других.

 

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

Язык MQL5 содержит все необходимые элементы для написания советников — Expert Advisors. В общих чертах пошагово это выглядит так. Запускаем MetaEditor через торговый интерфейс MT5 (рис. 1) (загружается на компьютер одновременно с торговым сервисом), например, кликнув на соответствующий значок или на клавишу F4 на клавиатуре. Появится, собственно, редактор (рис. 2):

Язык программирования MQL5

Рис. 1

Основы языка программирования MQL5

Рис. 2

В MetaEditor кликнем на кнопку «Создать» и появится соответствующее окно со списком тех приложений, которые можно создать в редакторе (рис. 3)

Как использовать язык MQL5
Рис. 3

В этом окне представляется на выбор «Советник (шаблон)» и «Советник (сгенерировать)». Выбираем и кликаем на кнопку «Далее». И в том, и в другом случае появится окно, в котором нужно сначала дать имя создаваемому советнику (рис. 4) и можно написать ссылку на свой сайт, электронную почту в поле «Имя»:

Как написать советника на MQL5
Рис. 4

В варианте с шаблоном, кликнув на кнопку «Добавить», нужно выбрать те параметры, которыми должен будет обладать советник (рис. 5). Выбранные параметры можно и удалить, кликнув на соответствующую кнопку.

MQL5 программирование для форекс

Рис. 5

Уже на этом этапе от трейдера требуется обладание устойчивыми навыками и программирования, и понимания трейдинга.

Выбрав параметр, нужно кликнуть «Далее», появится окно, в котором будет предложено выбрать обработчики событий для советника (рис. 6).

MQL5 форекс роботы и советники

Рис. 6

Продолжая создание советника, кликнув «Далее», надо будет выбрать ещё обработчики событий тестирования и нажать кнопку «Готово», после чего появится шаблон кода (рис. 7) с заданными трейдером параметрами.

Руководство по языку MQL5
Рис. 7

В шаблон кода вносятся дополнительные параметры в соответствии с правилами, которые указаны в подробном руководстве по языку MQL5.

Если после вызова мастера MQL выбрана функция «Советник (сгенерировать)», то далее поэтапно выбирается имя (в параметрах уже указаны символы и таймфрейм), добавляются параметры для сигналов, добавляются параметры трейдинга, параметры управления капиталом (рис. 8) и после нажатия кнопки «Готово» появится шаблон кода.

MQL5 программирование

Рис. 8

В редакторе есть также сервисы тестирования и отладки советника, работу которых нужно изучить в подробной инструкции по языку MQL5.

 

Сообщество трейдеров и форум

Все вопросы по освоению и применению MQL5 рассматриваются на страницах комьюнити. В частности, https://www.mql5.com/ru/forum — форум трейдеров, в котором можно найти ответы если не на все, то на подавляющее большинство вопросов.

Проблема в том, что форум очень большой и требуется время для того, чтобы найти нужную информацию. Вопросы от тех, кто только начинает освоение языка, рассматриваются по этому адресу: https://www.mql5.com/ru/forum/6343

Также на сайте MQL5 есть библиотека статей о языке по адресу: https://www.mql5.com/ru/articles

Но начинать изучение языка оптимально со справочника MQL5 — https://www.mql5.com/ru/docs

В сообществе MQL5 можно просто купить советника, попросить разработать робота или предложить своего советника на продажу.

 

Торговые сигналы при помощи советников, размещенных на сайте MQL5

На сайте MQL5 есть раздел сигналов для MetaTrader 5 для автоматической торговли https://www.mql5.com/ru/signals. Прежде всего нужно ознакомиться с правилами раздела.

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

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

Пользователь выбирает сигналы в соответствии с критериями максимальной прибыльности, надежности, рейтингом и так далее. Также он может выбрать новый сигнал.

Система также подбирает сигналы по требованиям пользователя для определенных форекс брокеров или ищет сигналы по их автору. Стоит отметить, что сервис указывает отказ от ответственности за работу сигналов (рис. 9) — трейдер подписывается на сигналы только на свой страх и риск.Торговые сигналы при помощи советников, размещенных на сайте MQL5

Рис. 9

 

Какого советника выбрать

MQL5.community предлагает обширный выбор советников и торговых роботов с исходными кодами: https://www.mql5.com/ru/code/mt5/experts. На сайте два раздела — советники, предназначенные для MetaTrader5 и советники, предназначенные для MetaTrader4. В сервисе можно также скачать индикаторы, скрипты и библиотеки.

Советник можно выбрать в соответствии с упрощенным рейтингом: справа от списка советников — два раздела: последние/лучшие. Лучшие выбираются по оценке пользователей. Кроме того, оценка роботов указывается справа от каждого из них звездочками от 1 до 5. Кстати, пользователь может добавить в список свой код для скачивания пользователями.

Но советника можно заказать и под свои требования, для этого есть фриланс-биржа: https://www.mql5.com/ru/job, или просто купить (или скачать бесплатно) в магазине торговых роботов: https://www.mql5.com/ru/market. Там же можно выставить робота на продажу.

При покупке советника лучше не ограничиваться оценкой пользователей, которая указана звездочками под каждым роботом, а поинтересоваться отзывами и, в целом, не лениться изучить особенности робота, — стоит ли он тех денег, за которые продается (многие роботы очень недешевы).

 

Полезные материалы

Материалов по программированию на языке MQL5 в интернете очень много. В том числе пошаговые подробные руководства по созданию советников и роботов от опытных программистов. Больше всего поясняющих и обучающих материалов представлено на самом сайте MQL5.

Довольно велик выбор книг по данной теме, в частности, «Учебник (справочник) по языку программирования MQL5» Т. Машнина (скачать бесплатно), есть бесплатные видеокурсы и многочисленные уроки энтузиастов на форумах трейдеров. Материалы предназначены не только для начинающих, но и для пользователей, которые хотят углубить свои знания.

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

Кстати, поскольку язык MQL5 близок языку C++, то многие опытные пользователи рекомендуют для начала почитать книги по C++, как, например, Bronson G.J. A First Book of C++, Девис Стефан Р. «C++ для чайников», Липпман С. «C++ для начинающих», Пахомов Б Н. «С/С++ и МS Visual C++ 2010 для начинающих» и другие — все эти книги без труда можно скачать в интернете. Освоение MQL5 особых трудностей не составит, — после освоения C++.

 

Выводы

Язык MQL5 — хорошо зарекомендовавший себя инструмент для написания трейдерских программ с огромными возможностями. При этом в интернете можно встретить заявления о том, что язык MQL5 — легкий в освоении и его можно освоить «с нуля» даже за месяц. Есть очень большие сомнения в подобных утверждениях.

Вероятно, можно выучить синтаксис за короткое время, но программировать, тем более сложные приложения, придется долго. А научиться программировать действительно ценные приложения — ещё дольше.

Также нужно отметить, что самым сложным и длительным вариантом является самостоятельное обучение программированию по книгами и видеокурсам без опытного программиста, который может подсказать важные моменты.

Другой вопрос, более важный, — нужно ли этому учиться? Обучение программированию может иметь смысл, если впоследствии предполагается разрабатывать и продавать те же торговые роботы и советники.

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


Выберите надежного брокера

БрокерБонусМин. депозитВыплатаОбзорОткрыть счет
FiNMAX2 вида бонусов$100До 90%ОбзорНачать
BinomoДо 100% на депозит$10До 90%ОбзорНачать
БинариумБонус до 100%$10До 85%ОбзорНачать

Отзывы