Статьи по алгоритмическому автоматическому трейдингу в MetaTrader 4 и программированию на языке MQL4
Обратите внимание, результатработы программы будет таким же, как и результат работы простого эксперта simple.mq4. Легко увидеть, что структура программы userfunction.mq4 составлена в соответствии с обычным порядком расположения функциональных блоков. Если же этот порядок изменить на другой допустимый порядок, то результат работы программы не изменится. При первом вызове пользовательской функции значение переменной Count равно нулю.В результате выполнения оператора Count++ значение переменной Count будет увеличенона единицу. Исполнив этот оператор (единственный и последний) пользовательскаяфункция заканчивает свою работу и передаёт управление в то место, откуда она былавызвана. Иногда функция, которую вам нужно использовать, уже скомпилирована в другом файле, таком как другой советник, файл библиотеки (.ex4) или файл Windows DLL (.dll).
- Мы указываем внешнюю переменную, добавляя extern перед переменной.
- Вы можете создавать индикаторы, скрипты, библиотеки и включать файлы с помощью мастера.
- Детали реализации могут быть недоступны для программы, которая использует данный тип.
- Однако специальные функции вызываются для исполнения клиентским терминалом в соответствии с их собственными свойствами, поэтому не имеет значения, в каком месте программы указано описание той или иной функции.
Глобальные переменные
В состав MQL4 включено большое количество функций, необходимых для анализа текущих и пришедших ранее котировок, встроены основные индикаторы и функции по управлению торговыми ордерами и контролю над ними. Для написания кода программы используется текстовый редактор экспертов MetaEditor, выделяющий цветом различные конструкции языка MQL4, что позволяет пользователю лучше ориентироваться в тексте экспертной системы. Предопределенные функции init(), deinit() и start() остались для совместимости, но вместо них теперь можно использовать OnInit(), OnDeinit(), OnStart(), OnCalculate(), OnTick(). Кроме того, добавились новые предопределенные функции-обработчики OnTimer(), OnChartEvent(), OnTester().
MetaTrader 4 на Mac OS
Представлено несколько готовых к использованию скриптов, ориентированных на узкую область применения. Поэтому мы решили перенести в него максимум функций и возможностей языка MQL5, полностью сохраняя функционал MQL4. То есть все мощные функции MQL5, включая ООП и компилятор в нативный код, станут доступны в MQL4. Вы хотите самостоятельно создавать и изменять под себя форекс индикаторы, советники и скрипты? В этом разделе вы найдете уроки по программированию на языке MQL4 автоматических систем, предназначенных для использования в торговом терминале MetaTrader 4. Обучение представлено в форме видео-уроков, причем к каждому уроку прилагается код, даются домашние задания, выполнив которые, вы сможете применить полученные знания на практике.
Другие предопределённые переменные и массивы
Язык MQL4 является С++ подобным, и в нем также реализован механизм инкапсуляции для реализации АТД. Инкапсуляция сочетает в себе, с одной стороны, внутренние детали реализации конкретного типа и, с другой, доступные извне функции, которые могут действовать на объекты этого типа. Детали реализации могут быть недоступны для программы, которая использует данный тип. Вышеприведённый код создаст четыре совершенно разных переменных.Также обратите внимание на то, что все ключевые слова языкаMQL4 пишутся строчными буквами.
Эти файлы содержат созданные пользователем функции, на которые есть ссылки в файле .mq4. Во время компиляции компилятор «включает» содержимое файла .mqh в файл .ex4. Файлы с расширением .mq4 являются файлами исходного кода. Торговый советник — это программа автоматической торговли, написанная на MQL.
Но, вероятно, главной причиной успеха MetaTrader является мощный язык программирования MQL. Процесс составления программ на MQL4 – это выполнение простой ипонятной работы. Например, водителю автомобиля необязательно уметьразбираться в устройстве двигателя, чтобы ездить на автомобиле, -достаточно научиться давить на педали и крутить руль. Вместе с тем,каждый водитель, прежде чем выехать на дорогу соживлённым движением, проходит обучение. Приблизительно то женеобходимо сделать и начинающему программисту – освоить некоторыепростые принципы построения программ,и – можно начинать потихоньку “ездить”.
Переменная инициализируется при каждом запуске функции. После выхода из функции переменная и ее данные удаляются из памяти. Давайте начнем с простой функции PipPoint(), которая вычисляет количество десятичных знаков в текущей паре и автоматически настраивается для 3-х и 5-ти значных брокеров. Для пар с йеной (2 или 3 цифры) функция возвращает 0,01. Для всех остальных пар (4 и 5 цифр) функция возвращает 0,0001.
Полученный файл будет сохранен в соответствующем каталоге, в зависимости от его типа. Существует специальный тип данных для функций, которые не возвращают значение. Тип данных void используется для функций, которые выполняют определенную задачу, но не должны возвращать никакое значение. Пустые функции не требуют оператора возврата в теле функции.
Весь код, который вы пишете, попадает в одну из этих областей. Не так давно в уроке про открытые позиции трейдеров мы брали данные с сайта, находящегося в сети. То, что мы делали тогда на уроке, можно сделать еще одним способом, не используя dll, следовательно, без зависимости от операционной системы. В сегодняшнем программирование mql4 уроке мы разберем, как можно автоматизировать средствами MQL4 один из самых сильных и надежных паттернов – дивергенцию. Для этого будем писать скрипт, а из технических индикаторов нам поможет индекс относительной силы (RSI). Также разберем работу с анализом баров и напишем скрипты для разметки фракталов на истории.