Строковые свойства терминала и программы

Функции MQLInfoString и TerminalInfoString позволяют узнать несколько строковых свойств терминала и MQL-программы.

Идентификатор

Описание

MQL_PROGRAM_NAME

имя запущенной MQL-программы

MQL_PROGRAM_PATH

путь для данной запущенной MQL-программы

TERMINAL_LANGUAGE

язык терминала

TERMINAL_COMPANY

имя компании (брокера)

TERMINAL_NAME

имя терминала

TERMINAL_PATH

папка, из которой запущен терминал

TERMINAL_DATA_PATH

папка, в которой хранятся данные терминала

TERMINAL_COMMONDATA_PATH

общая папка всех клиентских терминалов, установленных на компьютере

Имя запущенной программы (MQL_PROGRAM_NAME), как правило, совпадает с именем главного компилируемого модуля (mq5-файла), но может и отличаться. В частности, если ваш исходный код компилируется в библиотеку, которая импортируется в другую MQL-программу (эксперт, индикатор, скрипт или сервис), то свойство MQL_PROGRAM_NAME вернет имя основной программы, а не библиотеки (библиотека не является самостоятельной программой, которую можно запустить).

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

Простой скрипт EnvDescription.mq5 выводит в журнал все эти свойства.

void OnStart()
{
   PRTF(MQLInfoString(MQL_PROGRAM_NAME));
   PRTF(MQLInfoString(MQL_PROGRAM_PATH));
   PRTF(TerminalInfoString(TERMINAL_LANGUAGE));
   PRTF(TerminalInfoString(TERMINAL_COMPANY));
   PRTF(TerminalInfoString(TERMINAL_NAME));
   PRTF(TerminalInfoString(TERMINAL_PATH));
   PRTF(TerminalInfoString(TERMINAL_DATA_PATH));
   PRTF(TerminalInfoString(TERMINAL_COMMONDATA_PATH));
}

Ниже представлен пример результата.

MQLInfoString(MQL_PROGRAM_NAME)=EnvDescription / ok
MQLInfoString(MQL_PROGRAM_PATH)= »
» C:\Program Files\MT5East\MQL5\Scripts\MQL5Book\p4\EnvDescription.ex5 / ok
TerminalInfoString(TERMINAL_LANGUAGE)=Russian / ok
TerminalInfoString(TERMINAL_COMPANY)=MetaQuotes Software Corp. / ok
TerminalInfoString(TERMINAL_NAME)=MetaTrader 5 / ok
TerminalInfoString(TERMINAL_PATH)=C:\Program Files\MT5East / ok
TerminalInfoString(TERMINAL_DATA_PATH)=C:\Program Files\MT5East / ok
TerminalInfoString(TERMINAL_COMMONDATA_PATH)= »
» C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\Common / ok

Интерфейсный язык терминала можно узнать не только в виде строки в свойстве TERMINAL_LANGUAGE, но и как номер кодовой страницы (см. свойство TERMINAL_CODEPAGE в следующем разделе).