MQL 程序执行环境
我们知道,MQL 程序的源文本在编译为 ex5 格式的二进制可执行代码之后,即可在终端或测试代理中运行。因此,终端或测试程序提供了 MQL 程序在其中“居住”的公用环境。
别忘了,内置测试程序仅支持 2 种类型的 MQL 程序:EA 交易和指标。我们将在本书第五章中详述 MQL 程序的类型以及它们的功能。同时,在本章中,我们将着眼于对所有类型的程序通用的 MQL5 API 函数,可以通过这些函数来分析执行环境以及一定程度上控制环境。
大多数环境特性可通过以下函数进行只读访问:TerminalInfoInteger、TerminalInfoDouble、TerminalInfoString、MQLInfoInteger 和 MQLInfoString。从函数名称可以知道,每个函数返回某种类型的值。这样的架构导致在一个函数中组合特性的应用含义可能有很大区别。另一种分组可以通过在 MQL5 中实施你自己的对象层来提供(稍后将在关于使用 特性绑定到程序环境的章节提供示例)。
指定的函数集具有明确的逻辑划分,分为一般终端特性(带 "Terminal" 前缀)和单独 MQL 程序特性(带 "MQL" 前缀)。然而,在很多情况下,需要联合分析终端和程序的类似特性。例如,使用 DLL 或者执行交易操作的权限既发放给整个终端,也发放给特定程序。所以从整体上来综合考虑这些函数更加合理。
某些仅与错误代码关联的环境特性是可写入的,尤其是重置先前错误 (ResetLastError) 以及设置用户错误 (SetUserError)。
此外,在本章中,我们将了解用于在程序中关闭终端的函数 (TerminalClose, SetReturnError) 以及在调试程序中暂停程序的函数 (Debug Break)。