文章 "MQL5 细则手册:保存基于指定标准的“EA 交易”的优化结果" - 页 2

 
Anatoli Kazharski:

近期不打算再讨论这个话题。

请试着更准确地表述您的问题,然后在这里发帖。也许有人会提出解决方案。


我的任务很简单--按序列号记录通过,而不是按优化结果 的顺序记录。

 
Aleksey Vyazmikin:

我的任务很简单--按序列号记录传球,而不是按优化结果 的顺序记录。

按原样添加到动态数组中,然后在优化结束时进行排序。
 
在哪里记录?
 
Anatoli Kazharski:
按原样添加到动态数组中,然后在优化结束时进行排序。

也就是说,要做一个额外的二维数组,通道的编号和指标放在哪里?


如果一次性写入文件呢?也就是说,是否可以这样做--将没有值的行用 0 删除,然后在出现值时将其覆盖?

 
Dennis Kirichenko:
记录到哪里?

当然是存档。

 
Aleksey Vyazmikin:

当然是在文件里。


阿纳托利已经正确地指出了这一点。在优化过程中,在OnTesterPass() 处理程序中将结果收集到一个列表或动态数组(我更喜欢列表)中。优化结束后,在OnTesterDeinit() 处理程序的主体中,按照所需的标准对列表/数组进行排序并保存。

 
Dennis Kirichenko:

阿纳托利已经向您指出了正确的方法。在优化过程中,在OnTesterPass() 处理程序中将结果收集到一个列表或动态数组(我更喜欢列表)中。优化结束后,在OnTesterDeinit() 处理程序的 主体中,按照所需的标准对列表/数组排序并保存。


我没看到关于列表的内容,你是什么意思?

 
Aleksey Vyazmikin:

我没看到关于列表的内容,你是什么意思?


我是说有这样一种数据类型- CList - 列表。在你的任务中收集结果很方便。但结果应封装在节点类型中 - 它是 CObject 的后代。

 
Dennis Kirichenko:

我的意思是有这样一种数据类型- CList - 列表。在任务中用它来收集结果很方便。但结果应该事先封装在节点类型中--它是 CObject 的后代。


我明白了--我看了一下,意识到这里有很多复杂的东西--如果你想使用它,就需要理解它......我还找到了一些复杂的示例。你能告诉我如何在这个特定任务的示例中实现它吗?

 

非常感谢,阿纳托利!

在入口点优化模式下进行测试时,我需要将赢/输交易的百分比信息输出到一个文件中。

这似乎是个微不足道的任务,但我苦苦挣扎了两天,然后对 metaphoraquot 感到不快,一连两个星期都忘了这件事。

今天,我骂了 methaquot(他们以一种奇怪的方式实现了OnTester 和 OnTesterPass函数,但他们也没有在参考书中提到这些函数需要 FrameAdd 和 FrameNext 被 "初始化",否则它们就会像地狱一样工作。)),看了一眼您的示例,我写完了我需要的东西))))