Учебник по MQL4
Приводятся несколько примеров простых программ, готовых для практического использования. В разделе рассматриваются общие принципы построения простого эксперта и простого пользовательского индикатора, а также порядок совместного использования эксперта и различных индикаторов. В разделе подробно рассматривается порядок проведения торговых операций и приводится достаточно примеров, поясняющих назначение всех торговых функций, с помощью которых формируются различные торговые приказы. На одном графике могут работать максимум по одному эксперту и скрипту и неограниченное количество индикаторов. При повторном запуске клиентского терминала скрипты не запускаются, так как информация о них не сохраняется. Все разделы содержат примеры программ, готовых к использованию, но имеющих ограниченную область применения. Краткий справочник содержит разбитые на категории функции, операции, зарезервированные слова, другие конструкции языка и позволяет узнать описание каждого используемого элемента, входящего в язык. Имена переменных не могут иметь спецсимволы и точки. Результат возврата из функций init() и OnInit() никак не анализируется исполняющей подсистемой Однако из-за сложности внутреннего представления данных с плавающей точкой они обрабатывается дольше, чем целочисленные. Для того чтобы mql4-программа могла работать, она должна быть скомпилирована (кнопка “Компилировать” или клавиша F7). Результат возврата из функции init() никак не анализируется исполняющей подсистемой Так как изменений оказалось достаточно много, то для обеспечения максимальной совместимости со старым подходом к написанию программ MQL4 было решено ввести новое свойство #property strict. Изменилась также работа с функциями, областью видимости переменных и освобождением памяти в локальных массивах. Для функций FileWrite(), FileWriteArray(), FileWriteDouble(), FileWriteInteger() и FileWriteString() изменен тип возвращаемого значения с int на uint. Чтобы понять, какую роль эти программы играют в практикеуправления торговлей, рассмотрим рис. Прежде всего отметим, что обсуждаемые в учебнике программымогут использоваться только как прикладные программы для работы в клиентскомтерминале MetaTrader 4. Он позволяет не только писать разнообразные экспертные системы, предназначенные для работы в режиме реального времени, но и создавать собственные графические инструменты, помогающие принимать торговые решения. Настоящее учебное пособие представляет собой вводный курс, освоив который, можно самостоятельно создавать эксперты, скрипты и индикаторы, воплощая в них свои идеи – алгоритмы прибыльной торговли. Теперь трейдер может реализовать свои идеи в виде прикладной программы – самостоятельно написать пользовательский индикатор, скрипт для выполнения разовых операций или создать советник – автоматическую торговую систему (торговый робот). MetaTester — тестер торговых стратегий, предназначенный для проверки и оптимизации торговых роботов перед началом их использования в реальной торговле. Введение в программирование на языке MQL4 Если клиентский терминал отключён от Интернета или запущенная в нём прикладная программа (эксперт или скрипт) по каким-то причинам не генерирует управляющие воздействия, то на сервере ничего происходить не будет. Технический анализ рынка и управление торговлей в клиентском терминале MetaTrader4 могут также осуществляться с помощью программных средств. Для анализа рынка могутприменяться технические индикаторы и различные линейные инструменты – линии поддержки/сопротивления,трендовые каналы, уровни Фибоначчи и др. Если вы интересуетесь программированием на MQL4, вы, вероятнее всего, уже знакомы с клиентскимтерминалом. Благодаря расширению числа встроенных основных типов, взаимодействие исполняемых программ на MQL4 с другими приложениями посредством dll максимально облегчено. Язык MetaQuotes Language 4 Локальные массивы освобождаются при выходе grand capital group обзор работы компании из функции Локальные массивы при выходе из функции не освобождаются Из локальных переменных неявно инициализируются только строки Неявная инициализация всех переменных (и глобальных и локальных) нулями Область видимости переменной – от объявления (даже во вложенном блоке) до конца функции Имена переменных теперь не могут содержать спецсимволы и точки, а также именами не могут быть новые ключевые слова языка MQL4. Приступая к изучению программирования на языке MQL4, необходимо обозначить общиеграницы наших интересов. MQL4 основан на концепции широко распространенного языка программирования С++, в нем присутствуют перечисления, структуры, классы и обработка событий. Составление прикладных программ для торгового терминала MetaTrader 4 требует знания языка MQL4. Использование встроенного языка программирования MQL4 выводит трейдеров на качественно новый уровень торговли – автотрейдинг. Скоростной, гибкий и мощный язык программирования торговых роботов При компиляции библиотек в режиме strict для каждой экспортируемой функции необходимо добавлять модификатор export. Для совместимости со старыми MQL4 программами сохранился и старый формат вызова, но теперь производится реальное копирование данных в массив типа double. Вы можете писать свои программы как и раньше, если вам не нужны новые возможности. ООП позволяет писать программы с использованием классов, что облегчает отладку и разработку больших программ, позволяет многократно использовать наработки благодаря наследованию. Добавлены новые типы данных char, short, long, uchar, ushort, uint, ulong и double. Стандартная библиотека из MQL5 портирована и в MQL4, что предоставило для разработчиков программ новые возможности по созданию собственных графических интерфейсов и торговых библиотек. MetaEditor — встроенный в MetaTrader 4 многофункциональный редактор для создания торговых программ, от самых простых до самых сложных. В состав торговой платформы MetaTrader 4 входит MQL4 IDE — среда разработки и использования программ алгоритмического трейдинга. В конце каждогопараграфа приводится полный список функций определённой категории и их краткоеописание. Некоторыефункции, требующие подробных пояснений, рассмотрены в предыдущих разделах. Сервер позволяет лишь обрабатывать приказы, поступающие со стороны клиентского терминала. Режим совместного использования нужно указывать явно с помощью FILE_SHARE_READ и/или FILE_SHARE_WRITE Благодаря своей скорости и гибкости этот язык позволяет создавать очень сложные торговые программы с большим объемом вычислений и детально контролировать практически все параметры экспертов и индикаторов. Несовершенство кода простых программ затрудняет возможность дальнейшего их наращивания с целью получения большего сервиса. Настоящее учебное пособие представляет собой вводный курс, освоив который, можно самостоятельно создавать эксперты, скрипты и индикаторы, воплощая в них свои идеи – алгоритмы прибыльной торговли. Из локальных переменных неявно инициализируются только строки Изменения в языке MQL4 Кроме того, в язык MQL4 добавлены новые графические объекты и новые функции по работе с графиками. Поэтому мы решили перенести в него максимум функций и возможностей языка MQL5, полностью сохраняя функционал MQL4. В подавляющем большинстве случаев программа позволяет существенно облегчить труд трейдера, избавив его от необходимости непрерывно в течение длительного сроканаходиться возле монитора для наблюдения за развитием рынка. Мы также детально рассмотрим примеры программ и параметры информационной среды клиентского терминала, доступные программе во время её исполнения. Круг наших интересов будут составлять программы (эксперты, скрипты и пользовательские индикаторы), позволяющие вести механизированную или полностью автоматизированную торговлю и значительно расширяющие информационное сопровождение торговли (см. рис. 1). Основы языка MQL4 Для этого мы разработали единый компилятор, который автоматически поддерживает оба языка MQL4 и MQL5. В представленном учебнике будет рассказано, из чего состоит программа, каковы основные правила составления и использования программ. Прикладные программы и ручные средства управления могут