MT5和速度在行动 - 页 33

 
Renat Fatkhullin:

你的市场/交易状态不会改变,直到你在一段时间后收到你的异步请求的详细步骤,你可以在OnTradeTransaction 中捕捉到这一点。

或者没有,如果与交易服务器的通信出现哪怕是短暂的失误

 
fxsaber:

加速发生了,但不幸的是,由于某些原因,缓存的更新不是在一毫秒之内,所以它在每一步更新历史的地方都会发出警报。


请在大的历史上试一试。


我认为这一毫秒是由于为缓存更新分配内存造成的。其他方面似乎都没有减缓它的速度。

切换到微秒计数。毫秒已经不合适了。

 
Renat Fatkhullin:

切换到微秒计数。毫秒已经不合适了。

我做到了。但这当然不会使HistorySelect 工作得更快。

附加的文件:
Benchmark.mqh  3 kb
 
Andrey Khatimlianskii:

当然,必须要有一个快照对象。

明白了。

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

图书馆:虚拟

fxsaber, 2020.09.24 12:25

该快照的速度是纯MQL5的三倍。例如,在这种情况下,快照比Trade\Trade.mqh快三倍。

 
fxsaber:

明白了。

对于信息来说,你的库在测试器中没有帮助。

测试器没有交易历史 的缓存,它有自己的直接访问引擎,没有一个副本。由于存在单线程执行,我们既不需要缓存也不需要同步器。

自测试器开发以来,对交易历史的访问速度一直是尽可能快的。

 
Renat Fatkhullin:

对于信息来说,你的库在测试器中没有帮助。

上述测量是针对终端中大量的未结头寸和订单进行的。历史记录也在快照中,但我没有测量其性能。

不幸的是,当有大量的位置/订单同时存在时,测试器的性能会出现灾难性的下降。这就是为什么我甚至没有想到要测量它。但以某种方式组织起来是可能的。

测试仪没有交易历史 的缓存,它有自己的直接访问引擎,没有一个副本。由于是单线程执行,我们不需要任何缓存或同步器。

自测试器开发以来,访问交易历史的速度一直是最高的。

我必须在论坛上查一下。我记得展示了通用访问历史是如何优于测试器中的常规机制的。

 

终端中的历史采样仍在加速,它将在下一个测试版中出现。

一旦我们完成了终端,我邀请你在测试器中进行速战。

 
Renat Fatkhullin:

一旦我们完成了终端,我邀请你在测试器中进行速战。

不幸的是,只有MT5式才有可能被击败。由于MT4风格的概念将在性能上与MT5测试器相撕,但那时的比较将不太正确。

 
试着建立2622,在那里他们进一步提高了采样率。
 
Renat Fatkhullin:
试着建立2622,在那里他们进一步提高了采样率。

谢谢你,已经明显好转了。不幸的是,在周末不可能改变故事,所以无法检查。