- Основы языка
- Константы, перечисления и структуры
- Программы MQL5
- Предопределенные переменные
- Общие функции
- Операции с массивами
- Методы матриц и векторов
- Преобразование данных
- Математические функции
- Строковые функции
- Дата и время
- Информация о счете
- Проверка состояния
- Обработка событий
- Получение рыночной информации
- Экономический календарь
- Доступ к таймсериям и индикаторам
- Пользовательские символы
- Операции с графиками
- Торговые функции
- Управление сигналами
- Сетевые функции
- Глобальные переменные терминала
- Файловые операции
- Пользовательские индикаторы
- Графические объекты
- Технические индикаторы
- Работа с результатами оптимизации
- Работа с событиями
- Работа с OpenCL
- Работа с базами данных
- Работа с DirectX
- Python интеграция
- ONNX модели
- Стандартная библиотека
- Переход с MQL4
- Список функций языка MQL5
- Список констант языка MQL5
Справочник MQL5
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан компанией MetaQuotes для собственной торгово-информационной платформы. Синтаксис языка максимально близок к С++ и позволяет писать программы в стиле объектно-ориентированного программирования (ООП).
Для написания программ на MQL5 в составе торговой платформы предоставляется среда разработки MetaEditor со всеми современными инструментами для написания кода, включающими в себя шаблоны, сниппеты, отладку, профилировку, автозавершение и встроенное версионное хранилище MQL5 Storage.
Поддержка и развитие языка осуществляется на сайте MQL5.community, где находится обширная библиотека бесплатных кодов и множество статей. Эти статьи охватывают все темы современного трейдинга: нейронные сети, статистика и анализ, высокочастотная торговля, арбитраж, тестирование и оптимизация торговых стратегий, использование роботов для автоматизации торговли и многое другое.
Трейдеры и разработчики MQL5-программ могут общаться на форуме, проводить заказы во Фрилансе, покупать и продавать защищенные программы в Маркете – магазине готовых приложений для автотрейдинга.
Язык MQL5 содержит специализированные торговые функции и предопределенные обработчики событий для написания советников (Expert Advisors). Советники автоматически управляют торговыми процессами на основе заложенных в них торговых правил. Также на MQL5 можно создавать собственные технические индикаторы (Custom Indicators), скрипты (Scripts) и библиотеки функций (Libraries).
Справочник MQL5 содержит разбитые на категории функции, операции, зарезервированные слова, другие конструкции языка и позволяет узнать описание каждого используемого элемента, входящего в состав языка. Также в справочнике приведено описание классов из состава Стандартной библиотеки для создания торговых стратегий, панелей управления, пользовательской графики и работы с файлами.
Отдельно от справочника в CodeBase опубликована библиотека численного анализа ALGLIB, которая позволяет решать множество математических задач.
Виды приложений в MQL5
Для выполнения конкретных задач по автоматизации торговых операций MQL5-программы разделены на пять специализированных типов:
- Советник — автоматическая торговая система, имеющая привязку к определенному графику. Советник содержит в себе функции-обработчики предопределенных событий, при наступлении которых выполняются соответствующие элементы торговой стратегии. Примеры таких событий – инициализация и деинициализация программы, приход нового тика, срабатывание таймера, изменение в стакане цен, события графика и пользовательские события.
Советник может не только вычислять торговые сигналы по заложенным правилам, но и автоматически совершать сделки на торговом счете, направляя их прямо на торговый сервер. Советники хранятся в директории <каталог_терминала>\MQL5\Experts. - Пользовательский индикатор — это технический индикатор, написанный пользователем в дополнение к индикаторам, уже интегрированным в торговую платформу. Пользовательские индикаторы, также как и встроенные, не могут автоматически торговать и предназначены только для реализации аналитических функций. Пользовательские индикаторы могут использовать в своих расчетах значения других индикаторв, а также сами могут вызываться в советниках.
Пользовательские индикаторы хранятся в директории <каталог_терминала>\MQL5\Indicators. - Скрипт — программа, предназначенная для одноразового выполнения каких-либо действий. В отличие от экспертов, скрипты не обрабатывают никаких событий, кроме события запуска. Для работы скрипта в его коде обязательно должна быть функция-обработчик OnStart. Скрипты хранятся в директории <каталог_терминала>\MQL5\Scripts.
- Сервис — программа, которая в отличие от индикаторов, советников и скриптов для своей работы не требует привязки к графику. Как и скрипты, сервисы не обрабатывают никаких событий, кроме события запуска. Для запуска сервиса в его коде обязательно должна быть функция-обработчик OnStart. Сервисы не принимают никаких других событий кроме Start, но могут сами отправлять графикам пользовательские события с помощью EventChartCustom. Сервисы хранятся в директории <каталог_терминала>\MQL5\Services.
- Библиотека — библиотека пользовательских функций, предназначенная для хранения и распространения часто используемых блоков пользовательских программ. Библиотеки не могут самостоятельно запускаться на выполнение.
Библиотеки хранятся в директории <каталог_терминала>\MQL5\Libraries - Включаемый файл — исходный текст часто используемых блоков пользовательских программ. Такие файлы могут включаться в исходные тексты экспертов, скриптов, пользовательских индикаторов и библиотек на этапе компиляции. Использование включаемых файлов более предпочтительно, чем использование библиотек, из-за дополнительных накладных расходов при вызове библиотечных функций.
Включаемые файлы могут находиться в той же директории, что и исходный файл, в этом случае используется директива #include с двойными кавычками. Другое место хранения включаемых файлов – в директории <каталог_терминала>\MQL5\Include, в этом случае используется директива #include с угловыми скобками.
© 2000-2023, MetaQuotes Ltd