Программирование на MQL5 для трейдеров

Современный трейдинг немыслим без компьютера. Автоматизация рабочего процесса трейдера уже давно вышла за пределы бирж и офисов брокеров, став доступной обычным пользователям через специализированное программное обеспечение. Одним из первых таких программных решений был MetaTrader, который начал свою историю в начале 2000-х годов. Текущая версия торговой платформы – MetaTrader 5  – по-прежнему пополняется новыми функциями и возможностями.

Одним из ключевых элементов, который постоянно совершенствуется в MetaTrader 5, является встроенный язык программирования MQL5. Это позволяет трейдерам перейти на качественно новый уровень автоматизации торговли, известный как алготрейдинг. С помощью MQL5 трейдеры могут реализовать свои стратегии в виде прикладных программ: написать собственные индикаторы, скрипты для выполнения определенных операций или создать советник – автоматическую торговую систему. Советник может работать без присмотра, отслеживая изменения цен и отправляя уведомления по электронной почте или SMS.

Встроенный язык программирования позволяет воплотить в жизнь практически любую идею – от простых стратегий до сложных алгоритмов на основе нейронных сетей. Этот язык программирования объединяет в себе черты предметно-ориентированного и универсального языков программирования. За последние годы в него были добавлены различные расширения, такие как работа с 3D-графикой, параллельные расчеты на OpenCL, интеграция с Python и база данных SQLite.

Для полноценного использования всех возможностей MetaTrader 5 вам необходимо изучить язык программирования. Эта книга поможет вам освоить MQL5 и научиться создавать свои собственные прикладные программы для торговли.

Прежде всего, предполагается, что читатель уже знаком с MetaTrader 5 и умеет работать с терминалом. Также важно понимать основные принципы работы терминала в составе распределенной информационной системы, обеспечивающей торговлю. Руководство пользователя терминала содержит подробную информацию обо всех доступных функциях и возможностях.

Однако, MQL5 API предоставляет трейдерам возможности, которых нет в графическом интерфейсе MetaTrader 5. Это позволяет реализовывать сложные сценарии, автоматизируя многие аспекты работы с терминалом и повышая эффективность стратегий торговли.

Изложение материала разделено на 7 частей.

  • Часть 1 позволяет с нуля познакомиться с базовыми принципами программирования на MQL5 в обзорном режиме и попробовать в действии стандартную среду разработки для MQL5 — редактор и компилятор MetaEditor. Пользователям, имеющим опыт в программировании на других языках, стоит обратить внимание на особенности среды.
  • Часть 2 рассказывает об основных понятиях, таких как типы, инструкции, операторы, выражения, переменные, блоки кода, структура программ и их применении для написания программ в процедурном стиле. Пользователи, которые хорошо знают MQL4, могут пропустить эту часть и приступить к 3-ей части.
  • Часть 3 посвящена объектно-ориентированному программированию (ООП) на MQL5. Несмотря на схожесть с другими языками с поддержкой парадигмы ООП (в особенности с C++), MQL5 все же имеет отличительные черты, знания о которых пригодятся даже тем читателям, кто с ООП "на ты". Если хотите, MQL5 — это, своего рода C±±.
  • Часть 4 знакомит читателя с общеупотребительными встроенными функциями, которые пригодятся в любой программе.
  • Часть 5 описывает архитектурные особенности MQL-программ, их специализацию по типам для выполнения различных трейдерских задач, таких как технический анализ с помощью индикаторов, управление графиками и их разметка с наложением графических объектов, реакция на интерактивные действия и события с MQL-программами.
  • Часть 6 посвящена анализу торгового окружения и автоматизации торговли с помощью роботов. Здесь же представлено программное взаимодействие с тестером в различных режимах, включая оптимизацию стратегий.
  • Часть 7 содержит информацию о расширенном наборе специализированных API, облегчающих интеграцию MQL5 со смежными технологиями, такими как базы данных, обмен данными по сети, OpenCL, Python и других.

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

Большинство примеров MQL-программ из этой книги доступно в виде исходных кодов для установки в среду MetaEditor/MetaTrader 5 и проверки изложенного материала на практике.