Файловая система
Клиентский терминал различает виды программ по месту их расположения в подчинённых директориях.
Все прикладные программы сосредоточены в директории Каталог_терминала\experts. Эксперты, скрипты и пользовательские индикаторы, которые трейдер предполагает использовать в практической работе, должны находиться в своих директориях (см. рис. 24). Эксперты находятся непосредственно в каталоге Каталог_терминала\experts, а скрипты и индикаторы - в поддиректориях Каталог_терминала\experts\scripts и Каталог_терминала\experts\indicators.
Рис. 24. Директории для хранения файлов, созданных пользователем.
Пользователь может по своему усмотрению создавать и другие директории и хранить в них некоторые свои файлы, однако использование готовых программ, находящихся
в таких директориях, в клиентском терминале не предусмотрено.
Типы файлов
В языке MQL4 различают 3 типа файлов, несущих программный код: mq4, ex4 и mqh.
Файлы типа mq4 - это исходный код программы. В файлах этого типа содержатся исходные тексты программ всех видов (экспертов, скриптов и индикаторов). Для создания кодов программ используется редактор MetaEditor. После того как код программы составлен полностью или частично, его можно сохранить, а впоследствии - снова открыть в редакторе для доработки. Файлы типа mq4 не могут быть использованы для исполнения в клиентском терминале. Для того чтобы запустить программу на выполнение, её необходимо предварительно скомпилировать. В результате компиляции исходного кода программы создаётся одноимённый файл с расширением ех4.
Файлы типа ех4 - это скомпилированная программа, готовая для практического использования в клиентском терминале. Для файлов этого типа возможность редактирования не предусмотрена. Если требуется внести изменения в программу, то необходимо обратиться к её исходному коду (файлу типа mq4), отредактировать его, а затем снова скомпилировать. По названию файла ех4 нельзя судить о том, к какому виду программ он относится - является ли он скриптом, экспертом или индикатором. Файлы ex4 могут использоваться как библиотечные.
Файлы типа mqh - включаемые файлы. Это - исходный текст часто используемых блоков пользовательских программ. Такие файлы могут включаться в исходные тексты экспертов, скриптов и пользовательских индикаторов на этапе компиляции. Обычно включаемые файлы содержат описания импортируемых функций (смотрите в качестве примера файлы stdlib. mqh или WinUser32.mqh), либо описания общих констант и переменных (stderror.mqh и WinUser32.mqh). Файлы типа mqh, как правило, хранятся в директории
Каталог_терминала\experts\include.
Включаемые файлы называются так потому, что обычно их "подключают" на этапе компиляции к основному исходному файлу при помощи директивы #include. Несмотря на то что файлы типа mqh могут содержать исходный код программы и MetaEditor их компилирует, они не являются самостоятельными и самодостаточными, т.е. не требуют компиляции с целью получения исполняемых файлов типа ех4. В качестве включаемых файлов могут также использоваться файлы mq4, которые также должны храниться в каталоге Каталог_терминала\experts\include .
В навигаторе клиентского терминала в разделах "Советники", "Пользовательские индикаторы" и "Скрипты" высвечиваются только те имена файлов, которые имеют расширения ex4 и при этом находятся в соответствующем каталоге. Файлы, скомпилированные в более старой версии MetaEditor, не запускаются и отображаются серым цветом.
Существуют и другие виды файлов, не образующие законченную программу, но используемые при создании прикладных программ. Например, программу можно составить из нескольких отдельных файлов или использовать для этой цели ранее созданную библиотеку. Пользователь может создавать библиотеки пользовательских функций, предназначенных для хранения часто используемых блоков пользовательских программ. Библиотеки рекомендуется хранить в директории Каталог_терминала\experts\libraries. В качестве библиотечных могут быть использованы файлы mq4 и ex4. Библиотеки не могут самостоятельно запускаться на выполнение. Использование включаемых файлов более предпочтительно, чем использование библиотек, из-за дополнительных расходов компьютерных ресурсов при вызове библиотечных функций.
В первой части учебника "Введение в программирование на языке MQL4" нас будут интересовать файлы исходных текстов программ mq4 и скомпилированные файлы
программ ех4.