堡垒。执法问题 - 页 124

 

他们说,把你的脚放下

 

服务器又搞砸了(((.

它挂起了3分钟,然后[Request timeout]

2019.01.04 14:18:20.427 Trades  'xxxxx': modify #97538997 buy limit 1.00 BR-3.19 -> price: 57.39, sl: 0.00, tp: 0.00) done in 47.866 ms
2019.01.04 14:18:28.399 Trades  'xxxxx': modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00
2019.01.04 14:18:28.445 Trades  'xxxxx': accepted modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00
2019.01.04 14:18:28.445 Trades  'xxxxx': modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00 placed for execution
2019.01.04 14:18:28.461 Trades  'xxxxx': deal #56712593 sell 1.00 BR-3.19 at 57.51 done (based on order #97538868)
2019.01.04 14:21:28.407 Trades  'xxxxx': failed modify order #97538868 buy 0.00 BR-3.19 at market sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00 [Request timeout]

发现服务器,终端构建1947。
该怎么做?



 
Sergey Chalyshev:

服务器又搞砸了(((.

它挂起了3分钟,然后[请求超时]

发现服务器,终端建立1947。
我应该怎么做?



赛尔吉!

这是某种失败(我以前没有看到)。

该订单在修改前以57.51的价格执行。

也许这是交易所本身 的故障,因为MT5服务器向交易所发送了修改14:18:28.445 的订单。

并进行了交易14:18:28.461

2019.01.04 14:18:28.461 Trades  'xxxxx': deal #56712593 sell 1.00 BR-3.19 at 57.51 done (based on order #97538868)

有些东西必须 "冻结 "在服务器上(交换),而当 "冻结 "的订单没有找到,所以[请求超时]

对于你的问题,该怎么做?

答案是OnTradeTransaction(TRADE_TRANSACTION_DEAL_AD)。

由以下人员添加

我使用异步订单发送 和以下订单跟踪模式

//+------------------------------------------------------------------+
// Expert Trade Transaction function                                 |
//+------------------------------------------------------------------+
void OnTradeTransaction( const MqlTradeTransaction &trans,
                         const MqlTradeRequest &request,
                         const MqlTradeResult &result )
{
  switch(trans.type)
  {
    case TRADE_TRANSACTION_REQUEST:
      //Получение тикета ордера
    break;
    case TRADE_TRANSACTION_DEAL_ADD:
      //Произошла сделка (отложенный ордер)
    break;
    case TRADE_TRANSACTION_HISTORY_ADD:
     //Ордера нет (исполнился, отменен и т.д)
    break;
    case TRADE_TRANSACTION_ORDER_UPDATE:
      switch(trans.order_state)
      {
        case ORDER_STATE_PLACED:
          //Ордер размешен (модификация)  
        break;
        case ORDER_STATE_PARTIAL:
          //Ордер исполнился частично 
        break;
        case ORDER_STATE_REJECTED:
        case ORDER_STATE_EXPIRED:
          //    
        break;                       
      }
    break;
  }
}
 
prostotrader:

答案是使用OnTradeTransaction(TRADE_TRANSACTION_DEAL_AD),那么你就不会错过交易,因此你会知道订单的情况。

由以下人员添加

我使用异步订单发送 和以下订单跟踪模式

问题就在这里。

如果我们由于某种原因错过了所需的OnTradeTransaction 事件(例如互联网故障、丢失包裹、计算机重启,或者仅仅是事件队列溢出)--我们的下一步行动是什么?

 
JRandomTrader:

这里有一个问题。

如果由于某种原因,我们错过了正确的OnTradeTransaction 事件(例如,互联网崩溃、数据包丢失、计算机重启,或者仅仅是事件队列溢出)--我们的下一步行动是什么?

你所列出的每种情况都有相应的行动。

例如,如果你的电脑被重新启动,而我们有挂单,那么在专家顾问被加载 后,我们检查

检查在这个符号上设置的订单。(有很多事情需要考虑,但一切都可以解决)

 
Aleksey Vyazmikin:

从实用的角度来看,是的,这很有用,但很难想象终端会如何减缓试图同步一切的速度......以及这些数据的异步到达是否有意义--我不确定。

抱歉打扰了您,可能时机不对。只是坐在这里,重读了一下这个主题。正如他们所说的那样,是异步的)。如果你只分析杯子里的数据,那么关于杯子里事件的数据的异步到达可能是有用的。就是说,在水平上的出价运动。然后,如果突然间杯子状态的每一个变化都可以被我们利用,那么无论接下来发生什么,我们都可以利用这个。情况是这样的。

 
Andrey Gladyshev:

我为我的打扰表示歉意,也许现在时机不对。我只是坐在这里重读了一下这个主题。正如他们所说的那样,是异步的)。如果你只分析杯子的数据,那么关于杯子中事件的数据的异步到达可能是有用的。就是说,在水平上的出价运动。然后,如果突然间杯子状态的每一个变化都可以被我们利用,那么无论接下来发生什么,我们都可以使用它。情况是这样的。

据我所知,股票的抛出是由交易所以一定的频率播报的,也就是说,每一个变化都不可能简单地检索出来。

而且,我仍然不明白,它应该用它来做什么?特别是当有强烈的运动时,数据会有延迟......。
 
Aleksey Vyazmikin:

据我所知,股票的抛出是由交易所以一定的频率播报的,也就是说,每一个变化都不可能随便得到。

而且,我还是不明白,它应该用它来做什么?特别是当有强烈的运动时,数据会有延迟...

我将提出一个反问,然后回答。如果我真的坐在交易所里,是否有可能获得关于股票状况的更有意义的信息(或者更准确地说,是及时的)?我说的是主机托管,比如说。

 
Andrey Gladyshev:

我将提出一个反问,然后回答。如果我真的坐在交易所里,是否有可能获得关于股票状况的更有意义的信息(或者应该说是及时的)?我说的是主机托管,比如说。

交流会也将进行广播。还是说你认为会有速率帧的损失?

 
而且这取决于哪个交易所。我不是在考虑我们的。