Главная » Статьи » Язык MQL4 и Форекс |
Язык программирования MQL4 и Форекс
Написание программы на любом языке программирования требует полного понимания того, как и в каком окружении она будет работать, и какова её пользовательская аудитория. Если с аудиторией программ, написанных на MQL 4 почти всегда всё ясно, то с первым вопросом стоит разобраться отдельно. Проведём некоторое сравнение выполняющейся обычной программы, исполняемой на нашем компьютере, и программы, написанной на MQL 4. Прежде всего, следует обратить внимание на то, кто исполняет инструкции той или иной программы. В случае, когда обычная программа запускается на компьютере, её инструкции исполняются непосредственно процессором и операционной системой. Если такой программе нужно прочитать файл с диска, то она обращается с запросом к ядру операционной системы, и уже ядро выполняет код, отвечающий за чтение файла. Если такой программе нужно подсчитать сумму двух чисел, то она обращается к процессору с просьбой сложить два числа. Таким образом, обычная программа выполняется, обращаясь непосредственно к процессору и к операционной системе. То есть, операционная система является окружением программы, а процессор - средством исполнения директив программы. Теперь рассмотрим случай, когда программа написана на MQL 4. Мы не можем просто запустить такую программу на нашем компьютере, если на нём не установлен MetaTrader 4. Это означает, что эта программа на самом деле не является полноценным самостоятельным исполняемым модулем. Львиная доля того, что программа хочет сделать, исполняется не самой программой, а интерпретатором MQL-программ клиентского терминала Metatrader 4. Когда MQL-программе нужно прочитать файл с диска, она не запрашивает такую возможность у операционной системы, как это сделала бы "полноценная" программа, а просит интерпретатор обратиться к операционной системе и прочитать файл. Если MQL-программе нужно сложить два числа, то она не может скомандовать процессору сложить два числа, она может попросить интерпретатор, чтобы тот обратился к процессору и уже процессор сложил два числа. MQL-программа запускается и выполняется интерпретатором, встроенным в клиентский терминал. Хорошо это или плохо? Для программ, ориентированных на работу только с MetaTrader 4, этот вариант подходит, как никакой другой. Именно благодаря такой организации работы терминала с пользовательскими программами, можно легко предоставить в распоряжение MQL-программ все сервисы, доступные пользователю в MetaTrader 4. Интерпретатор перехватывает все вызовы функций MetaTrader'а и выполняет их с помощью ядра клиентского терминала. Договоримся называть программным интерфейсом терминала набор функций и возможностей, предоставляемых MetaTrader'ом MQL-программам. И заметим, что изучение языка программирования - это в основном изучение интерфейсов, доступных для программной реализации своих замыслов. Кроме того, что MQL-программам доступен интерфейc терминала, в новую версию языка была добавлена возможность выполнения функций, которые скомпилированы в так называемые динамически подгружаемые библиотеки, что позволяет выполнять функции написанные на других языках программирования. Таким образом, написание собственной динамически подгружаемой библиотеки позволяет самостоятельно создавать пользовательские интерфейсы и тем самым расширять функциональность MetaTrader'а. Но это можно будет обсуждать много позже и только тогда, когда будут полностью усвоены азы программирования на MQL 4; сейчас же стоит отметить лишь то, что многие функции операционной системы доступны для использования именно таким способом. Для ознакомления со списком таких функций советуем заглянуть в файл WinUser32.mqh, поставляемый вместе с MetaTrader 4. Теперь настало время обсудить типы программ, которые мы можем писать на MQL 4, они делятся на три типа:
Именно эти три типа программ нам предлагает создать мастер создания программ в MetaEditor'е вызывается нажатием клавиш Ctrl+N).
Как мы видим, все три типа MQL-программ различаются, как способом взаимодействия с выполняющей их средой (то есть MetaTrader'ом), так и предназначением. Теперь перейдём к рассмотрению структуры программы. Как правило, для написания программы требуется воспользоваться мастером создания советников (вызывается нажатием клавиш Ctrl+N). В зависимости от типа программы, после окончания всех шагов выполнения мастера создания советника, в случае, если были выбраны советник или пользовательский индикатор, появится текст с тремя пустыми функциями или с одной пустой функцией, в случае, если был выбран скрипт. Прежде всего, стоит отметить, что программы на MQL 4 чётко структурированы, и их выполнение разделено на несколько этапов. Советники и индикаторы содержат в своих программах три этапа выполнения, которые представлены функциями init(),start() и deinit(). Скрипты состоят толко из функции start(). Такая структура может говорить о том, какие этапы проходит программа от её прикрепления к графику до того момента, когда она будет убрана с графика пользователем. Жизненный цикл всех программ, за исключением скриптов, включает:
инициализацию, выполнение основной части программы и деинициализацию.
Эти этапы как раз и реализуются функциями init(),start() и deinit(). Кроме того, рекомендуется внимательно посмотреть и сравнить исходные коды индикаторов и советников, поставляемых вместе с MetaTrader 4 в качестве примеров. Очень полезным было бы прочитать, как пользоваться MetaEditor 4 и научиться компилировать программы. | |
Просмотров: 3684 | Комментарии: 9 | Рейтинг: 0.0/0 |
Всего комментариев: 2 | |||
| |||