Основы языка MQL4
Описываются такие понятия, как «тик» (изменение цены), «управление» в алгоритме, «комментарий» в программе. Главное событие при торговле на финансовых рынках — изменение цены. Поэтому тик является важным событием, которое запускает основные механизмы работы MQL4-программ. Что делать по приходу каждого нового тика, какие действия предпринимать — здесь уже на первый план выходит управление. Но не забывайте комментировать свой код.
Вводятся понятия константы и переменной, объясняется разница между ними. Как следует из названия, константа — это нечто неизменное, раз и навсегда заданное. В отличие от константы, переменная — это некоторый объект программного кода, который может изменять свое содержимое. Невозможно написать программу, не используя неизменные объекты (константы) и/или изменяемые в процессе работы программы объекты (переменные).
В любом языке программирования используются определенные типы данных. Тип переменной выбирается исходя из ее назначения. Как объявить переменную, как инициализировать (задать начальное значение)? Неправильный выбор типа для переменной может впоследствии затруднить работу программы или даже привести к ошибочным действиям.
Операции производят действия над операндами. Какие существуют виды операций, для чего требуется приведение типов, каковы особенности операций с целыми числами? Почему нужно помнить о приоритете одного типа данных над другим? Не зная особенностей некоторых операций, можно сделать неочевидные ошибки.
Операторы, простые и составные. Не всегда необходимое действие можно выполнить одним простым оператором. Если требуется, чтобы группа операторов выполнялась как один большой оператор, то эту группу заключают в один составной оператор. Требования и примеры использования.
Необходимость получения понятного и простого кода приводит нас к понятию Функция. Для того чтобы функцию можно было использовать из разных мест программы, требуется передать ей Параметры функции. Рассмотрим процесс создания пользовательской функции. Приводятся примеры использования стандартных функций.
Что нового в MQL5
В MQL5 вся логика программы строится на обработке событий – с помощью функций-обработчиков событий можно писать торговые алгоритмы, создавать пользовательский интерфейс, собирать и визуализировать результаты оптимизации. При этом количество событий увеличилось, и наиболее важными для алготрейдинга являются следующие пять:
- NewTick – возникает при поступлении новых котировок и обрабатывается в советниках функцией OnTick()
- Calculate – создается только для индикаторов при любом изменении ценовых данных и обрабатывается функцией OnCalculate()
- Trade – генерируется при завершении торговой операции на торговом сервере и обрабатывается функцией OnTrade()
- TradeTransaction – отправлется торговым сервером в терминал при изменениях на торговом счете и обрабатывается функцией OnTradeTransaction()
- BookEvent – сообщает об изменениях стакана цен и обрабатывается функцией OnBookEvent().
Разработчики торговых роботов оценят возможности нового тестера, которые описаны в статьях и документации. Среди наиболее интересных отметим следующие преимущества:
- Автоматическая загрузка истории и синхронизация баров по всем таймфреймам – вся необходимая для тестирования история скачивается терминалом автоматически.
- Использование реальных тиков при тестировании – теперь проверить свою торговлю на истории можно максимально точно. Эмуляция поступления тиков по всем символам.
- Мультивалютное тестирование позволяет создавать стратегии, которые торгуют на нескольких инструментах. При этом корректно синхронизируются тики и бары по всем символам, точно моделируется торговое окружение, включая спреды, маржинальные требования и расчет прибыли в нужной валюте депозита.
- Функции OnTimer() и Sleep() корректно работают в тестере и позволяют провести их отладку.
- Мультипоточный тестер используют все вычислительные ядра процессора и позволяет провести оптимизацию на тысячах агентах из MQL5 Cloud Network.
Программирование на алгоритмическом языке
В настоящее время персональный компьютер стал незаменимым помощником в жизни каждого человека. Благодаря развитию Интернета и увеличению мощности современных компьютеров открылись новые возможности во многих областях деятельности. Ещё десять лет назад торговля на финансовых рынках была доступна только банкам и узкому кругу специалистов. Сегодня любой желающий может приобщиться к миру профессиональных трейдеров и самостоятельно осуществлять торговлю.
Торговый терминал MetaTrader 4 по достоинству оценили сотни тысяч трейдеров во всем мире. Использование встроенного языка программирования MQL4 выводит трейдеров на качественно новый уровень торговли — автотрейдинг. Теперь трейдер может реализовать свои идеи в виде прикладной программы — самостоятельно написать пользовательский индикатор, скрипт для выполнения разовых операций или создать советник — автоматическую торговую систему (торговый робот). Советник может работать круглосуточно без постороннего вмешательства — отслеживать все изменения цен финансовых инструментов, отправлять сообщения по электронной почте, SMS-сообщения на мобильный телефон, а также выполнять множество других полезных действий.
Основным достоинством прикладных программ является возможность совершать торговые операции в соответствии с алгоритмом, заданным трейдером по своему усмотрению. Любые идеи, которые возможно изложить на языке алгоритмов (пересечение двух скользящих средних или цифровая обработка сигналов, три экрана Элдера или фрактальный анализ Петерса, нейронная сеть или геометрические построения), можно заложить в прикладную программу и затем использовать её в практической торговле.
Составление прикладных программ для торгового терминала MetaTrader 4 требует знания языка MQL4. Настоящее учебное пособие представляет собой вводный курс, освоив который, можно самостоятельно создавать эксперты, скрипты и индикаторы, воплощая в них свои идеи — алгоритмы прибыльной торговли. Учебник рассчитан на широкий круг читателей, не имеющих навыков программирования и желающих научиться самостоятельно создавать прикладные программы для автоматического трейдинга с использованием клиентского терминала MetaTrader 4. Методически учебник составлен так, чтобы сделать обучение языку MQL4 максимально удобным и последовательным.
Язык MetaQuotes Language 4
Скоростной, гибкий и мощный язык программирования торговых роботов
MetaQuotes Language 4 (MQL4) — встроенный язык программирования торговых стратегий, позволяющий создавать торговых роботов, технические индикаторы, скрипты и библиотеки функций для торговой платформы MetaTrader 4. Все эти инструменты серьезно расширяют возможности трейдеров при торговле на Форексе.
MetaQuotes Language 4 основан на концепции широко распространенного языка программирования С++. MQL4 также является языком объектно-ориентированного программирования высокого уровня. Благодаря своей скорости и гибкости этот язык позволяет создавать очень сложные торговые программы с большим объемом вычислений и детально контролировать практически все параметры экспертов и индикаторов.
В состав MQL4 включено большое количество функций, необходимых для анализа текущих и пришедших ранее котировок, встроены основные индикаторы и функции по управлению торговыми ордерами и контролю над ними.
С помощью MQL4 вы можете разрабатывать различные программы для анализа рынка и автоматического трейдинга:
- Торговый робот, или советник (Expert Advisor), с помощью которого отпадает необходимость торговать и анализировать рынок самому. Автоматическая программа сделает за вас всю сложную работу.
- Пользовательский индикатор (Custom Indicator) — такой же аналитический инструмент, как и встроенный в платформу, предназначенный лишь для анализа торговой ситуации на рынке. Создайте свой технический индикатор и заложите в него абсолютно любой алгоритм.
- Скрипт (Script) — с помощью этой программы выполняются относительно простые одноразовые, но частые действия. Например, удаление всех объектов с графика, закрытие всех ордеров или, наоборот, выставление набора отложенных ордеров для открытой позиции.
- Библиотека — библиотека пользовательских функций, где хранятся и распространяются часто используемые блоки пользовательских программ.
MetaQuotes разрабатывает программное обеспечение и не предоставляет инвестиционных или брокерских услуг
Язык MQL4
В клиентский терминал встроен язык программирования торговых стратегий MetaQuotes Language 4 (MQL4). Он позволяет писать собственные советники, автоматизирующие управление торговыми процессами и идеально подходящие для реализации собственных торговых стратегий. Кроме того, на MQL4 можно создавать собственные пользовательские индикаторы, скрипты и библиотеки функций.
Синтаксис MQL4 очень похож на синтаксис языка Си, он прост в изучении и использовании. В состав MQL4 включено большое количество функций, необходимых для анализа котировок, управления позициями, вызова технических индикаторов и других. Для написания исходного текста программ используется редактор советников MetaEditor. В редактор встроен словарь MetaQuotes Language Dictionary, содержащий описания всех конструкций языка и функций.
Программы, написанные на MQL4, имеют различные свойства и предназначение:
- Советник — это механическая торговая система (МТС), запускающаяся с приходом нового тика. Он может не только работать в режиме информирования о торговых сигналах, но также самостоятельно совершать торговые операции. Терминал поддерживает тестирование стратегий на исторических данных, что позволяет выявить особенности поведения советника в различных рыночных условиях;
- Пользовательский индикатор — самостоятельно написанный технический индикатор. Пользовательские индикаторы используются только для анализа динамики цен;
- Скрипт — программы, предназначенные для одноразового выполнения каких-либо действий. В отличие от экспертов, скрипты запускаются не потиково, а по команде.