堡垒。执法问题 - 页 91

 
fxsaber:

只有在取消未决订单时才有问题?


不,它发生在所有模式中(设置、修改、取消)。

幸运的是没有那么频繁....

 
prostotrader:

不,它发生在所有模式中(安装、修改、取消)。

当安装过程中出现问题时,给出ORDER_TIME_DONE_MSC和ORDER_TIME_SETUP_MSC 显示的内容。

当执行时,也是DEAL_TIME_MSC。

 

我不知道是否有人写过,但是当我在市场上进行交易时,我的订单并不总是有效。我按下购买键,它却停滞不前,交易没有打开,有时只有在交易第三次打开后才打开。我很不高兴(( 展开)也希望它能少一点,但这是另一个故事。我对促销活动和奖金感到很兴奋,使终端的缺点变得明亮了一些))。

 
fxsaber:

当安装过程中会出现问题时,给出ORDER_TIME_DONE_MSC和ORDER_TIME_SETUP_MSC 显示的内容。

执行时,也显示DEAL_TIME_MSC。


而你想通过获取ORDER_TIME_DONE_MSC看到什么,因为它是提款或执行的时间?

今天(订单已设定,未执行)。

2017.07.25 10:34:32.675 Trades  'xxxxx': buy limit 2.00 GAZR-6.18 at 12585
2017.07.25 10:34:35.520 Trades  'xxxxx': accepted buy limit 2.00 GAZR-6.18 at 12585
2017.07.25 10:34:35.520 Trades  'xxxxx': buy limit 2.00 GAZR-6.18 at 12585 placed for execution in 2846.102 ms
===============================================================================================================
2017.07.25 10:34:33.695 trader (GAZR-6.18,M1)   CheckOrders: Задержка ответа сервера. Ожидание продолжается...
2017.07.25 10:34:34.702 trader (GAZR-6.18,M1)   CheckOrders: Задержка ответа сервера. Ожидание продолжается...
==============
Ticket = #70456445

编码

ulong ticket = 70456445;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
    if(HistoryOrderSelect(ticket))
    {
      ulong start = ulong(HistoryOrderGetInteger(ticket, ORDER_TIME_SETUP_MSC));
      ulong end = ulong(HistoryOrderGetInteger(ticket, ORDER_TIME_DONE_MSC));
      ulong diff = end - start;
      Print("Order start = ", start);
      Print("Order end = ", end);
      Print("Order diff = ", diff);
    }
   
//---
   return(INIT_SUCCEEDED);
  }

结果。

2017.07.25 14:08:03.281 Time_test (GAZR-6.18,M1)        Order start = 1500978875000
2017.07.25 14:08:03.281 Time_test (GAZR-6.18,M1)        Order end =   1500978890000
2017.07.25 14:08:03.281 Time_test (GAZR-6.18,M1)        Order diff =  15000
 
prostotrader:

而你想通过获取ORDER_TIME_DONE_MSC看到什么,因为它是提款或执行时间?

我在考虑执行问题。例如,你在当前的价格 上设置一个限制。然后你就可以估计出执行的时间。

坦率地说,我们缺乏订单的信息,这将说明订单何时被MT5服务器注册,而不是何时已经在交易所设置。

 
fxsaber:

对执行的思考。例如,在目前的价格 上设置一个限制。然后你就可以估计出执行的时间。

老实说,对于订单来说,没有足够的信息说明订单何时被MT5服务器注册,而不是何时已经被设置到交易所。


我已经就另一条日志记录联系了SD,说该订单已经被交易所接受,我已经收到了回复。

Support Team 2017.02.28 12:10
Асинхронный метод не ожидает и не отслеживает результат операции (выставление ордера), только сам факт посылки, и соответственно, не протоколирует его.

添加

但是,事实上,有时服务器处理订单(在发送至交易所之前)超过2-3秒。- 是非常糟糕的...

添加

通常,在我的配置中是5-6毫秒。

2017.07.25 14:32:40.575 Trades  'ххххх': cancel order #70570407 buy limit 1.00 PLD-12.17 at 806.78
2017.07.25 14:32:40.581 Trades  'ххххх': accepted cancel order #70570407 buy limit 1.00 PLD-12.17 at 806.78
2017.07.25 14:32:40.581 Trades  'ххххх': cancel order #70570407 buy limit 1.00 PLD-12.17 at 806.78 placed for execution in 6.194 ms
 
prostotrader:

但是,有时服务器处理订单(在发送给交易所之前)的时间超过2-3秒这一事实。- 它已经非常糟糕了...

这似乎是一个相当罕见的错误。我们应该写一个EA,把限制器放进去和拿出来。并要求SD在捕捉到错误的情况下在真实上运行它。

 
fxsaber:

似乎是一个非常罕见的错误。我们应该写一个能放入和取出限制器的EA。并要求SD在真实的情况下运行它,并捕捉错误。


2014.12.16 06:27 以来,SD一直在这样做。

 
prostotrader:

2014.12.16 06:27 以来,SD已经在这样做了。

似乎没有这样做的愿望。

 
fxsaber:

没有欲望,似乎是这样。


也许...但我认为愿望是存在的,但是!我想,这是不可能的。

MT5服务器是通过Plaza II运行的,不幸的是我不知道MQ的接口是如何实现的。

但在做我的界面时,我看到有非常大的订单流。

在处理命令时有轻微的 "滞后"(对于1次登录来说,每秒的操作不应超过30次),试想一下有多少

经纪人的用户有......?