MT4-测试仪 VS MT5-测试仪 - 页 2

 
fxsaber:

过度杀戮(开始时为100,000美元)。

你对描述测试条件有一个奇怪的概念。

这种处理细节的方法给你随后的所有结论投下了巨大的阴影。

 
fxsaber:

现在这在MT4中不起作用。

它现在在MT4中工作。

从技术上证明并解释这是如何实现的。


我没有诋毁MT5的目的。我只是在做一个可重复的比较。当然,MT5测试器在某些方面是无法实现的,但MT4的调校现在也能给出MT5没有的东西,但这些东西确实是需求的。我们已经看到,在MT4上对真实的自定义刻度线进行准确的测试是100%的。嗯,还有测试员的 各种设置(佣金、缩进、待定订单的激活规则等)的规定也在那里。一般来说,有些东西在MT5中还没有实现。

是否有或是否有确切的证据表明,滑移和激活规则完全按照所述的方式运作?

你能从技术上证明并解释外部程序如何改变MT4测试器引擎的订单触发条件?不是通过对这台发动机的深层注射?

 
Renat Fatkhullin:

你对测试条件的描述有一个奇怪的概念。

这样一种处理细节的方法给你后来的所有结论投下了巨大的阴影。

如果我没有告诉你什么,我不是故意的。我想我之前给了你所有的数据。但我要再重复一次。

  • 完全矫枉过正。
  • 你以100 000美元开始。
  • 范围在截图上。
  • 目前还没有设定强行闯关的条件。
  • 2017.04.10-2017.04.16(周)的欧元兑美元M1 真实点数。
  • 只有一个本地代理(1个核心)被启用。

 
是否有任何方法可以实际测量在一个特定的MT5测试中,有多少百分比的归属。
加密测试参数(结果) => 发送到回环 => 解密测试参数(结果)。

如果我们从天花板上取50毫秒,我们得到260 * 2 * 50 / 1000 = 26秒。
这并不是太少。
如果能知道真实的数字,那就很有意思了。
 

Renat Fatkhullin:
Докажите и объясните технически, как это достигается.

它在技术上是如何实现的--我不知道。证明它--不是马上就准备好了(睡觉后我会的)。

是否有或是否有准确的证据表明,滑移和激活规则与所述完全一致?

你能从技术上证明并解释外部程序如何改变MT4测试器引擎的订单触发条件?不是通过对这台发动机的深层注射?

仅仅是多年来价差没有被固定这一事实就表明,注入的资金很深。这个MT4功能在许多论坛上非常受欢迎。唯一令人沮丧的是,它不是免费的。但试验是全面的,所以每个人都可以尝试。事实上,我在几个小时前安装了试用版本身,以创建这个主题。

建设性的将在稍作休息后才能支持。实际上,如果需要的话,大家现在已经可以检查报表了。

 
前20/260名通过
QR      0       03:29:37.031    Tester  0 : passed in 0:37:27.366
HK      0       03:30:36.307    Tester  1 : passed in 0:00:58.406
MM      0       03:30:40.510    Tester  2 : passed in 0:00:04.196
OF      0       03:30:41.731    Tester  3 : passed in 0:00:01.217
IH      0       03:30:42.538    Tester  4 : passed in 0:00:00.811
MQ      0       03:30:44.880    Tester  5 : passed in 0:00:00.764
LK      0       03:30:45.577    Tester  6 : passed in 0:00:00.687
PL      0       03:30:46.255    Tester  7 : passed in 0:00:00.671
MF      0       03:30:46.929    Tester  8 : passed in 0:00:00.671
GO      0       03:30:47.602    Tester  9 : passed in 0:00:00.671
CO      0       04:15:27.776    Tester  10 : passed in 0:44:40.160
ND      0       04:17:28.477    Tester  11 : passed in 0:01:59.450
HM      0       04:17:34.594    Tester  12 : passed in 0:00:06.099
CK      0       04:17:36.172    Tester  13 : passed in 0:00:01.575
QP      0       04:17:37.080    Tester  14 : passed in 0:00:00.905
LN      0       04:17:37.840    Tester  15 : passed in 0:00:00.765
NG      0       04:17:38.555    Tester  16 : passed in 0:00:00.702
ML      0       04:17:39.244    Tester  17 : passed in 0:00:00.687
RJ      0       04:17:39.925    Tester  18 : passed in 0:00:00.670
CS      0       04:17:40.603    Tester  19 : passed in 0:00:00.671

输入参数

