MetaTrader 5策略测试器:缺陷,缺陷,改进建议 - 页 59

 
Sergey Chalyshev:

优化结果行中的参数是正确的,它们与测试员日志中的参数相匹配,但专家顾问运行的测试参数完全不同。

我取消了专家顾问本身的输入参数。他们匹配。

 
fxsaber:

只是原始符号的数据与自定义的符号完全匹配。但是,自定义的那个没有错误地通过,而原始的那个却没有。

显然,我没有明白这一点。脚本只写了csv。它是如何对它们进行测试的?

 
Andrey Khatimlianskii:

显然,我没有明白这一点。该脚本只写csvs。对他们的测试是如何进行的?

脚本从这些csvs中创建一个自定义符号 和原始符号(在服务器端导入)。

也就是说,这两个符号有相同的报价历史,无论是按条还是按点。

 
fxsaber:

脚本从这些csvs中创建一个自定义符号和原始符号(在服务器端导入)。

也就是说,这两个符号有相同的报价历史,无论是在条形还是在点状。

这一点应该被提及。

我不知道MT5服务器有什么机制可以处理历史。

 
帧模式的顾问在异常终止时完成,之后1GB的mqd文件拒绝被读取。当我关闭终端 时,mqd增长到2GB。也就是说,终端没有为mqd做FileClose。
 

在遗传学过程中,FrameNext 的通行证号码与opt文件中的通行证号码不一致。

例如,FrameNext返回10041014291,opt返回2465。

差异的原因是什么?我如何将一个与另一个相匹配?

在GUI表中,有两个数字代替了通行证号码。但只要我在优化后重新打开opt文件,通行证号码就会变成空值。


请为GA澄清。


学会了如何重现GA与单一GA的不匹配。保存的GA通过框架统计。但无法从1万张通行证中找出我感兴趣的那张。因为Pass in FrameNext和Pass in opt是不同的值。

 
fxsaber:

在遗传学过程中,FrameNext的通行证号码与opt文件中的通行证号码不一致。

例如,FrameNext返回10041014291,opt返回2465。

差异的原因是什么?我如何将一个与另一个相匹配?

在GUI表中,有两个数字代替了通行证号码。但是当我在优化后重新打开opt文件时,通行证号码变成了空值。


请为GA澄清。


学会了如何重现GA与单一GA的不匹配。保存的GA通过框架统计。但无法从一万张通行证中找出我感兴趣的那张。因为Pass in FrameNext和Pass in opt是不同的值。

2个数字 - 代号,个人号。

如果为空,则从opt文件中加载结果(即之前遗传优化的结果)。

遗传学有两种类型

1.参数空间被限制在64位数。在这种情况下,通过基因型号的参数组成计算被简化为一组简单的算术运算

2.参数空间由下面的最大64位数字和上面的1024位数字来限制。将基因型转化为一组参数的更复杂的转化。似乎是你的数字不匹配的情况,因为帧只包含通行证号码的最下面64位。

只要在优化中加入一个新的参数或改变现有参数的起止点,整个编号就会改变。因此,不要按照通行证号码,而是按照参数的组成来决定。

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Операция инкремента и декремента применяются только к переменным, к константам не применяются. Префиксныe инкремент (++i) и декремент (--k) применяются к переменной непосредственно перед использованием этой переменной в выражении. Могут возникнуть вычислительные проблемы при переносе вышеуказанного выражения из одной среды программирования в...
 
Slava:

2个数字 - 代号,个人号。

如果为空,则从opt文件中加载结果(即前一次遗传优化的结果)。

遗传学有两种类型

1.参数空间被限制在64位数。在这种情况下,通过基因型号的参数组成计算被简化为一组简单的算术运算

2.参数空间由下面的最大64位数字和上面的1024位数字来限制。将基因型转化为一组参数的更复杂的转化。似乎是你的数字不匹配的情况,因为帧只包含一个最大的64位通行证数字。

只要在优化中加入一个新的参数或改变一个现有参数的起止点,整个编号就会改变。因此,不要根据通行证号码,只需根据参数的组成来决定。

谢谢。那么你如何匹配FrameNext_Pass和opt-Pass?

 
fxsaber:

学会了重现GA和single之间的不匹配。保存了GA通过框架的统计资料。但我无法从1万张通行证中找出我感兴趣的那张。因为Pass in FrameNext和Pass in opt是不同的值。

找到了差异的原因!


比较了GA优化期间通过框架获得的堆栈。以及单次传递的堆栈。


在框架状态下,执行是基于历史上不存在的ticks:我一下子就注意到有很多交易/订单,它们在一秒钟内被执行。

例如,历史上的一个单次通行证在2019.06.04 02:00:00.206 有一个条目,但一个框架通行证是2019.06.04 02:00:00.000(勾选历史在那个时间没有勾选)。


GA优化走的是与单通不同的勾股历史!而这段历史并不总是与众不同。例如,当我在一个较小的间隔上做GA时,那里很好。


ZZY对使用定时器的怀疑消失了。EA中没有计时器。

 
fxsaber:

找到了差异的原因!


在GA优化过程中,对逐帧统计进行了比较。以及单次传递的堆栈。


在框架状态下,执行是基于ticks的,这些ticks不在历史中:我立即注意到有很多交易/订单,它们在一秒钟内被执行。

例如,历史上的一个单次通行证在2019.06.04 02:00:00.206 有一个条目,但一个框架通行证是2019.06.04 02:00:00.000(勾选历史在那个时间没有勾选)。


GA优化走的是与单通不同的勾股历史!而这段历史并不总是与众不同。例如,当我在一个较小的间隔上做GA时,那里很好。


ZZY对使用定时器的怀疑消失了。EA中没有计时器。

在真实的蜱虫上进行测试/优化?

代理是你自己的还是来自云端?

如果在一个自定义符号 上进行测试,那么云代理就不存在了。因此,代理是内部的,你可以拉出他们的日志,在日志中看到历史是如何同步的。

原因: