MT5终端今天更新,"优化 "窗口在测试过程中没有显示出来 - 页 5

 
Texnolog:

为什么要打破一个好的旧算法,而用一个慢3倍的新算法来取代它?

遗传测试器的算法没有改变。而关于3次的说法是绝对没有根据的。

以前结果的缓存的工作方法发生了变化。而且它变得比以前的好得多,更完整。

如果你需要为遗传方法引入新的方法,请在 "优化 "选项卡中添加一个新项目。

创建一个描述和工作的技巧。

看看上面的链接 - 所有这些文章都来自我们的网站。遗传优化器已经被即时讨论了很多年。

请在搜索 中搜索 "策略测试器"、"遗传优化器"。

并接受我的反复建议--遗传学中的单一恢复因子优化是禁忌的。你只是用一个完全不稳定和具有欺骗性的(对自动机而言)"利润/最大跌幅 " 比率来误导算法,这很容易产生巨大的数值想一想如何和为什么。


我们将在星期一纠正优化图的绘制。

 
是否会有部分限价订单的执行,取决于市场的成交量?
 
pivomoe:
是否会有部分限价订单的执行,取决于通过市场的数量?

你在历史上见过杯子里的卷吗?在没有市场快照的情况下,这是不现实的实施。

 
Aleksey Vyazmikin:

你在历史上见过杯子里的卷吗?没有玻璃的模具,就不可能做到这一点。

我做梦也想不到。我希望价格为90,手数为10的买入限价能部分触发,比如说,有一个价格为89,手数为1的卖出钩。现在非常难过。如果有一个价格为90和手数为1的 "买入 "钩,该订单将被触发。并且是全量的。

 
Renat Fatkhullin:

遗传测试器的算法并没有改变。 关于3次的说法是绝对没有根据的。

改变的是以前结果的缓存工作方式。而且它从根本上变得比以前的更好、更完整。


在测试器的新旧版本上做了一些比较测试。

以下是结果。日志和描述见第34号帖子。

11

 

这是我在建议的条件下进行的测试。

  • 设置来自https://www.mql5.com/ru/forum/241285/page4#comment_7271206
  • 在测试开始前,所有测试员的文件缓存都已从磁盘中删除
  • Windows 10, Intel Xeon E5-2630 v4 @ 2.20GHz, 8个核心用于代理

全程通行到终点,然后终端重新启动
在1000个(约)通行证时停止
停止后继续
Metatrader 5 build 1755
38秒,4780次
15秒,1105次通过
25秒,3487次通过
Metatrader 5 build 180933秒,5,549次通过
9秒,1126次通过
36秒,5863次通过


Metatrader 5 build 1755。

  • Bild 1755完全通过,总共通过了8960个变体,其中4780个是实际计算出来的,4180个是从同一 会话中积累的缓存中提取的

    ,之后进行了终端重启,以避免内存中热缓存的直接影响
    2018.04.30 11:20:46.867	Tester	Best result 3391.17 produced at generation 22. Next generation 33
    2018.04.30 11:20:47.118	Tester	genetic calculation is over
    2018.04.30 11:20:47.126	Tester	4697 records written to file cache C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\tester\cache\Moving Average.EURUSD.M5.1.xml
    2018.04.30 11:20:47.338	Tester	result cache used 4180 times
    2018.04.30 11:20:47.338	Tester	genetic optimization finished on pass 8960 (of 49644595)
    2018.04.30 11:20:47.349	Statistics	optimization done in 0 minutes 38 seconds
    2018.04.30 11:20:47.349	Statistics	local 4780 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

  • 构建1755次,在1337次运行时停止。其中216次来自缓存(216/1337=16%的缓存命中率,由于开始时的随机性和样本量小,所以不多)。
    2018.04.30 11:24:15.913	Tester	Best result 3254.53 produced at generation 0. Next generation 4
    2018.04.30 11:24:16.775	Tester	file cache used 19 times
    2018.04.30 11:24:16.775	Tester	result cache used 216 times
    2018.04.30 11:24:16.775	Tester	genetic optimization finished on pass 1337 (of 49644595)
    2018.04.30 11:24:16.775	Statistics	optimization done in 0 minutes 15 seconds
    2018.04.30 11:24:16.775	Statistics	local 1105 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    


  • 测试从停止点继续进行,而不是像1809版那样从头开始,然后从建议的10496次通过中抽取3487次,从缓存中抽取66+3814次(66+3814 / 10496 = 36%的缓存命中率)。
    2018.04.30 11:26:27.931	Tester	Best result 3363.35 produced at generation 15. Next generation 32
    2018.04.30 11:26:28.104	Tester	genetic calculation is over
    2018.04.30 11:26:28.111	Tester	3422 records written to file cache C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\tester\cache\Moving Average.EURUSD.M5.1.xml
    2018.04.30 11:26:28.539	Tester	file cache used 66 times
    2018.04.30 11:26:28.539	Tester	result cache used 3814 times
    2018.04.30 11:26:28.539	Tester	genetic optimization finished on pass 8704 (of 49644595)
    2018.04.30 11:26:28.550	Statistics	optimization done in 0 minutes 25 seconds
    2018.04.30 11:26:28.550	Statistics	local 3487 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    





