终端和程序字符串特性

MQLInfoStringTerminalInfoString 函数可用于找出终端和 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 程序中(EA 交易、指标,脚本或服务),则 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 特性)。