将全局变量刷写到磁盘

为优化性能,当终端运行时,全局变量驻留在内存中。然而,我们知道,变量在会话之间被存储到一个特殊文件中。这适用于所有全局变量, 临时 变量除外。通常,当终端关闭时,会将变量写入到文件。不过若是你的计算机突然崩溃,数据可能丢失。因此,为了保证任何无法预料情况下的数据安全,强制发起写入操作很有用。为此,MQL5 API 提供了 GlobalVariablesFlush 函数。

void GlobalVariablesFlush()

该函数强制将全局变量的内容写入到磁盘。该函数没有参数且不会返回任何内容。

最简单的示例在 GlobalsFlush.mq5 脚本中提供。

void OnStart()
{
   GlobalVariablesFlush();
}

利用该函数,你可以在必要时随时将变量刷写到磁盘。你可以使用你偏爱的文件管理器并确保 gvariables.dat 文件的日期和时间在脚本运行后立即更改。但请注意,仅当全局变量自前次保存后已经过任何方式的编辑或只是被读取(这会更改访问时间),该文件才会被更新。

该脚本对于保持终端长时间开机运行并且修改全局变量的程序在终端中执行的场景很有用。