文章 "MQL5 Cookbook: 把交易历史写入文件以及为每个交易品种在Excel中创建余额图表"

 

新文章 MQL5 Cookbook: 把交易历史写入文件以及为每个交易品种在Excel中创建余额图表已发布:

当在各种论坛做沟通时,我经常使用我自己的测试结果作为例子,这些结果显示为Microsoft Excel中的图表截图。很多时候都有人问我这些图表是怎样创建的,Excel提供了很多创建图表的功能,也有很多介绍这方面的书,为了在书中找到所需的 信息,可能需要全部读一遍。最终,现在我有时间在本文中解释其中的全部了。

在前面两篇文章, MQL5 Cookbook: 多币种EA交易 - 简洁而快速的途径MQL5 Cookbook: 使用不限数量的参数开发多币种EA交易中, 我们使用MQL5开发了多币种的EA交易。我们知道,MetaTrader 5中的测试结果显示为通用的余额/净值曲线,比如,如果您需要独立查看每个交易品种的结果,您需要一次次在EA交易的外部参数中禁用除了所需交易品种之外 的所有其他交易品种,然后再次运行测试,这很不方便。

所以今天我将向您展示一种简单的方法,您只要轻点鼠标,就可以在一个Excel数据表中获得多币种EA交易的全部交易品种的余额图表以及综合结果。为了重建实例,我们将直接使用前文的多币种EA交易. 它将使用一个函数来增强,该函数会在测试完成之后把历史交易和所有交易品种的余额曲线写到一个.csv文件中,而且,我们会在报告中增加另外一列用于显示所有本地最大的回撤。

让我们创建一个Excel工作簿,设置后就能够连接数据文件了,工作簿可以一直都打开,所以在运行另外一次测试之前不需要关闭,在测试完成之后,您只需要按某个键刷新数据就可以看到图表中报告的改变。

MQL5 Cookbook: Writing the History of Deals to a File and Creating Balance Charts for Each Symbol in Excel

作者:Anatoli Kazharski

 
一如既往,这是一种非常有效的解决问题的方法。干得好,阿纳托利,好文章!
 
zfs:
一如既往,这是一种非常有效的解决问题的方法。干得好,阿纳托利,好文章!
下一步,我将尝试写一篇有文采的文章。这是目前最简单的方案。:)
 
我们应该补充说明,我们应该在没有可视模式的情况下进行测试,因为 OnTester() 有 ...&& !IsVisualMode()....或者取消这一限制,以便在可视化过程中创建文件。
 
paladin800:
我们应该补充说明,我们应该在没有可视模式的情况下进行测试,因为 OnTester() 有 ...&& !IsVisualMode()....或者取消这一限制,以便在可视化过程中也能创建文件。
每个人都有权在学习后根据自己的需要修改代码。
 

这是一个相当有趣的结果!

是否有可能将其用于优化--收集每次交易的详细报告,并为其分配一个序列号?是否有可能在 MT4 上实现这一切?

 
-Aleks-:

这是一个相当有趣的结果!

是否有可能将其用于优化--收集每次交易的详细报告,并为其分配一个序列号?是否可以在 MT4 中实现这一切?

查看本文:在 MetaTrader 5 测试器中可视化策略 >>>>

MT4 使用 MQL 工具没有这种可能性(据我所知)。

 
-Aleks-:

这是一个相当有趣的结果!

是否有可能将其用于优化--收集每次交易的详细报告,并为其分配一个序列号?是否有可能在 MT4 上实现这一切?

至于优化结果的处理,根据文章中的代码判断,您只需移除 OnTester 中的!IsOptimization() 检查,并在生成文件名时考虑一些变化的参数(或只是运行编号),例如,请参阅 "处理优化结果"。处理优化结果

我用 JavaScript 做了一个类似的东西,在浏览器中加载测试报告(html 文件)。因此,我的方法在优化器中不起作用。但没有 Excel。

 
tol64:

查看本文:在 MetaTrader 5 测试仪中可视化您的策略 >>>

对于 MT4 和 MQL(据我所知),没有这种可能性。

我已经学习了这篇文章 - 谢谢。考虑到策略的特殊性,我选择测试结果的标准更复杂一些,而且我还在使用 MT4...

显然,唯一的出路是为 MT4 和 MT5 制作两个程序(Expert Advisor),一个用于工作,一个用于优化....。


marketeer

至于优化结果的处理,根据文章中的代码判断,您只需删除 OnTester 中的!IsOptimization() 检查,并在生成文件名时考虑到一些变化的参数(或只是运行次数),例如,请参阅 "处理优化结果"。处理优化结果

我用 JavaScript 做了一个类似的东西,在浏览器中加载测试报告(html 文件)。因此,我的方法在优化器中不起作用。但没有 excel。

我会注意这种可能性的--谢谢。

能详细介绍一下你的 JavaScript 吗?它能做什么?

 
-Aleks-:

我会注意这种可能性的,谢谢。

能告诉我更多关于 JavaScript 的信息吗?它能做什么?

在浏览器中渲染包含这些内容的页面:

按特征比较试运行的余额

还有:

总体平衡

 
-Aleks-:

我已经学习了这篇文章 - 谢谢。考虑到策略的特殊性,我在选择测试结果时采用了更为复杂的标准,而在 MT4 上,我仍然...

...

是什么阻碍了您使用文章 中提出的方法应用自己的选择标准?完全没有限制,因为每次优化的所有系列交易都可以使用。