MetaQuotes Language 5: основы программирования для трейдеров
ИТ-специалист в финансовой индустрии может зарабатывать до 600–800 $ за день работы. Чаще всего разработка ведётся на таких языках, как C++, С# и Java, однако есть и «специализированный» язык — MetaQuotes Language 5, позволяющий создавать торговых роботов, технические индикаторы, скрипты и библиотеки функций для торговой платформы MetaTrader.
Немного истории
MetaQuotes Language 5 (MQL5) — это специализированный С++-подобный язык объектно-ориентированного программирования высокого уровня, на котором создаются торговые приложения для платформы MetaTrader 5, используемой для маржинальной торговли на рынках Forex, CFD и Futures. Основное его отличие от «классических» языков программирования — специализация на решении задач трейдеров: от автоматизированной торговли до детальной аналитики.
Как монетизировать знания MetaQuotes Language 5?
Вариантов очень много: можно продавать аналитические данные или давать консультации, можно использовать разработанную программу самостоятельно. Применить её можно на различных финансовых рынках: валютном рынке (Forex), рынке ценных бумаг, срочном рынке. Рынок Forex характеризуется огромной ликвидностью, большим количеством инструментов и позволяет торговать 24 часа в сутки и 5 дней в неделю. Именно поэтому на этом рынке многие трейдеры стараются применять автоматические торговые стратегии, ведь невозможно контролировать ситацию круглые сутки.
Также язык позволяет создавать торговых роботов самого разного уровня, распорядиться которыми можно на свое усмотрение.
- Продажа робота клиенту: можно найти клиента, интересующегося торговыми роботами, показать отчёты торговли или тестирования (каждый решает сам) и продать его;
- Доверительное управление: если вы уверены в своем алгоритме, робота можно не продавать, а сдавать в аренду;
- Участие в конкурсах брокеров. У вас есть робот, которому вы не готовы доверить на реальные деньги, но при этом есть вероятность, что он покажет хороший результат? Многие брокеры проводят конкурсы на демосчетах: кто заработал больше всех за отведённый период, тот и забирает банк.
Как это выглядит?
Синтаксис языка максимально близок к С++ и позволяет писать программы в стиле объектно-ориентированного программирования (ООП). Для написания программ на MQL5 в составе торговой платформы предоставляется среда разработки MetaEditor со всеми современными инструментами для написания кода, включая шаблоны, сниппеты, отладку, профилировку, автозавершение и встроенное версионное хранилище MQL5 Storage.
Основные возможности
Минимальные знания языка помогут автоматизировать работу трейдера по самым разным параметрам — MQL5 позволяет реализовать практически любые торговые идеи и техники, к примеру, основанные на моделях нечеткой логики (Fuzzy Logic), глубоких нейросетей (DNN), классических моделях прогнозирования временных рядов.
Для выполнения конкретных задач по автоматизации торговых операций MQL5-программы разделены на несколько специализированных типов.
Советник — автоматическая торговая система, имеющая привязку к определённому графику. Советник содержит в себе функции-обработчики предопределенных событий, при наступлении которых выполняются соответствующие элементы торговой стратегии. Примеры таких событий: инициализация и деинициализация программы, приход нового «тика», срабатывание таймера, изменение в «стакане» цен, события графика и пользовательские события. Советник может не только вычислять торговые сигналы по заложенным правилам, но и автоматически совершать сделки на торговом счете, направляя их прямо на торговый сервер.
Пользовательский индикатор — это технический индикатор, написанный пользователем в дополнение к индикаторам, уже интегрированным в торговую платформу. Пользовательские индикаторы, так же как и встроенные, не могут автоматически торговать и предназначены только для реализации аналитических функций. Пользовательские индикаторы могут использовать в своих расчетах значения других индикаторов, а также сами могут вызываться в советниках.
Скрипт — программа, предназначенная для одноразового выполнения каких-либо действий. В отличие от экспертов, скрипты не обрабатывают никаких событий, кроме событий запуска, инициализации и деинициализации.
Библиотека — библиотека пользовательских функций, предназначенная для хранения и распространения часто используемых блоков пользовательских программ. Библиотеки не могут самостоятельно запускаться на выполнение.
Включаемый файл — исходный текст часто используемых блоков пользовательских программ. Такие файлы могут включаться в исходные тексты экспертов, скриптов, пользовательских индикаторов и библиотек на этапе компиляции. Использование включаемых файлов более предпочтительно, чем использование библиотек, из-за дополнительных накладных расходов при вызове библиотечных функций.
Поддержку и развитие языка осуществляют на сайте MQL5.community, где находится обширная библиотека бесплатных кодов и множество статей.
Материал подготовлен при поддержке компании Альпари.