ФОРТС OnTradeTransaction Билд 1035

 

Добрый день!

Открыта позиция, объёмом один.

Выставляется отложенный ордер на закрытие этой позиции.

Ордер срабатывает и обрабатывается кодом, приведённом ниже: 

//+------------------------------------------------------------------+
// Expert Trade Transaction function                                 |
//+------------------------------------------------------------------+
void OnTradeTransaction( const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result )
{
  switch( trans.type )
  {
    case TRADE_TRANSACTION_DEAL_ADD: if ( trans.order_state == ORDER_STATE_STARTED )
                                     {
                                       if ( ( ticket != 0 ) && ( trans.order == ticket ) )
                                       {
                                         if ( PositionSelect( _Symbol ) )
                                         {
                                           //ПОПАДАЮ СЮДА!!!! 
                                         } 
                                       }  
                                     } 
                                     break;
  }
}

 

 Это происходит очень редко, но случается.

Вопрос:

Неужели терминал не успевает обновлять инфу о позиции? 

В предыдущем билде такого не наблюдалось.

 
Mikalas:

Добрый день!

Открыта позиция, объёмом один.

Выставляется отложенный ордер на закрытие этой позиции.

Ордер срабатывает и обрабатывается кодом, приведённом ниже: 

 Это происходит очень редко, но случается.

Вопрос:

Неужели терминал не успевает обновлять инфу о позиции? 

Да, не успевает. Сам с этим сталкивался. Например, событие приходит о заключении новой сделки, а ее еще нет в истории и HystoryDealsTotal возвращает предыдущее значение!
 
C-4:
Да, не успевает. Сам с этим сталкивался. Например, событие приходит о заключении новой сделки, а ее еще нет в истории и HystoryDealsTotal возвращает предыдущее значение!

В истории её ещё может и не быть.

Инфа в истории появляется после события

TRADE_TRANSACTION_HISTORY_ADD, которое (по моим наблюдениям) приходит

позже  TRADE_TRANSACTION_DEAL_ADD

 
Mikalas:

В истории её ещё может и не быть.

Инфа в истории появляется после события

TRADE_TRANSACTION_HISTORY_ADD, которое (по моим наблюдениям) приходит

позже  TRADE_TRANSACTION_DEAL_ADD

Внимательно разберусь в своем коде. Возможно Вы правы.