Metatrader 5 build 1809。

  • 建立1809个完整的通行证,总共8960个通行证,其中5549个被实际计算,3411个取自同一 会话中积累的缓存命中

    ,之后重新启动终端以避免内存中热缓存的直接影响。
    2018.04.30 10:50:58.997 Tester  Best result 3391.17 produced at generation 22. Next generation 33
    2018.04.30 10:50:59.485 Tester  genetic calculation is over
    2018.04.30 10:50:59.485 Tester  result cache used 3411 times
    2018.04.30 10:50:59.485 Tester  genetic optimization finished on pass 8960 (of 49644595)
    2018.04.30 10:50:59.495 Statistics      optimization done in 0 minutes 33 seconds
    2018.04.30 10:50:59.495 Statistics      local 5549 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

  • 构建1809,停在1348次,其中222次来自缓存(222/1348=16%的缓存命中率,由于开始时的随机性和小样本,这还不够。)
    2018.04.30 11:00:59.532 Tester  Best result 3263.17 produced at generation 0. Next generation 4
    2018.04.30 11:00:59.742 Tester  result cache used 222 times
    2018.04.30 11:00:59.742 Tester  genetic optimization finished on pass 1348 (of 49644595)
    2018.04.30 11:00:59.742 Statistics      optimization done in 0 minutes 09 seconds
    2018.04.30 11:00:59.742 Statistics      local 1126 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    
  • 构建1809,在停止后继续,终端没有重新启动,继续。

    ,因为测试是从开始的,从提议的10240次通过中,有5863次是干净的,4377次是从缓存中取出的(4377/10240=42%缓存命中率)。
    2018.04.30 11:04:28.046 Tester  Best result 3391.17 produced at generation 27. Next generation 38
    2018.04.30 11:04:28.477 Tester  genetic calculation is over
    2018.04.30 11:04:28.477 Tester  result cache used 4377 times
    2018.04.30 11:04:28.477 Tester  genetic optimization finished on pass 10240 (of 49644595)
    2018.04.30 11:04:28.488 Statistics      optimization done in 0 minutes 36 seconds
    2018.04.30 11:04:28.488 Statistics      local 5863 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    



现在是结论。

  1. 你关于 "慢了3倍 "的说法是错误的。

  2. 事实上,通过对内部流程的优化和重写,构建1809的测试人员已经变得更快。

    这可以从完全通过的时间看出,是33秒而不是38秒。而33秒则是更多次数的传球。

    如果我们重新计算每秒通过次数,结果是:
    - build 1755给出4780次/38秒=125次/秒
    - build 1809给出5549次/33秒=168次/秒

  3. 新的 "停止后继续 "遗传优化器的方案是正确的,它生成了新的群体计划。

    我们正在重新评估测试员的概念,并修正以前的错误决定。

    由于基因测试需要多次运行以更完整地覆盖搜索区域,我们的新模型带有缓存中以前运行的可视化功能,可以更好地理解基因工作流程的机制。

    显示优化结果 的新模式,将以前计算的缓存的所有数据添加到表格中,可以更完整地看到图片。可以分块计算你的策略,每次都能看到完整的结果,包括以前的运行。

    正是因为合并后的结果表确实很大,所以我们取消了结果列表的时间显示,而显示合并所有以前结果后的累积结果。
 

我的机器人在初始化过程中崩溃了,无论是在运行时还是在调试时。汇编是好的。

代码中有一个带静态成员 的类,可能是因为他们的原因。以前一切工作都很正常。但现在它在全局初始化时报告了一个错误。

删除了类中的静态成员,运行正常。

 
Dennis Kirichenko:

我的机器人在初始化过程中崩溃了,无论是在运行时还是在调试时。汇编很好。

代码中有一个带静态成员 的类,可能是因为他们的原因。以前一切工作都很正常。现在它在全局初始化时写了一个错误。

删除了类中的静态元素,正常启动。

请将你的请求写给服务台,并附上专家顾问(可以是ex5文件),谢谢。

 
Aleksey Vyazmikin:

这一切都很好!

然而,请把 "优化 "选项卡带回来--没有运营分析,就不可能工作!大 表格很慢--让我们做一个过滤器--显示每个标准的前20名--这不那么耗费资源(?),但会有助于看清情况。而且,那些几十亿的通行证--谁做的?它们是具有巨大能力的单位--你自己在谈论应用遗传学的合理性,而那里没有这样的门类。因此,超过1万张的通行证是很罕见的。


悲伤。

至少,在优化过程中,有可能在初步数据上建立一个画面。

 
Renat Fatkhullin:

我们正忙于对测试器进行大的性能升级,并正在重新设计重负荷模式。已经进行了重大改进,新的加速方法将很快实施。

过道列表窗口决定在计算结束时显示,这样就不会在维护、重新排序和显示不断变化的过道列表上浪费实际资源。

真的存在巨大的资源浪费和减速现象。特别是当我们在谈论几十万行,几百万和几千万次的传递时。用眼睛看一堆初步数据是没有合理意义的。


我们正在运行优化和性能测试,有1亿个完整的通道。

显然,对于这样的数字,实时重新排序并显示2-5-10-5000万个值的表格是不可能的。只有一个选择--迅速而经济地收集所有的东西,最后分类,并提供任何深度的视图。

告诉我们吧,就这样。