处理优化结果

组织定制处理策略测试中优化结果的函数。他们可以在优化期间,在测试代理中调用以及EA交易和脚本中本地调用。

当您在策略测试中运行EA交易时,您可以基于简单类型或简单结构创建您自己的数据数组(它们不包含字符串,类对象或动态数组的对象)。该数据设置可以在称为帧的指定结构中的FrameAdd()函数进行保存。EA交易优化期间,每个代理发送一系列帧到程序端。接收的所有帧都写在terminal_directory/MQL5/Files/Tester expert文件夹的*.MQD文件中,名为Expert Advisor。它们按照从代理接收的顺序编写。在客户端从测试代理接收的帧生成TesterPass事件。

这些帧可以存储在计算机内存和指定名称的文件中。MQL5语言对帧数无设限。

MQL5云网络中的内存和磁盘空间限制

以下限制适用于在MQL5云网络中运行的优化:EA交易不得向磁盘写入超过1GB的信息或使用超过4GB的内存(RAM) 。如果超出限制,网络代理将无法正确完成计算,您将不会收到结果。但是,您需要为计算所花费的所有时间付费。

如果您需要从每个优化过程获取信息,请发送帧而不写入磁盘。为了避免在MQL5云网络计算期间在EA交易中使用文件操作,您可以使用以下检查:

   int handle=INVALID_HANDLE;
   bool file_operations_allowed=true;
   if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_FORWARD))
      file_operations_allowed=false;
 
   if(file_operations_allowed)
     {
      ...
      handle=FileOpen(...);
      ...
     }

 

函数

动作

FrameFirst

移动阅读帧的指针至起点并重置之前设置的过滤器

FrameFilter

设置帧阅读过滤器并移动指针至起点

FrameNext

阅读帧并移动指针至下一个

FrameInputs

接收形成帧的 输入参数

FrameAdd

添加数据帧

ParameterGetRange

在策略测试优化EA期间,接收范围值的数据和输入变量的改变步骤

ParameterSetRange

在策略测试优化EA期间,指定使用输入变量 :值,改变步骤,初始值和最终值

另见

测试统计运行MQL5 程序的属性