Ana Sayfa Форекс Брокеры Основы языка Учебник по MQL4

Основы языка Учебник по MQL4

0

Синтаксис языка MQL4 подобен синтаксису С++, и это позволяет легко переносить на него программы из современных языков программирования. Учебник рассчитан на широкий круг читателей, не имеющих навыков программирования и желающих научиться самостоятельно создавать прикладные программы для автоматического трейдинга с использованием клиентского терминала MetaTrader 4. MetaQuotes Language 4 (MQL4) – встроенный язык программирования индикаторов и торговых стратегий для бесплатного информационно-торгового терминала MetaTrader 4. Благодаря своей скорости и гибкости этот язык позволяет создавать очень сложные торговые программы с большим объемом вычислений и детально контролировать практически все параметры экспертов и индикаторов. Этот язык позволяет писать США. FOMC оставил ставку по федеральным фондам на уровне собственные программы-эксперты (Expert Advisors), автоматизирующие управление торговыми процессами и идеально подходящие для реализации собственных торговых стратегий. Как правило, после самостоятельного программирования нескольких простых прикладных программ на MQL4, программист переходит к более сложному проекту – созданию удобной программы для практического использования.

Результат возврата из функции init() никак не анализируется исполняющей подсистемой Так как изменений оказалось достаточно много, то для обеспечения максимальной совместимости со старым подходом к написанию программ MQL4 было решено ввести новое свойство #property strict. Изменилась также работа с функциями, областью видимости переменных и освобождением памяти в локальных массивах. Для функций FileWrite(), FileWriteArray(), FileWriteDouble(), FileWriteInteger() и FileWriteString() изменен тип возвращаемого значения с int на uint.

Имена переменных теперь не могут содержать спецсимволы и точки, а также именами не могут быть новые ключевые слова языка MQL4. Приступая к изучению программирования на языке MQL4, необходимо обозначить общиеграницы наших интересов. MQL4 основан на концепции широко распространенного языка программирования С++, в нем присутствуют перечисления, структуры, классы и обработка событий. Составление прикладных программ для торгового терминала MetaTrader 4 требует знания языка MQL4. Использование встроенного языка программирования MQL4 выводит трейдеров на качественно новый уровень торговли – автотрейдинг.

Скоростной, гибкий и мощный язык программирования торговых роботов

Сервер позволяет лишь обрабатывать приказы, поступающие со стороны клиентского терминала. 1 видно, что прикладная программа имеет те же средства доступа к информационной среде клиентского терминала, что и встроенные средства для ручной торговли (синие стрелки), а также может формировать управляющие воздействия (красные стрелки),сообщаемые в клиентский терминал. Для получения подробной информации о работе клиентского терминала необходимо обратитьсяк “Руководству пользователя” (каталог_терминала\Terminal_russian.chm). MQL4 также является языком объектно-ориентированного программирования высокого уровня. Все приложения для MetaTrader 4 пишутся на специализированном языке программирования MQL4. В данном разделе рассматриваются наиболее употребляемые стандартные функции, приводятся примеры их использования.

В файловых операциях количество одновременно открытых файлов теперь может достигать 64, в старом MQL4 было не более 32. Изменился формат хранения исторических данных RateInfo. При этом массив-приемник будет автоматически распределен под требуемое количество копируемых баров, даже если он был объявлен статически. Это означает, что при изменении значений в таймсерии (добавлении новых баров, перестройке, обновлении цены Close последнего бара), необходимо заново скопировать нужные данные в массив dest_array. Новый формат функции также производит виртуальное копирование, то есть реального копирования не происходит, а при обращении к скопированным значениям  происходит обращения прямо к ценовым данным.

Это позволит легко переносить коды из курсы валют цб рф рубль доллар евро гривна лира тенге юань других C++ подобных языков. Теперь в MetaTrader 4 можно создавать полноценные приложения с использованием ресурсов. Защита MQL4-программ поднимается на один уровень с MQL5, в новых EX4/EX5-файлах очень серьезная и полностью переработанная защита по сравнению со старым EX4. То есть все мощные функции MQL5, включая ООП и компилятор в нативный код, станут доступны в MQL4. Разработчики торговых роботов оценят возможности нового тестера, которые описаны в статьях и документации.

  • Результат возврата из функций init() и OnInit() никак не анализируется исполняющей подсистемой
  • Все разделы содержат примеры программ, готовых к использованию, но имеющих ограниченную область применения.
  • Краткий справочник содержит разбитые на категории функции, операции, зарезервированные слова, другие конструкции языка и позволяет узнать описание каждого используемого элемента, входящего в язык.
  • Имена переменных не могут иметь спецсимволы и точки.
  • Однако из-за сложности внутреннего представления данных с плавающей точкой они обрабатывается дольше, чем целочисленные.
  • Для того чтобы mql4-программа могла работать, она должна быть скомпилирована (кнопка “Компилировать” или клавиша F7).

