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

 

似乎在启动测试时(即通过点击策略测试器中的 "开始"),测试器代理没有将所需的文件(包括DLL)复制到其内部的MQL{Libraries文件夹。 我已经确定了两个事件。

如果我在我的EA中有一个 "Test.dll "文件,那么

1) Strategy Tester抱怨说,没有找到Test.dll.ex5文件

2) 测试代理没有将Test.dll复制到其内部文件夹,因此,策略测试员抱怨说找不到Test.dll。

% appdata% /Roaming /Tester /<MT5 ID> /Agent-127.0.0.1-3000 /MQL5 / Libraries /

 
Rashid Umarov:

没有任何禁令

有一个硬性的IP封锁--服务器不可用。通过匿名者登录是不可能的,因为密码应该是错误的。

总的来说,标准的自动保护,不受无良用户的影响。

 
Luis:

似乎在启动测试时(即通过点击策略测试器中的 "开始"),测试器代理没有将所需的文件(包括DLL)复制到其内部的MQL{Libraries文件夹。我已经确定了两个事件。

如果我在我的EA中有一个 "Test.dll "文件,那么

1) Strategy Tester抱怨说,没有找到Test.dll.ex5文件

2) 测试代理没有将Test.dll复制到其内部文件夹,因此,策略测试员抱怨说找不到Test.dll。

% appdata% /Roaming /Tester /<MT5 ID> /Agent-127.0.0.1-3000 /MQL5 / Libraries /

我在Strategy Tester 中也有同样的错误!

2020.02.25 02:03:35.725 Tester file ***.dll.ex5 open error [2]

如果你重新命名该库(添加.ex5扩展名),你会得到另一个错误。

2020.02.25 02:09:32.567 2020.02.18 00:00:00 无法调用'Receive_Information','***.dll'未加载。

2020.02.25 02:09:32.568 2020.02.18 00:00:00 未解决的导入函数调用



 
Slava:

在按下停止按钮的情况下,完全复制了。

如果你需要做一个负责任的优化,可能最好是在重启终端后进行,而不要点击停止按钮。

 
fxsaber:

如果你需要做一个负责任的优化,可能最好是在重新启动终端后进行,不要按停止按钮。

有可能。但我们不应该依赖它。

这种行为(按下停止按钮)已经被修复,修复内容包括在最新的版本中。

 
Slava:

有可能。但我们不应该依赖它。

这种行为(与停止按钮)已被修复,修复内容包括在最新版本中。

那么你就得再找找为什么优化通道与单通道不一样的原因。

 
fxsaber:

那么我们就必须再次寻找优化通道与单一通道不一样的原因。

测试专家在计算毫秒的刻度时,是否会出现差异?

这就是我们发现问题的原因,然后我们用同样的专家顾问检查了它

 
Slava:

测试EA在计算毫秒的刻度时,是否会出现差异?

在上面抓到了问题,然后由同一个专家进行了检查

2340年的这个EA并没有显示出更多的差异。


传球失误发生在现场的EA。我将使用上次证明自己的方法。

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

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

fxsaber, 2020.02.20 08:57

我比较了GA优化期间获得的时限统计。而单通的立场。


在框架状态下,执行的时间点不在历史上:我马上注意到有很多交易/订单,它们的执行时间正好是一秒钟。

例如,历史上的单次传球在2019.06.04 02:00:00.206 有一个条目,在2019.06.04 02:00:00.000 有一个帧传球(嘀嗒历史在那个时间没有嘀嗒)。


这需要大量的时间来做...

 
实验环境

MT5 build 2342 beta
一个没有市场订单的EA(只有挂单)。
16487771 ticks自定义符号数据
4个本地测试剂
4个物理CPU核心,32g内存,Windows 7 x64


实验方法

为每一个真实的交易操作设置一个相应的虚拟交易操作。

使用FrameAdd()和FrameNext()函数,从优化过程中输出一些信息,并记录到本地文本文件(Excel A到T)。


实验结果

优化任务完美完成的可能性不到20%,其正确结果与单次测试相同。

但在绝大多数情况下,优化任务返回的所有结果都是错误的。



在一次测试和成功的优化测试中,真实和虚拟交易操作的所有结果都是相同的。

在失败的优化测试中,只有虚拟交易能返回正确的交易结果,而真实交易操作返回的所有数据,如交易数量和利润金额,都是错误的。

(在正常情况下,真正的交易操作会正确调用OrderSend()函数并在OnTradeTransaction()和OnTrade()中反馈交易状态信息。

B:订单合格证号
D:处理的蜱虫数量
F:所有要价的总和
H:所有投标价格的总和
J:虚拟挂单的数量
L:虚拟交易的数量
N:虚拟交易的净利润

P:实际待处理订单的数量
R:实际交易的数量
T:实际交易的净利润


从D列到N列的所有数值都是正确的(绿框)意味着优化任务中的打勾数据处理总是正常工作。


红框内有错误的数值。

1.关于P。
P应该与J完全相同,因为虚拟和真实都应该计算相同前提条件下的挂单数量。
前提条件得到满足,立即输入待定、P++的代码块。 之后,输入OrderSend()。
极不正常的P结果意味着程序在相同条件下运行时,后续指令有时跳转正确(J),有时不跳转正确。

2、关于R。
R在OnTradeTransaction()中被计算。
P中的订单,如果被触发,应该被计入R中。
所有的R零意味着EA运行中的真实交易活动从未进入OnTradeTransaction()。
也许这是因为目前的P结果只是随机错误,而不是有意义的悬案?

3、关于T。
T的利润或损失应该来自R的头寸。
如果R中的仓位计数器全部为零,那么T中的盈亏计算从何而来?


4.最后说明一下。
P的值非常接近策略测试者返回的 "总交易量 "值,但不完全相同。
根据我的多次测试,似乎 "总交易量 "的值总是与EA的输入优化参数处于相同的算术序列,并具有相同的步长值。
输入参数是算术序列是正常的,但一个意义完全不相关的变量的值也是一个类似的算术序列?

 

为什么没有一个版主跑到这里来删除帖子,而把它留下

<DELETED>

这是一个英语论坛

以英文发表

?双重标准?

原因: