获取全局变量列表
通常,需要 MQL 程序来浏览现有全局变量并选择满足某些条件的全局变量。例如,如果一个程序使用变量名称的一部分来存储文本信息,则仅前缀为事先已知。该前缀的目的是识别“其自己的”变量,而附加到前缀的“有效载荷”不允许按确切名称来搜索变量。
MQL5 API 有两个函数可用于枚举全局变量。
int GlobalVariablesTotal()
该函数返回全局变量总数。
string GlobalVariableName(int index)
该函数按其在全局变量列表中的索引号返回全局变量的名称。带有请求变量编号的 index 参数其范围必须在 0 到 GlobalVariablesTotal() - 1 之间。
如果出错,则该函数返回 NULL,错误代码可从服务变量 _LastError 或从 GetLastError 函数获取。
我们使用脚本 GlobalsList.mq5 来测试这对函数。
void OnStart()
|
第一个字符串故意请求一个大编号变量的名称,而该变量很可能不存在,这样应会导致错误。接下来,请求真实变量数量以及贯穿所有变量的循环,并输出名称和值。下面的日志包括由先前的测试脚本创建的变量以及一个第三方变量。
GlobalVariableName(1000000)= / GLOBALVARIABLE_NOT_FOUND(4501)
|
未定义终端按索引返回变量的顺序。