你可以看到,当Shift=1时,有狂野的刹车。例如,以下是MT4如何应对零通的情况

2017.05.08 04:47:13.779 EURUSD,M1: 1865415 tick events (7292 bars, 1865515 bar states) processed in 0:00:33.541 (total time 0:00:34.289)

即60多倍的速度。


SZ

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

虫子,虫子,问题

fxsaber, 2017.04.26 15:08

请在优化器日志中显示优化参数的范围和步骤。

在代理商的日志中也有这样的句子

NS      0       14:11:00.853    Tester  756 : passed in 0:00:04.789
MJ      0       14:11:03.447    Tester  757 : passed in 0:00:02.574
RM      0       14:11:05.860    Tester  758 : passed in 0:00:02.340

伴随着相关运行的信息--EA名称和它的输入参数。

 
fxsaber:

可以看出,当Shift=1时,野性的刹车。例如,以下是MT4如何处理零点通过的情况

等待优化完成变得毫无意义,所以我停止了。

运行一个零的单次通过显示(没有等待完成),随着通过的运行,测试器的性能下降非常多。

不涉及历史功能。

 
fxsaber:

如果我说得不对,我就不是这个意思。我想我之前给了你所有的细节。但我要再说一遍。

  • 完全过头了。
  • 起价为100 000美元。
  • 范围在截图上。
  • 目前还没有设定强行闯关的条件。
  • 2017.04.10-2017.04.16(周)的欧元兑美元M1真实点数。
  • 只启用了一个本地代理(1个核心)。

好吧,这是我在同一(只有Alpari-MT5-Demo服务器)上的结果。

  • Windows 10 Pro, Intel Xeon E5-2690 @ 2.60GHz

  • 1个核心:27分钟55秒
    2017.05.08 05:13:09.636 Tester          optimization finished, total passes 260
    2017.05.08 05:13:09.647 Statistics      optimization done in 27 minutes 55 seconds
    2017.05.08 05:13:09.647 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

  • 8个核心:6分11秒
    2017.05.08 04:38:18.663 Tester          optimization finished, total passes 260
    2017.05.08 04:38:18.674 Statistics      optimization done in 6 minutes 11 seconds
    2017.05.08 04:38:18.674 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    
  • 24个核心。3分33秒
    2017.05.08 05:17:40.990 Tester          optimization finished, total passes 260
    2017.05.08 05:17:41.000 Statistics      optimization done in 3 minutes 33 seconds
    2017.05.08 05:17:41.000 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

显然,在MT5中,在单核中进行优化是没有意义的,即使在8核中,一切都会变得非常快。我相信你在MT4中的14分钟是在每核功率接近的CPU上完成的,所以时间可以比较。我甚至每个核心的频率只有2.6Ghz。

为什么在时间上没有线性减少?因为任务是不均衡的,因为行业的数量。有些通行证有100个交易(计算需要一秒钟),有些有23万个交易(长达50秒)。由于计算速度完全由谁和如何分配最长的通行证决定,所以包装中的关键路径不会大大减少。


你的滞后纯粹是由于发布版本中低效的交易历史扫描造成的。放缓的案例是有20万个或更多交易的通行证。

整个专家顾问的例子是这样写的:它只做一件事--以一种极其低效的方式扫描每一个刻度的整个交易历史。这就是每一次对整个历史的180万次全面重新扫描。更重要的是,MT5选择的代码不是原生的,而是以MT4风格包装形式的拐杖,这给了更多的费用。


正如我前面所展示的,我们大幅度地改写了大型贸易历史的操作和取样,现在在历史的深度上没有任何区别。

附上最新的Build 1598来检查,在那里一切都运行得很快。只需替换MetaTrader 5目录下的文件。

以下是通行证的记录。

OK      0       04:45:17.505    History EURUSD,M1: history cache allocated for 484457 bars and contains 473528 bars from 2016.01.04 00:00 to 2017.04.07 23:59
IR      0       04:45:17.540    History EURUSD,M1: history begins from 2016.01.04 00:00
RF      0       04:45:24.469    Tester  0 : passed in 0:00:07.188
KO      0       04:45:26.727    Tester  1 : passed in 0:00:02.188
CQ      0       04:45:27.857    Tester  2 : passed in 0:00:01.109
QJ      0       04:45:28.758    Tester  3 : passed in 0:00:00.890
NL      0       04:45:29.525    Tester  4 : passed in 0:00:00.750
ME      0       04:45:30.237    Tester  5 : passed in 0:00:00.688
LO      0       04:45:30.923    Tester  6 : passed in 0:00:00.671
RP      0       04:45:31.612    Tester  7 : passed in 0:00:00.672
NJ      0       04:45:32.363    Tester  8 : passed in 0:00:00.734
RS      0       04:45:33.065    Tester  9 : passed in 0:00:00.687
MK      0       04:45:42.777    Tester  10 : passed in 0:00:09.703
HP      0       04:45:45.928    Tester  11 : passed in 0:00:03.094
EN      0       04:45:47.354    Tester  12 : passed in 0:00:01.406
HG      0       04:45:48.313    Tester  13 : passed in 0:00:00.953
LL      0       04:45:49.110    Tester  14 : passed in 0:00:00.781
QJ      0       04:45:49.828    Tester  15 : passed in 0:00:00.703
NS      0       04:45:50.523    Tester  16 : passed in 0:00:00.688
MH      0       04:45:51.215    Tester  17 : passed in 0:00:00.672
DF      0       04:45:51.901    Tester  18 : passed in 0:00:00.672
FO      0       04:45:52.646    Tester  19 : passed in 0:00:00.735
NE      0       04:46:04.884    Tester  20 : passed in 0:00:12.219

一个有216k个交易的零通过(Shift=1,Limit=5参数)在7秒内完成。

附加的文件:
MetaTester64.zip  7571 kb
terminal64.zip  14201 kb
 
Renat Fatkhullin:

整个专家顾问的例子是这样写的,它只做了一件事--它在每一个tick上扫描整个交易历史,效率低得可怕。这就是每次对整个交易历史进行180万次全面重新扫描。而MT5的代码并不是原生的,而是以MT4风格的包装形式存在的拐杖,这给了人们更多的支出。

证明
bool Func1( datetime, datetime ){ return false; };
bool Func2( long ){ return false; };

#define HistorySelect Func1
#define HistorySelectByPosition Func2

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

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

MT4-测试仪 VS MT5-测试仪

fxsaber, 2017.05.08 01:11

如果对使用第三方库导致MT5速度减慢有任何怀疑,愿意的人可以用自己的方式在MQL5中重写这个EA的简单MT4逻辑,并测试这个假设。
 
Renat Fatkhullin:

正如我前面所展示的,我们已经大幅改写了大型贸易历史的操作和取样,现在在历史的深度上没有区别。

我附上了最新的Build 1598来检查,在那里一切工作都很快。只需改变MetaTrader 5目录下的文件。

1598比1596工作得更快。而且它甚至在根本不使用历史功能的地方也能发挥作用。显然,终端在运行过程中造成其内脏的那些缓慢功能。


优化MT4

2017.05.08 02:35:33.074 Lucky: optimization started
2017.05.08 02:49:51.431 Lucky: optimization finished in 0:14:18
2017.05.08 02:49:51.436 There were 260 passes done during optimization


优化MT5

2017.05.08 07:40:38.429 Tester  Experts\MT4Orders\Lucky.ex5 on EURUSD,M1 from 2017.04.10 00:00 to 2017.04.16 00:00
2017.05.08 07:40:38.597 Tester  EURUSD: preliminary downloading of history ticks started, it may take quite a long time
2017.05.08 07:40:39.600 Tester  EURUSD: preliminary downloading of history ticks completed, 100.38 Kb in 0:01.170 (85.80 Kb/sec)
2017.05.08 07:40:39.600 Tester  EURUSD: ticks data begins from 2016.11.01 00:00
2017.05.08 07:40:39.600 Tester  complete optimization started
2017.05.08 07:40:39.600 Tester  size of initial task batch is 260
2017.05.08 07:40:39.612 Core 1  agent process started
2017.05.08 07:40:39.612 Core 1  connecting to 127.0.0.1:3000
2017.05.08 07:40:41.620 Core 1  connected
2017.05.08 07:40:41.622 Core 1  authorized (agent build 1598)
2017.05.08 07:40:42.771 Core 1  common synchronization completed
2017.05.08 07:40:42.797 Core 1  EURUSD: ticks synchronized already [43 bytes]
2017.05.08 08:04:54.332 Tester  optimization finished, total passes 260
2017.05.08 08:04:54.342 Statistics      optimization done in 24 minutes 16 seconds
2017.05.08 08:04:54.342 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2017.05.08 08:04:54.342 Core 1  connection closed


现在MT5比MT4慢了1.7倍。


ZS 不是所有的运行都完全匹配。所以三者中肯定有一个在说谎(MT4+TDS、MT5、MT4Orders)。我们将进行搜索。