Язык программирования 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 — легкий в освоении и его можно освоить «с нуля» даже за месяц. Есть очень большие сомнения в подобных утверждениях.

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

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

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

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

3.70 / 3
Оставить отзыв

Отзывы

  • Сайт MQL5 это развод. Пользуясь монополией, занимаются агрессивной рекламой, в последнее время появилась в терминале в правом верхнем углу на красном фоне единичка которая первое время бросалась в глаза и мешала работать так как для плодотворной работы в форекс нужно быть сосредоточенным на работе а не отвлекаться на разные рекламы. Уведомления о торгах и закрытиях рынка начали давать на английском языке, снова таки отвлекая от работы. Когда я высказал сомнения на форуме меня просто забанили до 2030 года не удостоившись написать причину бана. Кстати сказать что модератор кроме того что с не очень мягко говоря высоким интеллектом так еще и допускает грамматические ошибки и оскорбления. С так называемыми програмЁрами столкнулся лично когда изучал язык программирования. Задал вопрос почему не получается сделать так-то и так-то, на что мне дали готовый код. Когда я попросил пояснить почему так написан код а не так как я писал, ответ получил как прямой в челюсть, написали что бы пользовался тем кодом что дали. То есть программист сам не понимает в программировании ничего, а просто готовые коды берет и пишет совы, индюки и все остальное. Естественно что после таких программистов толком ничего не работает. Я не говорю за всех программистов, но большинство именно такие. По этому мораль такова. Прежде чем доверять написанному, а тем более купленному советнику нужно критически оценить предлагаемый продукт. В доказательство написанного выше прикрепляю скриншот моей странички на которой видно бан.

    Ответить на отзыв
  • видео, как мошенники с MQL5 подделывает статистику и разводят подписчиков. https://www.youtube.com/watch?v=h9bEzoivCLU&t=117s

    Ответить на отзыв
  • Mql5 — мошенники. сайт MQL5 — подделывает торговую историю торговых счет, торговые позиции, которые опубликованы в торговой истории на сайте MQL5 не соответствуют торговым позициям, которые в торговой платформе mt4. Сайт MQL5 может показывать на своем сайте только позиции с прибылью, а позиции с потерями, которые в торговой истории платформы, сайт MQL5 может не отображать. Отсюда получается идеальная ежемесячная торговая история, а после публикации, счет сгорает вместе с подписчиками в течение 1-2 месяца.
    Так же, просадка по счету публикуется только с момента регистрации счета на сайте MQL5, а не с торговой истории. если просадка по счету была 90%, сайт MQL5 не будет показывать это в торговой истории, а покажет просадку, со дня регистрации счета на сайте MQL5.
    Поэтому на сайте множество торговых счетов с максимальной просадкой 2-10%, а ежемесячная прибыль 100-250% в месяц. Сайт MQL5 не уведомляет об этом подписчиков, тем самым вводя трейдеров в заблуждение.За это, трейдеры, кто потерял свои деньги на сайте MQL5, копируя торговые сигналы, вправе требовать от сайта MQL5 возврата потерянных средств и компенсацию в судебном порядке.
    По поводу торговых роботов, это просто один и тот же алгоритм, которые открывает торговые позиции автоматически, наугад. Затем администрация сайт меняет название робота, загружает новое фото обложки, пишет в рекламе обновленный робот, а продает один и тот же алгоритм, которые открывает позиции наугад. Подумайте логически, если торговый робот продаваемый на сайте MQL5 может хорошо торговать, зачем сайту MQL5 продавать этого робота за 50-100$? Почему сайт MQL5 не занимается самостоятельной торговлей? Потому что этот робот взорвет ваш депозит в течение месяца.

    Ответить на отзыв
    • Константин 12 июля 2019 в 09:47

      Ну по поводу того что сайт продает экспертов, можно и поспорить. Они являются только площадкой через которую продают программы программисты. И за это с продажи снимается процент в пользу сервиса. А торговую историю могут править в ДЦ, и публиковать свои сигналы. Они так-же поделятся процентом с сервисом. А основную прибыль заберут себе.
      Так что не нужно рубить с плеча не разобравшись в суте вопроса.

    • Владимир Мосевнин 2 марта 2020 в 17:09

      ДАже если какой-то индикатор или советник работал идеально, можно абсолютно бесплатно погонять на исторических событиях и выяснить уровень доходности или просадки

Карта сайта