Основы языка Справочник MQL4 | Сообщество HL-HEV |Все для Half-Life 1

Основы языка Справочник MQL4

Информация

Дата : 23.06.2021
Опубликовал :
nabeel466
Просмотров : 17
12345
Загрузка...
Поделиться :

программирование mql4 для чайников

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

программирование mql4 для чайников

Стандартная библиотека из MQL5 портирована и в MQL4, что предоставило для разработчиков программ новые возможности по созданию собственных графических интерфейсов и торговых библиотек. Теперь в MetaTrader 4 можно создавать полноценные приложения с использованием ресурсов. В состав MQL4 включено большое количество функций, необходимых для анализа текущих и пришедших ранее котировок, встроены основные индикаторы и функции по управлению торговыми ордерами и контролю над ними. Для написания кода программы используется текстовый редактор экспертов MetaEditor, выделяющий цветом различные конструкции языка MQL4, что позволяет пользователю лучше ориентироваться в тексте экспертной системы.

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

Основы языка

При обновлении автоматическая перекомпиляция старых EX4-файлы на новую версию не производится, пользователю предоставлена возможность самому решать какие исходные коды он хочет скомпилировать в новую версию EX4. Библиотеки EX4, скомпилированные новым компилятором,  могут вызываться только из программ EX4, также скомпилированных в новой версии. При обновлении терминала MetaTrader 4 с 509 билда на новую версию все файлы MQ4, MQH и EX4 из стандартных корневых папок старого местоположения автоматически копируются и раскладываются в соответствующие папки. Дополнительно созданные пользователем внутри стандартных папок дочерние папки с файлами никак не обрабатываются, их необходимо самостоятельно скопировать в новое место, если они необходимы.

Все операции по копированию файлов при обновлении записываются в Журнал терминала с указанием подробных путей. Строки теперь представлены в формате Unicode, раньше они были в формате ANSI (однобайтовые). Это необходимо учитывать, если программа использует DLL и передает в них строковые переменные. Все приведенные торговые критерии используются в учебных целях и не должны рассматриваться как руководство к действию при торговле на реальном счёте. Список зарезервированных слов расширен, поэтому именами не могут быть такие широко распространенные слова, как short, long, const и т.д. В данном разделе представлен один из возможных вариантов реализации торгующего эксперта, который может рассматриваться как основа для создания собственного проекта.

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

В разделе «Построение обычных программ» представлен пример программы, который может быть принят за основу обзор брокера MetaTrader5 forex при проектировании собственного обычного эксперта для использования в реальной торговле. Это означает, что при изменении значений в таймсерии (добавлении новых баров, перестройке, обновлении цены Close последнего бара), необходимо заново скопировать нужные данные в массив dest_array[][]. При этом массив-приемник будет автоматически распределен под требуемое количество копируемых баров, даже если он был объявлен статически. В старых программах MQL4 для надежности вы можете расставить круглые скобки для явного указания приоритета, если не уверены.

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

Простые программы на MQL4

Торговый терминал MetaTrader 4 по достоинству оценили сотни тысяч трейдеров во всем мире. Использование встроенного языка программирования MQL4 выводит трейдеров на качественно новый уровень торговли — автотрейдинг. Теперь трейдер может реализовать свои идеи в виде прикладной программы — самостоятельно написать пользовательский индикатор, скрипт для выполнения разовых операций или создать советник — автоматическую торговую систему (торговый робот). ООП позволяет писать программы с использованием классов,  что облегчает отладку и разработку больших программ, позволяет многократно использовать наработки благодаря наследованию. Но это не означает, что теперь нельзя писать на MQL4 в процедурном стиле, как это было раньше.

программирование mql4 для чайников

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

Поэтому мы решили перенести в него максимум функций и возможностей языка MQL5, полностью сохраняя функционал MQL4. То есть все мощные функции MQL5, включая ООП и компилятор в нативный код, станут доступны в MQL4. MetaQuotes Language 4 (MQL4) — встроенный язык программирования торговых стратегий, позволяющий создавать торговых роботов, технические индикаторы, скрипты и библиотеки функций для торговой платформы MetaTrader 4. Все эти инструменты серьезно расширяют возможности трейдеров при торговле на Форексе. Он позволяет не только писать разнообразные экспертные системы, предназначенные для работы в режиме реального времени, но и создавать собственные графические инструменты, помогающие принимать торговые решения.

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

В файловых операциях количество одновременно открытых файлов теперь может достигать 64, в старом MQL4 было не более 32. При этом раньше файлы всегда открывались в режиме FILE_SHARE_READ, FILE_SHARE_WRITE, теперь желательный режим открытия нужно указывать явно. Для совместимости со старыми MQL4 программами сохранился и старый формат вызова, но теперь производится реальное копирование данных в массив типа double. Всего в языке MQL4 насчитывается более 220 стандартных функций, кроме функций технических индикаторов.

Старые EX4 программы и DLL, основанные на старом формате RateInfo, работать в новом терминале не будут. Новый формат функции также производит виртуальное копирование, то есть реального копирования не происходит, а при обращении к скопированным значениям  происходит обращения прямо к ценовым данным. Краткий справочник содержит разбитые на категории функции, операции, зарезервированные слова, другие конструкции языка и позволяет узнать описание каждого используемого элемента, входящего в язык.

  1. Для совместимости со старыми MQL4 программами сохранился и старый формат вызова, но теперь производится реальное копирование данных в массив типа double.
  2. Однако из-за сложности внутреннего представления данных с плавающей точкой они обрабатывается дольше, чем целочисленные.
  3. MQL4 основан на концепции широко распространенного языка программирования С++, в нем присутствуют перечисления, структуры, классы и обработка событий.
  4. В состав MQL4 включено большое количество функций, необходимых для анализа текущих и пришедших ранее котировок, встроены основные индикаторы и функции по управлению торговыми ордерами и контролю над ними.

Представлено несколько готовых к использованию скриптов, ориентированных на узкую область применения. MetaQuotes Language 4 основан на концепции широко распространенного языка программирования С++. MQL4 также является языком объектно-ориентированного программирования высокого уровня. Благодаря своей скорости и гибкости этот язык позволяет создавать очень сложные торговые программы с большим объемом вычислений и детально контролировать практически все параметры экспертов и индикаторов. Предопределенные функции init(), deinit() и start() остались для совместимости, но вместо них теперь можно использовать OnInit(), OnDeinit(), OnStart(), OnCalculate(), OnTick(). Кроме того, добавились новые предопределенные функции-обработчики OnTimer(), OnChartEvent(), OnTester().

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


Поделиться

HTML code :
BB code :
MD5 :

Оставить комментарий

Вы должны быть авторизованы, чтобы разместить комментарий.