По завершении установки в меню "Пуск" создается группа программ клиентского терминала, а на рабочем столе дополнительно помещается ярлык программы . С их помощью можно запускать клиентский терминал.
Внимание: нельзя запускать одновременно две копии клиентского терминала из одной директории. Чтобы одновременно запустить несколько терминалов, необходимо установить соответствующее количество программ в разные директории. |
Начиная с 600 билда клиентского терминала, изменилась структура, а также место хранения файлов клиентского терминала. Теперь MQL4-программы разнесены по отдельным каталогам в зависимости от типа программы (эксперты, индикаторы, скрипты). Данные терминала в большинстве случаев теперь хранятся в специальном каталоге данных отдельно от места установки терминала. В данной статье мы подробно опишем, каким образом осуществляется перенос данных, а также причины введения такой системы хранения.
Система Microsoft Windows XP, выпущенная 13 лет назад, разрешает программам записывать собственные данные по месту установки, даже если она была произведена в системную папку Program Files. Для записи в любую папку пользователю достаточно иметь администраторские права на компьютере.
При работе в 64-битных системах для 32 и 64-битных приложений предусмотрены отдельные каталоги установки: Program Files и Program Files (x86). Особенности работы, описанные в статье, относятся к обоим каталогам. |
Начиная с Windows Vista, компания Microsoft ввела ограничение на запись в каталог Program Files. Так, при включенной системе User Account Control (UAC) программам запрещается хранить собственные данные в каталоге Program Files. Все данные должны сохраняться в отдельном каталоге пользователя. Такое ограничение было введено с целью защиты от вредоносных программ, а также для того чтобы работа с программой под одной учетной записью никак не могла изменить или испортить данные этой же программы, необходимые для другой учетной записи. В дальнейшем требования безопасности в операционных системах Microsoft только усиливались, в частности, начиная с Windows 8, система UAC не отключается никогда, даже если в ее настройках установлена опция "Никогда не уведомлять".
Для обеспечения совместимости старых программ при использовании UAC Microsoft ввела систему виртуализации. Если программа пытается сохранить свои данные в каталог Program Files, то фактически (физически) эти данные сохраняются в отдельном каталоге вида C:\Users\<имя-пользователя>\AppData\Local\VirtualStore\Program Files. При этом проводник Windows показывает файлы так, как будто они сохраняются в каталоге установки. Компания Microsoft заявляет, что данный режим предусмотрен только для совместимости и в последующем может быть убран.
Для соответствия рекомендациям Microsoft, начиная с 600 билда, в клиентском терминале изменена структура хранения данных. Терминал теперь также будет сохранять свои данные в каталоге пользователя.
В новой версии все данные конкретного пользователя, работающего с определенной копией терминала MetaTrader 4, хранятся в специальном месте, называемом каталог данных терминала. Находится этот каталог на системном диске (диске, на котором установлена операционная система Windows) по пути следующего вида
C:\Users\Имя_учетной_записи\AppData\Roaming\MetaQuotes\Terminal\Instance_id |
гдe:
В меню терминала "Файл" доступна команда " Открыть каталог данных" для поиска и открытия каталога данных.
В корне каждого каталога данных терминала также находится файл origin.txt, который содержит путь к папке установки терминала, к которой относятся эти данные. Это позволяет сопоставить каждый каталог данных терминала с конкретным каталогом установки терминала, например, если у пользователя установлено несколько копий терминала. Такой способ работы с терминалом, когда каталог данных находится отдельно от каталога установки, является основным режимом.
Для дополнительного удобства при каждом запуске терминала в его журнал выводится запись, в которой указывается путь к каталогу данных. Например:
2014.02.10 12:48:28.477 Data Folder: C:\Users\JohnSmith\AppData\Roaming\MetaQuotes\Terminal\9F86138A4E27C7218E9EC98A5F8D8CA1 |
При запуске после обновления терминал проверяет, и если его нет, то создает каталог данных. Если этот каталог отличается от каталога установки, в него производится копирование штатных данных терминала - стандартные MQL4-программы, исторические данных, конфигурационные файлы, шаблоны и т.д. В каталоге установки остаются только те файлы, которые терминал не изменяет в процессе работы (исполняемые файлы, компилятор mql.dll, звуковые файлы и т.д.). Каталог данных терминала будет отличаться от каталога установки в следующих случаях:
Только в тех случаях, когда не подходит ни одно из вышеуказанных описаний, данные терминала будут храниться в каталоге установки.
После копирования штатных данных терминала осуществляется миграция пользовательских файлов в каталог данных. На этом этапе определяется, в каком каталоге хранились пользовательские данные терминала. Если данные хранились в каталоге установки терминала, происходит их копирование по следующей схеме:
Исходная папка в каталоге установки |
Содержимое |
Конечная папка в каталоге данных терминала |
---|---|---|
\experts |
Эксперты (торговые роботы) Примечание: переносятся только файлы из корневого каталога \experts. Никакие подкаталоги не переносятся, поскольку невозможно достоверно определить их содержимое. |
\MQL4\Experts |
\experts\indicators |
Пользовательские индикаторы |
\MQL4\Indicators |
\experts\scripts |
Скрипты (программы на MQL4 для однократного выполнения на графике) |
\MQL4\Scripts |
\experts\include |
Включаемые в другие программы файлы исходного кода с расширением MQH и MQ4 |
\MQL4\Include |
\experts\libraries |
Библиотеки в виде исходного кода MQ4 и скомпилированные из них исполняемые файлы EX4 для динамического вызова собранных в них функций другими MQL4-программами |
\MQL4\Libraries |
\experts\files |
Специальная "файловая песочница", только в пределах этой папки MQL4-программам разрешается выполнять файловые операции |
\MQL4\Files |
\experts\logs |
Файлы журналов работы MQL4-программ |
\MQL4\Logs |
\experts\presets |
Файлы наборов настроек для MQL4-программ |
\MQL4\Presets |
\experts\images |
Файлы картинок для использования в ресурсах |
\MQL4\Images |
Далее проверяется, хранил ли клиентский терминал данные в каталоге виртуализации (виртуальное хранилище операционной системы, описанное выше). В большинстве случаев, когда терминал установлен в каталоге Program Files и операционной системой является Windows Vista и выше, данные терминала хранятся именно в этом каталоге. Если данные обнаружены, осуществляется их копирование по вышеописанной схеме.
При миграции осуществляется копирование файлов, а не перенос. Скопированные файлы не удаляются из исходных каталогов. |
При копировании в процессе миграции в журнал терминала выводятся записи о том, откуда были скопированы файлы и куда. Для просмотра журналов целиком откройте вкладку "Журнал" в окне "Терминал" и выполните команду "Открыть" в контекстном меню. Будет открыт каталог, в котором хранятся файлы журнала терминала.
Если процесс миграции успешно выполнен для данной копии терминала, то при последующих обновлениях терминала миграция уже не производится. Если каталог данных отличается от каталога установки и при миграции были перенесены не только стандартные файлы, но и пользовательские MQL4-программы, показывается информационный диалог:
Для работы терминала на съемных носителях, в несистемных каталогах, а также для работы в Windows XP в терминале предусмотрен режим запуска Portable. При запуске в данном режиме терминал будет пытаться сохранять свои данные в каталоге установки. В то же время запуск в режиме Portable не гарантирует того, что операционная система разрешит хранение данных в каталоге установки (например, если терминал установлен в каталог Program Files и включена система UAC).
Для возможности работы в режиме Portable необходимо соблюдение следующих требований:
Каталог установки |
Операционная система |
Требования |
---|---|---|
Program Files или другой системный каталог (например, Windows) |
Windows XP |
Наличие прав на запись в каталог установки |
Другой несистемный каталог |
Windows XP |
Наличие прав на запись в каталог установки |
Внешний жесткий диск, usb флеш-накопитель и т.д. |
Windows XP |
Терминал всегда будет запускаться в режиме Portable |
Program Files или другой системный каталог (например, Windows) |
Windows Vista\Windows 7 |
Запуск терминала от имени администратора и отключенная система UAC |
Другой несистемный каталог |
Windows Vista\Windows 7 |
Наличие прав на запись в каталог установки |
Внешний жесткий диск, usb флеш-накопитель и т.д. |
Windows Vista\Windows 7 |
Терминал всегда будет запускаться в режиме Portable |
Program Files или другой системный каталог (например, Windows) |
Windows 8 и выше |
Запуск в режиме Portable невозможен, поскольку система UAC не отключается |
Другой несистемный каталог |
Windows 8 и выше |
Наличие прав на запись в каталог установки |
Внешний жесткий диск, usb флеш-накопитель и т.д. |
Windows 8 и выше |
Терминал всегда будет запускаться в режиме Portable |
|
Чтобы запустить терминал в режиме Portable, необходимо использовать ключ "/portable". Для удобства на Рабочем столе можно создать дополнительный ярлык запуска терминала с нужным именем и добавить ключ прямо в ярлык: