堡垒。执法问题 - 页 108

 

与证券交易所时间同步的问题可以非常简单地得到解决

struct MqlBookInfo 
  { 
   ENUM_BOOK_TYPE   type;       // тип заявки из перечисления ENUM_BOOK_TYPE 
   double           price;      // цена 
   long             volume;     // объем 
  };

从2号广场的规格来看

只需将时间添加到MqlBookInfo结构中 :)

struct MqlBookInfo 
  { 
   ENUM_BOOK_TYPE   type;       // тип заявки из перечисления ENUM_BOOK_TYPE 
   double           price;      // цена 
   long             volume;     // объем 
   ulong            moment;     // время (добавить)    
  };
 
fxsaber:

我不知道,这与上面的脚本没有关系。让我看看在发生问题的交易账户上的输出情况。

错误的脚本是:)

2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508923,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508924,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508925,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508926,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508927,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508928,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_DONE_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_SETUP_MSC)) = 2018.04.25 16:49:23.000
 
Dennis Kirichenko:

妙趣横生!

 
prostotrader:

与证券交易所时间同步的问题可以非常简单地得到解决

从2号广场的规格来看

即只需在MqlBookInfo结构中添加时间 :)

但它如何解决阅读日志的问题,即当我有一个时间,而Exchange/服务器有另一个时间?

在任何情况下,我们都无法得到它。

 
Aleksey Vyazmikin:
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508923,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508924,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508925,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508926,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508927,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508928,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_DONE_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_SETUP_MSC)) = 2018.04.25 16:49:23.000

我不得不使用时间,这就更乱了,因为时间与服务器的日志不一致。

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

堡垒。关于执行的问题

Aleksey Vyazmikin, 2018.04.26 12:56

看起来是客户端的网络延迟,下面是交易服务器端的执行情况。

0       6       2018.04.25 16:49:24.024 85.***.***.***    '***': exchange buy 10.00 Si-6.18 at market (62785 / 62788 / 62787)
0       6       2018.04.25 16:49:24.024 85.***.***.***    '***': request transfered to dealers, rule 'FORTS Gateway #real' (exchange buy 10.00 Si-6.18 at market)
0       6       2018.04.25 16:49:24.028 127.0.0.1       '2': request from '***' (exchange buy 10.00 Si-6.18 at market)
0       6       2018.04.25 16:49:24.029 127.0.0.1       '2': placed for execution for '***' (exchange buy 10.00 Si-6.18 at market)(62785 / 62788 / 62787) 
0       6       2018.04.25 16:49:24.029 85.***.***.***    '***': order placed for execution [#87849076 buy 10.00 Si-6.18 at market], time 5.98 ms
0       6       2018.04.25 16:49:24.030 FORTS Gateway #real     '***': order #87849076 buy 10.00 Si-6.18 at market request new due execution [request new order #87849076], time: 0.05 ms
0       6       2018.04.25 16:49:24.036 FORTS Gateway #real     '***': order #87849076 buy 10.00 Si-6.18 at market placed due execution [added order #87849076, buy limit 10.00 Si-6.18 at 65426 [based on order '30444116819']], time: 0.18 ms
0       6       2018.04.25 16:49:24.041 FORTS Gateway #real     '***': deal performed [#48508923 buy 1.00 Si-6.18 at 62788]
0       6       2018.04.25 16:49:24.041 '***': order performed partially buy 1.00 at 62788 [#87849076 buy 10.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.041 FORTS Gateway #real     '***': order #87849076 buy 10.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62788 [based on deal '2026006054']], time: 2.06 ms
0       6       2018.04.25 16:49:24.043 FORTS Gateway #real     '***': deal performed [#48508924 buy 1.00 Si-6.18 at 62788]
0       6       2018.04.25 16:49:24.043 '***': order performed partially buy 1.00 at 62788 [#87849076 buy 10.00 / 1.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.043 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 1.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62788 [based on deal '2026006055']], time: 3.02 ms
0       6       2018.04.25 16:49:24.048 FORTS Gateway #real     '***': deal performed [#48508925 buy 5.00 Si-6.18 at 62788]
0       6       2018.04.25 16:49:24.048 '***': order performed partially buy 5.00 at 62788 [#87849076 buy 10.00 / 2.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.048 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 2.00 Si-6.18 at market filled due execution [filled order #87849076, buy 5.00 Si-6.18 at 62788 [based on deal '2026006056']], time: 1.73 ms
0       6       2018.04.25 16:49:24.050 FORTS Gateway #real     '***': deal performed [#48508926 buy 1.00 Si-6.18 at 62789]
0       6       2018.04.25 16:49:24.050 '***': order performed partially buy 1.00 at 62789 [#87849076 buy 10.00 / 7.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.050 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 7.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62789 [based on deal '2026006057']], time: 3.40 ms
0       6       2018.04.25 16:49:24.053 FORTS Gateway #real     '***': deal performed [#48508927 buy 1.00 Si-6.18 at 62789]
0       6       2018.04.25 16:49:24.053 '***': order performed partially buy 1.00 at 62789 [#87849076 buy 10.00 / 8.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.053 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 8.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62789 [based on deal '2026006058']], time: 1.49 ms
0       6       2018.04.25 16:49:24.054 FORTS Gateway #real     '***': deal performed [#48508928 buy 1.00 Si-6.18 at 62789]
0       6       2018.04.25 16:49:24.055 '***': order performed buy 1.00 at 62789 [#87849076 buy 10.00 / 9.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.055 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 9.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62789 [based on deal '2026006059']], time: 4.03 ms

此外,MT5的交易历史是说谎的,显示一切执行得很完美。

 

这一点尤其说明问题。

设置和执行订单 的时间是一样的 :)

2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_DONE_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_SETUP_MSC)) = 2018.04.25 16:49:23.000
 
prostotrader:

设置和执行订单 的时间是一样的 :)

奇怪的巧合是,时间是一秒钟的倍数(点后没有毫秒)。

 
fxsaber:

那就更胡闹了,因为时间与服务器日志不一致。

此外,MT5的交易历史是说谎的,显示一切执行得很完美。


 
fxsaber:

奇怪的巧合是,时间是一秒钟的倍数(点后面没有毫秒)。

是的,这让我很恼火,但我认为这是个服务器设置。

 
prostotrader:

这一点尤其说明问题。

设置和执行订单 的时间是一样的 :)

我想知道,如果有谁不是来自Otkritie,在那里的历史上没有毫秒是一样的还是什么?