MT5和速度在行动 - 页 13

 
Dmi3:

我是一个交易员,我在终端用肉眼看到的就是我所唱的。我是一个交易员,我可以用肉眼看到我的终端上的东西,这就是我看到的。

当然,从理论上讲,我可以把一些EA从我的笔记本电脑放在家里,看看它的行为。

我只是觉得问题可能出在服务器方面,如果历史很深的话。

 
Aleksey Vyazmikin:

只是认为问题可能出在服务器端,如果历史记录被深入请求。

要求所有EA的历史记录为过去120秒。每天有超过10,000个订单。

 
Dmi3:

要求所有EA的历史记录为过去120秒。每天有超过10,000个订单。

然后的想法是,一切都应该在内存中。

 

有大约一百个独立的交易逻辑可供交易。同时,有十多个交易符号。

由于滞后性,不可能将所有这些都塞进一个异步专家顾问中。我必须创建几个专家顾问,并使它们并行运行。

 
fxsaber:

有大约一百个独立的交易逻辑可供交易。同时,有十多个交易符号。

由于滞后性,不可能将所有这些都塞进一个异步专家顾问中。我必须创建几个专家顾问,并使它们并行运行。

后来发现,一个终端不可能塞进100多个EA,因此有必要启动几个平行终端。然后....

 
Dmi3:

然后事实证明,你不能在一个终端中塞进超过100个EA,你必须运行几个平行的终端。然后....

一旦消除了滞后性,就有可能把它们塞进一个EA。这将使VPS得到很大的缓解。

 
OnTick查询从前一个tick开始的tick历史。
2020.08.17 21:26:45.729 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:26:47.848 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:26:47.848 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:26:49.959 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:26:53.135 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:26:54.199 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 6 ms.
2020.08.17 21:26:54.199 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:26:54.199 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:26:54.199 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:27:00.525 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:27:08.956 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:27:13.173 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:27:27.931 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:27:30.048 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:27:30.048 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:27:42.669 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.
2020.08.17 21:27:43.726 Alert: Time[NewTicks.mqh 208: ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,LastTime)] = 5 ms.

非常稳定的结果。

 

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

图书馆: MT4Orders

fxsaber, 2020.08.18 08:49

在输出滞后>30毫秒的情况下也可以看到类似的结果。

2020.08.18 05:12:20.760 Alert: Time[MT4Orders.mqh 1746: ::PositionGetTicket(Index)] = 45 ms.
2020.08.18 06:08:07.116 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 38 ms.
2020.08.18 06:44:57.080 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 59 ms.
2020.08.18 07:01:37.171 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 33 ms.
2020.08.18 07:04:19.996 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 34 ms.
2020.08.18 07:04:55.020 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 43 ms.
2020.08.18 07:30:07.414 Alert: Time[MT4Orders.mqh 1746: ::PositionGetTicket(Index)] = 37 ms.
2020.08.18 07:38:31.913 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 40 ms.
2020.08.18 07:44:08.415 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 36 ms.
2020.08.18 07:45:22.918 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 38 ms.
2020.08.18 08:00:37.016 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 40 ms.
2020.08.18 08:01:36.007 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 33 ms.
2020.08.18 08:08:26.948 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 34 ms.
2020.08.18 08:18:41.664 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 33 ms.
2020.08.18 08:48:51.114 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 32 ms.
2020.08.18 09:12:33.762 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 49 ms.
2020.08.18 09:28:42.364 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 47 ms.
2020.08.18 09:28:42.364 Alert: Time[MT4Orders.mqh 1808: ::PositionSelectByTicket(Ticket)] = 38 ms.
2020.08.18 09:30:30.665 Alert: Time[MT4Orders.mqh 1746: ::PositionGetTicket(Index)] = 40 ms.
2020.08.18 09:33:50.114 Alert: Time[MT4Orders.mqh 1746: ::PositionGetTicket(Index)] = 44 ms.
2020.08.18 09:38:41.204 Alert: Time[MT4Orders.mqh 1675: ::PositionSelectByTicket(::OrderGetInteger(ORDER_TICKET))] = 77 ms.

没有交易历史的体面的滞后。

 
我还没有想出如何监控它。
2020.08.18 11:14:05.072 MarketWatchTick:  time = 2020.08.18 11:14:00.674
2020.08.18 11:14:05.195 MarketWatchTick:  time = 2020.08.18 11:14:05.929

左边是当地时间,右边是最后一个 字符引号的时间

你可以看到,两行的打印结果(在OnTick中进行)之间已经过了100ms。同时,符号时间也改变了五秒!这就是为什么我们要把它称为 "小号"。


这意味着在字符价格接收方面有五秒钟的滞后。同时(没有在这里公布,但在我的日志中),在实时的CopyTicksRange在这两个事件之间产生了35个ticks。


我无意中注意到它,并注意到,在相邻的OnTick-calls之间有许多ticks。

 

我要求开发者推荐他们检查计算机是否准备好用于HFT的顺序。

对于同样的HFT,你需要准备一台合适的机器。在这方面有官方建议(通过一些测试)可能是个好主意。