MetaTrader 5策略测试仪的开发计划

 

不要被测试员在打赌中的半吊子状态所吓倒。我们特意将所有的中间版本以测试版的形式推出,以便更快地取得成果。


我们是如何改革策略测试员的。

  1. 为了让新手更容易理解,我们推出了测试员开始页的新外观,在这里你可以看到学习选项。




  2. 非常重视存储以前的所有测试结果,通过简单的搜索就可以回过头来查看以前的测试。

    除了直接从文件中下载外,一个搜索框使其很容易找到过去的结果。

  3. 在以前的测试中,我们将有可能进行比较






  4. 我们可能会增加新的优化选项

  5. 我们将极大地扩展测试的详细设置,包括佣金、订单触发条件、滑点等。

    目前,在测试版中,我们已经启用了以点为单位的测试模式,这大大减少了建模量并加快了测试。

    完整的设置将在稍后介绍。

  6. 我们将重写源数据准备机制,以减少代理同步成本

    加速将在本地代理上特别明显,我们不必抽出大量的数据,也不会有多个历史数据的副本。

  7. 新的三维可视化引擎和在全窗口显示测试结果

  8. 改革集群网络,对每个专家的条件进行更详细的控制,以便你可以单独选择一组代理

    目标是尽可能地加快任务速度,这样就不会因为不适合或缓慢的代理而出现延误。


此外,MQL5语言本身正在积极开发,我们已经包括了作用域,扩大了对模板的支持,与隐式创建的类一起工作等等。

很可能很快就会包括新的功能。

  • SQLite数据库
  • 图形库扩展,包括3D


稍后,我们将转向在语言中加入模块这一革命性的任务。

这些是重新编译成EX5格式的C++库,可从MQL5代码直接使用。也就是说,我们将开始重新编译Opsor库,当它们的低级/危险调用完全映射到我们的安全运行时,并且为MQL5代码制作了安全包装器。

这样,我们计划在不影响安全的情况下增加语言的功能。模块组件只能由我们提供,这为所产生的解决方案提供了一定程度的安全性。

这一机制已经在发挥作用。

例如,MQL5环境的一些功能早已在编译过程中被本机内置到EX5代码中,这在构建层面上提供了一个非常好的优化。

 

Renat Fatkhullin:

我们将大幅扩展详细的测试设置,包括佣金、订单触发条件、滑点 等。

这一补充将是最早被看到的一个。

 

比较跑步是一件好事。

还有一个来自大胡子时代的需求,第三方解决方案已经变得很流行:将多个运行组合成一个。

也就是说,几个TC是 "同时 "运行的,但它们的整体历史和权益是建立的。

 

关于交易、自动交易系统和策略测试的论坛

图书馆:MultiTester

fxsaber, 2019.07.22 01:54

当一个测试员被赋予了自动化的能力时,就会成为一个非常强大的脱粒机。

如果开发人员在MQL中包括内部测试人员的管理功能(设置日期/符号/模式,运行最佳单次运行,保存报告,等等。),它将变得比所有潜在的竞争对手强大一百倍。而且它将从一个严肃的玩具变成一个前所未有的研究工具,因为它将成为一个真正的计算脱粒机。

但我怀疑它能做到这一点。如果有谁能帮助自动突出,那就太好了。


TesterSetInfo, TesterGetInfo.

 
fxsaber:

还有一个来自大胡子时代的需求,第三方解决方案已经变得很流行:将几个通道合并成一个。

也就是说,几个TC是 "同时 "运行的,但它们的整体历史和权益是建立的。

支持一位同事。我必须在边上实现它,但另一方面,在测试器中如何组织它?嗯,给这样的通行证添加一些属性,如 "组合#"。- 也许像这样?

 
Aleksey Vyazmikin:

支持一位同事。必须在侧面实现这一点,但另一方面,在测试器中如何组织这一点?嗯,给这样的通行证添加某种属性,比如 "组合#"。- 也许像这样?

同时为每个被测试的方案手动分配代理。
例如,我们有8个代理,其中4个分配给一个专家,4个分配给另一个。因此,只有两个mql程序可以同时测试。
或者每个专家将被分配2个代理,然后同样的8个代理已经在测试4个程序等等。

或者,自动分配代理,就像比赛一样,谁先拿下代理,谁就先拿下代理。
一个代理已经完成了一个任务,再次等待,直到它从任务队列中被拾起,等等。
因此,同时测试的程序数量增加。

每个同时被测试的程序都会自动分配自己的虚拟测试器环境。
而每个测试都是自己同时执行的,在完成所有测试后,对每个程序的结果进行总结,并计算出平均值。
显示的是总体统计数据。

 
Roman:

我们同时为每个被测试的程序手动分配代理。
例如,我们有8个代理,4个分配给一个专家顾问,4个分配给另一个。因此,只有两个mql程序可以同时测试。
或者,自动分配代理人,就像比赛一样,谁先得到代理人,谁就能得到同样的东西。
代理人已经完成了一项任务,正在等待从任务队列中再次领取,等等。
因此,同时测试的程序数量增加。

每个要测试的程序在同一时间,自动分配自己的虚拟测试器环境。
而每个测试都是自己同时执行的,在完成所有通关后,对每个程序的结果进行汇总,并显示总体统计数据。

我的变体更简单,功能更多,它允许你测试尽可能多的EA及其设置,没有任何不必要的麻烦。你的变体需要一个经理来分配任务...你需要添加一个由用户形成的投资组合测试经理,并在其中显示专家顾问和它的设置/设定,以及投资组合的ID - 这样你就可以比较不同的投资组合,那么它将是通用的和功能性的。

 
Aleksey Vyazmikin:

我的变体更简单,功能更多,它允许你测试尽可能多的EA及其设置,没有任何不必要的麻烦。你的变体需要一个经理来分配任务...我们需要添加一个用于测试投资组合的管理器,该管理器由用户形成,并在其中显示专家顾问和对它的设置/设定,以及投资组合的ID - 这样我们就可以比较不同的投资组合,在这种情况下,它将是通用和功能性的。

因此,我们有两种方法。
或者按顺序测试每个程序,然后按组合编号生成结果,进行一般统计。
或者在多线程模式下同时测试每个程序,并立即显示这些程序集的一般统计数据。
唯一的区别在于初始设置动作,或测试后手动生成的整体统计数据。
还有可能是测试执行的整体速度。

p.s. MetaQuotes - 梦想有时会成真。

 

雷纳特,请在ME风格 选择中增加另一个选项,即MQ旧版。之前的那个人在那里。这对你来说是件小事,但对许多用户来说,这将节省大量的神经。

我不想习惯一种新的风格...我对旧的那个相当满意。

谢谢你。

 

什么是压力测试?

(即涉及什么功能)

 

好消息!

这将鼓励人们迁移到MT5。

毕竟,每个人都会为mt5重写程序,以便在那里测试它们...

原因: