MT5和速度在行动 - 页 66

 

关于提出的源代码

#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279

void OnStart()
{
  for (int i = 0; i < 5; i++)
    _BV(Sleep(1), 1);
}

如果你想要速度,你应该放弃这个怪物,因为你在拖累自己。

这种测量工具是不合适的,因为它引入了巨大的误差

在我的脚本中,我把

#define  ITERATIONS 5

下面是5次迭代的日志。

2020.11.04 16:37:24.430 TestSleep (EURUSD,H1)   total 9673 microseconds (1.935 ms per iteration)

少于2毫秒。

 
fxsaber:
开发商通过沉默,完全承认了两个问题。

开发商以其沉默承认没有问题。

 
Slava:

下面是5次迭代的日志

少于2毫秒。

你的剧本。

2020.11.04 16:46:40.341 Test9 (EURCHF,M1)       total 67620 microseconds (13.524 ms per iteration)


机器。

2020.11.04 16:47:52.962 Terminal        Windows 10 build 19042, Intel Core i7-2700 K  @ 3.50 GHz, 7 / 15 Gb memory, 18 / 29 Gb disk, IE 11, Admin, GMT+2
 
Anton:

开发商以其沉默承认没有问题。

帅气的!与之前的市场审查相比,蜱虫来的时间更少,这是否正常?

 
fxsaber:

帅气的!与之前的市场审查相比,蜱虫来的时间更少,这是否正常?

正常。

我在5天前就回答了这个问题,在同一个主题中。


SymbolInfoTick发送从经纪人的服务器上收到的数据。服务器发送的东西就是你得到的东西。

如果对你的经纪人播放的tick流有疑问,你应该联系你的经纪人。

 
Slava:

专家队列是一种可锁定的资源。当一个事件被写入队列时,专家顾问会等待(当然,除非专家顾问目前正在处理一个事件)。

专家顾问的事件来自相应图表的事件队列,而该队列又来自相应符号的处理周期。而这种循环处理不仅将事件分配到自己的图表中,而且还做了很多其他事情。

我已经告诉你,Windows不是一个实时操作系统。

任务的制定非常简单:如何编写一个专家顾问,在等待队列时不会放慢速度?你不能有一个无限的循环,因为睡眠是一个刹车。所以,异步循环走入了歧途。现在,以长达几毫秒的形式捕捉等待,根本不是问题的关键。

 
fxsaber:

你的剧本。


而对于10,000次的迭代?

 
Slava:

而对于10,000次的迭代?

2020.11.04 17:09:30.483 total 155965249 microseconds (15.597 ms per iteration)

我邀请其他人分享在他们机器上运行这个脚本 的结果。

 
Anton:

这很好。

我在5天前就回答了这个问题,在同一个主题中。

SymbolInfoTick发送从经纪人的服务器上收到的数据。服务器发送的东西就是你得到的东西。

如果对你的经纪人播放的tick流有疑问,那么你应该联系你的经纪人。

这就是为什么我向MQ-Demo的所有者提出这个问题。

 
fxsaber:

这个问题的表述非常简单:如何编写一个 在等待队列时不会减速的EA?无限循环是不可能的,因为睡眠是一个刹车。所以,异步循环走入了歧途。现在,以长达几毫秒的形式捕捉等待,根本不是问题的关键。

不要欺骗你自己和你周围的人。

你在这里的所有陈述描述的是一个完全不同的任务:如何编写一个专家顾问,在一个9年的重负荷硬件上不会感到迟钝。