Практическое программирование на языке MQL4

Для скриптов в окне входных параметров показываются имена extern переменных При создании новой программы MQL4 с помощью Мастера MQL4 это свойство всегда добавляется в шаблон. Данные функции возвращают количество записанных байт или 0 в случае ошибки (в старой версии MQL4 в случае ошибки возвращалось отрицательное число). Старые EX4 программы и DLL, основанные на старом формате RateInfo, работать в новом терминале не будут. Изменилось поведение функции ArrayCopyRates() — в старой версии MQL4 эта функция производила копирование ценовых серий в массив double. Приоритет операций теперь приведен к стандартам языка Cи.

  • В разделе подробно рассматривается порядок проведения торговых операций и приводится достаточно примеров, поясняющих назначение всех торговых функций, с помощью которых формируются различные торговые приказы.
  • Эксперты, пользовательские индикаторы и скрипты прикрепляются к одному из открытых графиков путем перетаскивания мышью из окна “Навигатор” клиентского терминала на соответствующий график (технология Drag’n’Drop).
  • Поэтому мы решили перенести в него максимум функций и возможностей языка MQL5, полностью сохраняя функционал MQL4.
  • То есть все мощные функции MQL5, включая ООП и компилятор в нативный код, станут доступны в MQL4.
  • Синтаксис языка MQL4 подобен синтаксису С++, и это позволяет легко переносить на него программы из современных языков программирования.

Старые программы на MQL4 можно будет прогнать через новый компилятор и легко исправить все такие ошибки по сообщениям компилятора. В старом MQL4 предопределенные функции могли иметь любые параметры и любой тип возврата, вызов этих функций осуществлялся не по сигнатуре, а по имени. Кроме того, добавились новые предопределенные функции-обработчики OnTimer(), OnChartEvent(), OnTester(). veles capital онлайн переписка компании и администрации видео В старых программах MQL4 рекомендуется делать явное приведение данных этого типа к целевому типу, чтобы избежать ошибки переполнения типа. Это необходимо учитывать, если программа использует DLL и передает в них строковые переменные.

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

Среда MQL4 IDE

Имена переменных не могут иметь спецсимволы и точки. Имена переменных практически любые (кроме зарезервированных слов), включая спецсимволы и точки Результат возврата из функций init() и OnInit() никак не анализируется исполняющей подсистемой

Основы языка MQL4

Режим совместного использования нужно указывать явно с помощью FILE_SHARE_READ и/или FILE_SHARE_WRITE Для этого в конце функции компилятором автоматически проставляется return(0) Для совместимости осталось копирование в массив double, но это копирование не виртуальное, а реальное. ArrayCopyRates() производит виртуальное копирование в массив double

Скрипты выполняются однократно и удаляются автоматически по завершению своей работы, либо по закрытию или изменению состояния текущего графика, либо по завершению работы клиентского терминала. Mql4-программы могут работать только при включенном клиентском терминале. Важно запомнить, что сейчас корневой папкой для редактора MetaEditor является папка \MQL4\, все программы должны находиться в правильных дочерних подпапках. Для скриптов в режиме show_inputs в окне входных параметров показываются строчные комментарии вместо имен extern- и input-переменных Для скриптов в режиме show_inputs в окне входных параметров показываются имена extern и input-переменных

Что нового в MQL4

MetaEditor — встроенный в MetaTrader 4 многофункциональный редактор для создания торговых программ, от самых простых до самых сложных. В состав торговой платформы MetaTrader 4 входит MQL4 IDE — среда разработки и использования программ алгоритмического трейдинга. В конце каждогопараграфа приводится полный список функций определённой категории и их краткоеописание. Некоторыефункции, требующие подробных пояснений, рассмотрены в предыдущих разделах.

Всего в языке MQL4 насчитывается более 220 стандартных функций, не считая функцийтехнических индикаторов. Функциональная ограниченность простых программ не позволяет в полной мере обеспечить трейдера необходимой информацией и средствами управления торговлей, что делает их применение недостаточно эффективным. Всего в языке MQL4 насчитывается более 220 стандартных функций, кроме функций технических индикаторов. После того как программист овладеет навыками программирования торговых операций, он может приступать к созданию простых программ.

При компиляции библиотек в режиме strict для каждой экспортируемой функции необходимо добавлять модификатор export. Для совместимости со старыми MQL4 программами сохранился и старый формат вызова, но теперь производится реальное копирование данных в массив типа double. Вы можете писать свои программы как и раньше, если вам не нужны новые возможности. ООП позволяет писать программы с использованием классов,  что облегчает отладку и разработку больших программ, позволяет многократно использовать наработки благодаря наследованию. Добавлены новые типы данных char, short, long, uchar, ushort, uint, ulong и double. Стандартная библиотека из MQL5 портирована и в MQL4, что предоставило для разработчиков программ новые возможности по созданию собственных графических интерфейсов и торговых библиотек.