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

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

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

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

Примеры реализации

Легко увидеть, что структура программы userfunction.mq4
составлена в соответствии с обычным порядком
расположения функциональных блоков. Если же этот порядок изменить на другой допустимый порядок, то результат работы программы не изменится. Правом использования торговых функций обладают только эксперты и скрипты (и только в том случае, если включена соответствующая опция в настройках эксперта
или скрипта). Использование торговых функций в пользовательских индикаторах запрещено. Для совместимости со старыми MQL4 программами сохранился и старый формат вызова, но теперь производится реальное копирование данных в массив типа double.

  • MetaQuotes Language 4 (MQL4) – встроенный язык программирования индикаторов и торговых стратегий для бесплатного информационно-торгового терминала MetaTrader 4.
  • Например, один из экспертов может отдавать приказы на открытие, а другой – на закрытие ордеров, в результате чего может возникнуть длинная последовательность бесполезных торговых операций, результатом которой будет общий убыток.
  • Основным назначением индикаторов является отображение на экране линий заданных зависимостей.
  • Однако из-за сложности внутреннего представления данных с плавающей точкой они обрабатывается дольше, чем целочисленные.
  • Чем лучше
    вы освоите этот материал, тем проще вам будет учиться дальше.

Информационная среда обновляется с поступлением в терминал новых тиков (зелёная
стрелка на рис. 1). Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie. Есть и другие виды циклов,
но о них мы поговорим на следующем уроке. Сейчас вы должны уяснить,
когда нужно использовать циклы, и запомнить их синтаксис.

Встроенные или предопределённые массивы и переменные

Компиляция должна пройти без ошибок (допускаются предупреждения, которые необходимо проанализировать). При этом в соответствующей директории terminal_dir\MQL4\Experts, terminal_dir\MQL4\indicators или terminal_dir\MQL4\scripts должен быть создан выполняемый файл с тем же именем и расширением EX4. В разделе “Построение обычных программ” представлен пример программы, который может быть принят за основу при проектировании собственного обычного эксперта для использования в реальной торговле. Краткий справочник содержит разбитые на категории функции, операции, зарезервированные слова, другие конструкции языка и позволяет узнать описание каждого используемого элемента, входящего в язык. Перечитывайте текст, запоминайте, практикуйтесь
и вникайте в суть. Чем лучше
вы освоите этот материал, тем проще вам будет учиться дальше.

Где писать скрипты?

В разделе Некоторые основные понятия уже упоминалось, что программы запускаются на исполнение кратно тикам. Это утверждение справедливо в отношении экспертов и пользовательских индикаторов, но несправедливо в отношении скриптов. Скрипт – программа, составленная на языке https://alfaforex.broker-obzor.com/ и исполняемая клиентским терминалом однократно. Назначением скриптов является выполнение любых разрешённых операций, которые требуется выполнить только один раз.

Введение в программирование на языке MQL4

При создании новой программы MQL4 с помощью Мастера MQL4 это свойство всегда добавляется в шаблон. Кроме того, в язык MQL4 добавлены новые графические объекты и новые функции по работе с графиками. Стандартная библиотека из MQL5 портирована и в MQL4, что предоставило для разработчиков программ новые возможности по созданию собственных графических интерфейсов и торговых библиотек. Теперь в MetaTrader 4 можно создавать полноценные приложения с использованием ресурсов. Для того чтобы mql4-программа могла работать, она должна быть скомпилирована (кнопка “Компилировать” или клавиша F7).

Это необходимо учитывать, если программа использует DLL и передает в них строковые переменные. Для того чтобы эксперт прекратил свою работу, его необходимо удалить с графика. Для этого из контекстного меню графика следует выбрать “Список экспертов”, далее выбрать сответник из списка и нажать кнопку “Удалить”.

В разделе Выполнение программы рассматривался порядок исполнения специальных функций init() и deinit(). В данном
примере исполнение этих функций будет происходить так же, поэтому здесь нет необходимости
останавливаться на их работе. Рассмотрим исполнение специальной функции start()
и пользовательской функции My_Function(). Описание пользовательской функции расположено за пределами всех специальных функций,
как и должно быть. Вызов пользовательской функции указан в коде специальной функции start(),
что тоже верно.

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

Массивы

Существует также разница между порядком исполнения эксперта и индикатора при первом запуске программы. Эта разница определяется свойствами специальных функций программы определённого вида (см. Специальные функции). После присоединения к окну финансового инструмента эксперт выполняет подготовительные операции (функция init()) и переходит в режим ожидания тика для запуска функции start(). В отличие от экперта, индикатор не только выполняет функцию init(), но и однократно производит вызов функции start() для первого предварительного расчета значения индикатора. В дальнейшем при поступлении тика программа запускается вызовом только функции start(), то есть исполняются операторы в соответствии с алгоритмом функции start().

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

Share:

Add comment: