ФОРТС. Вопросы по исполнению - страница 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 минуты зависает и потом [Request timeout]

Сервер Открытия, терминал билд 1947.
Что делать? 



Сереж!

Это какой-то сбой (у меня такого не наблюдалось).

Этот ордер исполнился по цене до модификации 57,51

Вожможно это глюк самой биржи, потому что сервер МТ5 отправил на биржу приказ на модификацию 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)

Видмо в серваке (бирже) что-то "залипло", а когда "отлипло" ордер не был найден, поэтому [Request timeout]

На твой вопрос Что делать?

Отвечу, что нужно использовать OnTradeTransaction (TRADE_TRANSACTION_DEAL_ADD), тогда не пропустишь сделку, а следовательно будет инфа что произошло с ордером. 

Добавлено

Я использую ассинхронную отправку ордеров и следующую модель отслеживания ордера

//+------------------------------------------------------------------+
// 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_ADD), тогда не пропустишь сделку, а следовательно будет инфа что произошло с ордером. 

Добавлено

Я использую ассинхронную отправку ордеров и следующую модель отслеживания ордера

А вот тут вопрос:

если мы по каким-то причинам пропустили нужное событие OnTradeTransaction (ну там, отвалился инет, потерялся пакет, перезагрузился комп, да просто очередь событий переполнилась) - какие наши дальнейшие действия?

 
JRandomTrader:

А вот тут вопрос:

если мы по каким-то причинам пропустили нужное событие OnTradeTransaction (ну там, отвалился инет, потерялся пакет, перезагрузился комп, да просто очередь событий переполнилась) - какие наши дальнейшие действия?

Для каждого перечисленного Вами случая есть свои действия.

Например, если перегрузился комп и у нас были отложенные ордера, то после загрузки эксперта, мы проверяем

выставоенные по этому инструменту ордера. (там много, что нужно учитывать, но всё решаемо)

 
Aleksey Vyazmikin:

С точки зрения практичности - да, вещь полезная, но сложно представить, как тогда будет тормозить терминал, в попытке все синхронизировать... а есть ли смысл в асинхронном приходе этих данных - не уверен.

Извиняюсь, что влез, возможно не ко времени. Просто сижу, ветку перечитываю. Асинхронно как говорится)). Польза от асинхронного прихода данных о событиях в стакане может быть, если анализировать только данные стакана. То есть движение заявок на уровнях. Тогда, если вдруг нам станет доступно каждое изменение состояния стакана, можно использовать это независимо от происходящего дальше. Как-то так. 

 
Andrey Gladyshev:

Извиняюсь, что влез, возможно не ко времени. Просто сижу, ветку перечитываю. Асинхронно как говорится)). Польза от асинхронного прихода данных о событиях в стакане может быть, если анализировать только данные стакана. То есть движение заявок на уровнях. Тогда, если вдруг нам станет доступно каждое изменение состояния стакана, можно использовать это независимо от происходящего дальше. Как-то так. 

На сколько я понимаю, слепок стакана транслируется биржей с определенной частотой, т.е. каждое изменение нет возможности просто получить.

И, я так и не понял, а что с ним предполагается делать? Особенно, если данные будут приходить с задержкой при сильных движениях...
 
Aleksey Vyazmikin:

На сколько я понимаю, слепок стакана транслируется биржей с определенной частотой, т.е. каждое изменение нет возможности просто получить.

И, я так и не понял, а что с ним предполагается делать? Особенно, если данные будут приходить с задержкой при сильных движениях...

Я встречный вопрос задам, а потом отвечу. Возможно ли будет получать более полноценную информацию (или точнее сказать своевременную) о состоянии стакана, если я буду буквально сидеть на бирже? Я о колокации, например.

 
Andrey Gladyshev:

Я встречный вопрос задам, а потом отвечу. Возможно ли будет получать более полноценную информацию (или точнее сказать своевременную) о состоянии стакана, если я буду буквально сидеть на бирже? Я о колокации, например.

Биржа будет так же транслировать. Или Вы полагаете, что происходит потеря фреймов стакана?

 
Да и смотря какая биржа. Я нашу не рассматриваю.