요새. 실행 질문 - 페이지 99

 
Dennis Kirichenko :

많은 사람들이 다시 나에게 잘못을 발견하겠지만 나는 내 의견을 고수합니다. 예, 위에서 감정적으로 말했습니다. 누군가 기분을 상하게했다면 사과드립니다 ...

멀리서 올게.

아침 9시에 문을 열기 전 소련의 상점을 상상해 보십시오. 희소성을 갈망하며 입구 앞에서 밀고 나가는 많은 사람들이 있습니다. 정확히 9시에 매장 문을 여는 로더는 들어오는 인파에 짓눌릴 위험이 있다. 군중은 마침내 가게 안으로 들어가고, 처음 몇 분 안에 가게는 혼란스럽지 않더라도 북적입니다. 소음, 꾸지람. 일부 깡패가 구매자의 최전선에 있습니다. 여기에서 군중은 스스로를 더욱 자극하고 소음을냅니다 ...

그래서. 이제 상인은 모니터 앞에 앉아 군중을 보지 못하고 "상점"이 열리기 전에 모든 것이 조용합니다. 소란과 혼돈의 느낌은 소비에트 구매자로서 그를 괴롭히지 않습니다. 그러나 거래소 시스템이 시작되고 신청이 급증하는 상황을 취소하지는 않습니다. 좁은 목의 원칙은 사라지지 않고 그대로 유지됩니다.

문제. 중개인이 무작위로 또는 일부 알고리즘에 따라 고객을 상점으로 초대한다고 생각하십니까? 대규모 구매자에게 우선권이 주어지는 것 같습니다. 그들과 함께 브로커는 보상으로 더 많은 것을 받을 것입니다. 중개인의 평판에 대한 질문입니다. 큰 구매자의 불만은 작은 구매자의 불만보다 더 위험합니다. 저것들. 나는 대규모 고객의 주문이 오픈 시간에 더 빨리 채워진다고 가정합니다.

문제. 중개인이 "상점"의 소규모 구매자가 고통 받고 있음을 이해하지 못한다고 생각하십니까? 나는 그가 이해한다고 생각합니다. 우리는 "거기"가 바보가 아니라는 것을 집합적으로 발견했습니다. 그러면 브로커는 어떻게 해야 합니까? 글쎄, 아마도 작은 구매자의 불만을 어떻게 든 최소화 할 수 있습니다. 정확히 어떻게? 응용 프로그램을 취소할 수 없습니다. 그러면 작은 내용이 다음과 같이 표시됩니다. "작지만 존경받는 상인인 내가 어떻게 중개인의 게이트에서 차례를 맞이할 수 있었습니까?" 아마도 도둑이 채워질 때까지 응용 프로그램 대기열에서 작은 응용 프로그램을 보류 할 수 있습니다 ... 글쎄, 또는 주요 응용 프로그램을 수락하거나 구매하거나 판매하고 수정을 보류하십시오 ...

이제 증권 거래소에 그러한 중개인이 많이 있다고 상상해보십시오. 세션이 시작될 때 한 소비에트 상점보다 더 많은 소란이 있습니다.

이것들은 생각입니다.  

추신: 내 텍스트의 모든 일치 항목은 무작위이며 예시입니다.

FORTS 게이트웨이가 어떻게 작동하는지 모른다는 사실에서 많은 "물".

로그인 제한이 있습니다. 즉, 초당 30개의 트랜잭션만 보낼 수 있습니다.

티어웨이는 기존에 3개의 MT5 서버를 가지고 있었는데 지금은 8개로 딜레이가 줄어들지 않고,

그러나 그들은 엄청나게 증가했지만 FORTS에는 더 이상 MT5 사용자가 없었습니다!

 
fxsaber :

이것은 사건이 일어나지 않았다는 증거가 될 것입니다.

하지 않을 것이다!

사용자가 하는 모든 것은 증거가 아니며 터미널 로그만 증거가 됩니다!

 
prostotrader :

하지 않을 것이다!

사용자가 하는 모든 것은 증거가 아니며 터미널 로그만 증거가 됩니다!

그러나 OnTradeTransaction() 의 모든 이벤트에 대한 사용자의 로깅은 이유를 이해하는 데 도움이 됩니다.

 
Vladimir Karputov :

그러나 OnTradeTransaction() 의 모든 이벤트에 대한 사용자의 로깅은 이유를 이해하는 데 도움이 됩니다.

시원한...

나는 하루에 4000건의 거래를 하고 있으며, 각 거래는 OnTradeTransaction을 5-6번 "당긴다"

누가 이 "풋웨어"를 이해할까요? :) 결국, 그들은 로그와 터미널, 그리고 MT5 서버의 로그가 필요합니다.

추가됨

새 빌드가 릴리스될 때까지 모든 것이 잘 작동했습니다.

예, 이제 작동하지만 때때로 브로커 서버에 오류가 발생합니다.

추가됨

주문, 수정 및 삭제할 때 상태를 지정( state )하고 설치 시간을 기록합니다.

 //+------------------------------------------------------------------+
//| Place order                                                      |
//+------------------------------------------------------------------+
void COrder::Place( const double price, const double volume, const bool buy_sell)
{
   MqlTradeRequest request = { 0 };
   MqlTradeResult   result  = { 0 };
  ticket = 0 ;
  req_id = 0 ;
  mem_magic = magic_storage + 1 ;
  check_count = 0 ;
   if (magic_storage >= (magic_number + 65530 )) mem_magic = magic_number;
//--- Fill structure
  request.action = TRADE_ACTION_PENDING ;
  request.magic  = mem_magic;
  request.symbol = a_symbol;
  request.volume = volume;
  request.price  = price;
   if (buy_sell)
  {
    request.type = ORDER_TYPE_BUY_LIMIT ;
  }
   else
  {
    request.type = ORDER_TYPE_SELL_LIMIT ;
  } 
  request.comment = "Отложенный ордер..." ;      
  request.type_filling = ORDER_FILLING_RETURN ;
  request.type_time = ORDER_TIME_DAY ;
//--- Send order
   if ( OrderSendAsync (request, result))
  {
     if ((result.retcode == TRADE_RETCODE_PLACED ) || (result.retcode == TRADE_RETCODE_DONE )) 
    {
      req_id = result.request_id;
      magic_storage = mem_magic;
      state = ORD_DO_SET;
      mem_time = GetMicrosecondCount ();
      mem_start_time = TimeCurrent ();
      SetTransCount();
    }
     else
    {
      mem_magic = 0 ;
      mem_time = 0 ;
      mem_start_time = 0 ;
      CheckError(result.retcode, "Place: Ордер не установлен! Причина: " , order_status, ticket);
    }
  }
   else
  {
    mem_magic = 0 ;
    mem_time = 0 ;
    mem_start_time = 0 ;
    CheckError(result.retcode, "Place: Ордер не отослан! Причина: " , order_status, ticket);
  }
}

여기

 if ((result.retcode == TRADE_RETCODE_PLACED ) || (result.retcode == TRADE_RETCODE_DONE )) 
    {
      req_id = result.request_id;
      magic_storage = mem_magic;
      state = ORD_DO_SET;
      mem_time = GetMicrosecondCount ();
      mem_start_time = TimeCurrent ();
      SetTransCount();
    }

그리고 OntradeTransaction에서 이 플래그( ORD_DO_SET )가 재설정됩니다.

타이머(1초)는 OnTradeTransaction에 아무것도 도착하지 않은 경우 이 주문의 상태를 확인합니다.

그리고 새로운 시간을 감지하여 로깅

 2018.02 . 28 10 : 54 : 40.162 trader (ALRS- 3.18 ,M1)   ProcessOrders: Билет sell ордера = 84718482 Cост. ордера = ORD_DO_SET

이 기능은 로그를 표시하기 전에 주문에 발생한 상황을 확인합니다.

 //+------------------------------------------------------------------+
// Expert Order Real Select function                                 |
//+------------------------------------------------------------------+
ENUM_ORD_SELECT OrderRealSelect( const ulong ticket, ORDER_DATA &ord_data, const bool get_data)
{
   double init_vol = 0 ;
   double cur_vol = 0 ;
   ZeroMemory (ord_data);
  ord_data.real_state = ORDER_NOT_SPECIFIED;
  ord_data.error_code = ERR_SUCCESS ;
   ResetLastError ();
   if (ticket > 0 )
  {
     if ( HistoryOrderSelect (ticket))
    {
       if (get_data)
      {
        ord_data.comment = HistoryOrderGetString (ticket, ORDER_COMMENT );
        ord_data.expiration = datetime ( HistoryOrderGetInteger (ticket, ORDER_TIME_EXPIRATION )); 
        ord_data.magic = HistoryOrderGetInteger (ticket, ORDER_MAGIC );
        ord_data.pos_id = HistoryOrderGetInteger (ticket, ORDER_POSITION_ID );
        ord_data.price_cur = HistoryOrderGetDouble (ticket, ORDER_PRICE_CURRENT );
        ord_data.price_open = HistoryOrderGetDouble (ticket, ORDER_PRICE_OPEN );
        ord_data.price_stlim = HistoryOrderGetDouble (ticket, ORDER_PRICE_STOPLIMIT );
        ord_data.sl = HistoryOrderGetDouble (ticket, ORDER_SL );
        ord_data.state = ENUM_ORDER_STATE ( HistoryOrderGetInteger (ticket, ORDER_STATE ));
        ord_data.symbol = HistoryOrderGetString (ticket, ORDER_SYMBOL );
        ord_data.t_done_msc = datetime ( HistoryOrderGetInteger (ticket, ORDER_TIME_DONE_MSC ));
        ord_data.t_set_msc = datetime ( HistoryOrderGetInteger (ticket, ORDER_TIME_SETUP_MSC ));
        ord_data.time_done = datetime ( HistoryOrderGetInteger (ticket, ORDER_TIME_DONE ));
        ord_data.time_setup = datetime ( HistoryOrderGetInteger (ticket, ORDER_TIME_SETUP ));
        ord_data.tp = HistoryOrderGetDouble (ticket, ORDER_TP );
        ord_data.type = ENUM_ORDER_TYPE ( HistoryOrderGetInteger (ticket, ORDER_TYPE ));
        ord_data.type_filling = ENUM_ORDER_TYPE_FILLING ( HistoryOrderGetInteger (ticket, ORDER_TYPE_FILLING ));
        ord_data.type_time = ENUM_ORDER_TYPE_TIME ( HistoryOrderGetInteger (ticket, ORDER_TYPE_TIME ));
        ord_data.vol_cur = HistoryOrderGetDouble (ticket, ORDER_VOLUME_CURRENT );
        ord_data.vol_init = HistoryOrderGetDouble (ticket, ORDER_VOLUME_INITIAL );
        ord_data.ext_id = HistoryOrderGetString (ticket, ORDER_EXTERNAL_ID );
        ord_data.reason = ENUM_ORDER_REASON ( HistoryOrderGetInteger (ticket, ORDER_REASON ));
      }
       else
      {
        ord_data.state = ENUM_ORDER_STATE ( HistoryOrderGetInteger (ticket, ORDER_STATE ));
        cur_vol = HistoryOrderGetDouble (ticket, ORDER_VOLUME_CURRENT );
        init_vol = HistoryOrderGetDouble (ticket, ORDER_VOLUME_INITIAL );
      }   
//---
       switch (ord_data.state)
      { 
         case ORDER_STATE_CANCELED :
           if (get_data)
          {
             if (ord_data.vol_init == ord_data.vol_cur)
            {
              ord_data.real_state = ORDER_NONE_CANCELED;
            }
             else
            {
              ord_data.real_state = ORDER_NONE_PARTIAL_CANCELED;
            }
          }
           else
          {
             if (init_vol == cur_vol)
            {
              ord_data.real_state = ORDER_NONE_CANCELED;
            }
             else
            {
              ord_data.real_state = ORDER_NONE_PARTIAL_CANCELED;
            }
          }    
         break ;
         
         case ORDER_STATE_PARTIAL :
          ord_data.real_state = ORDER_NONE_PARTIAL;
         break ;
                                         
         case ORDER_STATE_EXPIRED :
          ord_data.real_state = ORDER_NONE_EXPIRED;
         break ;
                                                                              
         case ORDER_STATE_FILLED :
          ord_data.real_state = ORDER_NONE_FILLED;
         break ;
                                         
         case ORDER_STATE_REJECTED :
          ord_data.real_state = ORDER_NONE_REJECTED;
         break ;  
      }
    }
     else
     if ( OrderSelect (ticket))
    {
       if (get_data)
      {
        ord_data.comment = OrderGetString ( ORDER_COMMENT );
        ord_data.expiration = datetime ( OrderGetInteger ( ORDER_TIME_EXPIRATION )); 
        ord_data.magic = OrderGetInteger ( ORDER_MAGIC );
        ord_data.pos_id = OrderGetInteger ( ORDER_POSITION_ID );
        ord_data.price_cur = OrderGetDouble ( ORDER_PRICE_CURRENT );
        ord_data.price_open = OrderGetDouble ( ORDER_PRICE_OPEN );
        ord_data.price_stlim = OrderGetDouble ( ORDER_PRICE_STOPLIMIT );
        ord_data.sl = OrderGetDouble ( ORDER_SL );
        ord_data.state = ENUM_ORDER_STATE ( OrderGetInteger ( ORDER_STATE ));
        ord_data.symbol = OrderGetString ( ORDER_SYMBOL );
        ord_data.t_done_msc = datetime ( OrderGetInteger ( ORDER_TIME_DONE_MSC ));
        ord_data.t_set_msc = datetime ( OrderGetInteger ( ORDER_TIME_SETUP_MSC ));
        ord_data.time_done = datetime ( OrderGetInteger ( ORDER_TIME_DONE ));
        ord_data.time_setup = datetime ( OrderGetInteger ( ORDER_TIME_SETUP ));
        ord_data.tp = OrderGetDouble ( ORDER_TP );
        ord_data.type = ENUM_ORDER_TYPE ( OrderGetInteger ( ORDER_TYPE ));
        ord_data.type_filling = ENUM_ORDER_TYPE_FILLING ( OrderGetInteger ( ORDER_TYPE_FILLING ));
        ord_data.type_time = ENUM_ORDER_TYPE_TIME ( OrderGetInteger ( ORDER_TYPE_TIME ));
        ord_data.vol_cur = OrderGetDouble ( ORDER_VOLUME_CURRENT );
        ord_data.vol_init = OrderGetDouble ( ORDER_VOLUME_INITIAL );
        ord_data.ext_id = OrderGetString ( ORDER_EXTERNAL_ID );
        ord_data.reason = ENUM_ORDER_REASON ( OrderGetInteger ( ORDER_REASON ));
      }
       else ord_data.state = ENUM_ORDER_STATE ( OrderGetInteger ( ORDER_STATE ));
       switch (ord_data.state)
      { 
         case ORDER_STATE_STARTED :
         case ORDER_STATE_REQUEST_ADD :
         case ORDER_STATE_REQUEST_MODIFY :
         case ORDER_STATE_REQUEST_CANCEL :
          ord_data.real_state = ORDER_BUSY;
         break ; 
         case ORDER_STATE_PARTIAL :
          ord_data.real_state = ORDER_EXIST_PARTIAL;
         break ;
         case ORDER_STATE_PLACED :
          ord_data.real_state = ORDER_EXIST;
         break ;
      }
    }
     else ord_data.error_code = GetLastError ();
     if ((ord_data.error_code != ERR_SUCCESS ) ||
       (ord_data.real_state == ORDER_NOT_SPECIFIED))
    {
       return (SELECT_ERROR);
    }
     else
    {
       switch (ord_data.real_state)
      {
         case ORDER_BUSY:
           return (SELECT_BUSY);
         break ;
         case ORDER_EXIST:   
         case ORDER_EXIST_PARTIAL:
           return (SELECT_TRUE);
         break ;
         default :   
           return (SELECT_FALSE);
         break ;                                             
      }
    }
  } 
   else
  {
    ord_data.error_code = ERR_ZERO_TICKET; 
     return (SELECT_ERROR);
  }
}

추가됨

 #define ERR_ZERO_TICKET - 111
   
//
enum ENUM_ORD_STATE
{
  ORD_NO_STATE   = 0 ,
  ORD_DO_SET     = 1 ,
  ORD_DO_MODIFY  = 2 ,
  ORD_WORK       = 3 ,
  ORD_DO_CANCEL  = 4
};
enum ENUM_ORD_REAL_STATE
{
  ORDER_NOT_SPECIFIED         = 0 , //Состояние ордера не определено
  ORDER_NONE_CANCELED         = 1 , //Ордера нет, отменён пользователем
  ORDER_NONE_PARTIAL_CANCELED = 2 , //Ордера нет, исполнился частично (не был залит вторым объёмом)
  ORDER_NONE_PARTIAL          = 3 , //Ордера нет, исполнился частично
  ORDER_NONE_EXPIRED          = 4 , //Ордера нет, удалён по сроку
  ORDER_NONE_FILLED           = 5 , //Ордера нет, исполнился полностью
  ORDER_NONE_REJECTED         = 6 , //Ордера нет, отклонён брокером(биржей)
  ORDER_BUSY                  = 7 , //Ордер находится в переходном состоянии
  ORDER_EXIST                 = 8 , //Ордер выставлен на биржу, возможны действия над ним
  ORDER_EXIST_PARTIAL         = 9    //Ордер выставлен на биржу, частично исполнился, возможны действия над ним
};
//---
enum ENUM_ORD_SELECT
{
  SELECT_ERROR = 0 ,
  SELECT_FALSE = 1 ,
  SELECT_TRUE  = 2 ,
  SELECT_BUSY  = 3
};
//---
struct ORDER_DATA
{
   int                      error_code;
   ulong                    ticket;
   datetime                 time_setup;
   ENUM_ORDER_TYPE          type;
   ENUM_ORDER_STATE         state;
  ENUM_ORD_REAL_STATE     real_state;
   datetime                 expiration;
   datetime                 time_done;
   long                     t_set_msc;
   long                     t_done_msc; 
   ENUM_ORDER_TYPE_FILLING type_filling;
   ENUM_ORDER_TYPE_TIME     type_time;
   long                     magic;
   ENUM_ORDER_REASON        reason;
   long                     pos_id;
   long                     pos_by_id;
   double                   vol_init;
   double                   vol_cur;
   double                   price_open;
   double                   sl;
   double                   tp;
   double                   price_cur;
   double                   price_stlim;
   string                   symbol;
   string                   comment;
   string                   ext_id;       
};
 
prostotrader :

사실은 작년에 OnTradeTransaction 이 보장되었다는 것입니다! :)

말하자면. 이벤트가 터미널에 도착하면 이벤트 대기열에 OnTradeTransaction으로 배치되는 것이 보장됩니다. 이것은 EA에서 처리할 것을 보장한다는 의미가 아닙니다.

질문은 이것에 관한 것입니다:

트랜잭션 큐의 길이는 1024개 요소입니다. OnTradeTransaction()이 다음 트랜잭션을 처리하는 데 너무 오래 걸리면 대기열의 이전 트랜잭션이 새 트랜잭션에 의해 강제로 제거될 수 있습니다.

그리고 차례로 고문 자체의 사건. 그들 중 몇 명이 있을 수 있고 변위가 있는지 여부. (인용 견적이 고문에 관한 것이 아닌 경우)

 
Комбинатор :

말하자면. 이벤트가 터미널에 도착하면 이벤트 대기열에 OnTradeTransaction으로 배치되는 것이 보장됩니다. 이것은 EA에서 처리할 것을 보장한다는 의미가 아닙니다.

질문은 이것에 관한 것입니다:

그리고 차례로 고문 자체의 사건. 그들 중 몇 명이 있을 수 있고 변위가 있는지 여부. (인용 견적이 고문에 관한 것이 아닌 경우)

길다고 생각하세요?

 case TRADE_TRANSACTION_ORDER_UPDATE :
       switch (trans.order_state)
      {
         case ORDER_STATE_PLACED :
           if ((BuyOrder.ticket > 0 ) && (trans.order == BuyOrder.ticket))
          {
             switch (BuyOrder.state)
            {
               case ORD_DO_SET:
                BuyOrder.ses_ord_count++;
                BuyOrder.CalcZalog();
                BuyOrder.state = ORD_WORK;
                BuyOrder.mem_time = GetMicrosecondCount ();
                 if (stop_trading)
                {
                   if (OrderRealSelect(BuyOrder.ticket, order_data, false ) == SELECT_TRUE)
                  {
                    BuyOrder.Remove();
                  }  
                }  
               break ; 
               case ORD_DO_MODIFY:
                BuyOrder.modify_price = 0 ;
                BuyOrder.modify_count++;
                BuyOrder.state = ORD_WORK;
                BuyOrder.mem_time = GetMicrosecondCount ();
               break ;
            }
          }
           else
           if ((SellOrder.ticket > 0 ) && (trans.order == SellOrder.ticket))
          {
             switch (SellOrder.state)
            {
               case ORD_DO_SET:
                SellOrder.ses_ord_count++;   
                SellOrder.CalcZalog();
                SellOrder.state = ORD_WORK;
                SellOrder.mem_time = GetMicrosecondCount ();
                 if (stop_trading)
                {
                   if (OrderRealSelect(SellOrder.ticket, order_data, false ) == SELECT_TRUE)
                  {
                    SellOrder.Remove();
                  }  
                }
               break ; 
               case ORD_DO_MODIFY:
                SellOrder.modify_price = 0 ;
                SellOrder.modify_count++;
                SellOrder.state = ORD_WORK;
                SellOrder.mem_time = GetMicrosecondCount ();
               break ;        
            }
          }
         break ;
         case ORDER_STATE_PARTIAL :
           if ((BuyOrder.ticket > 0 ) && (trans.order == BuyOrder.ticket))  
          {
             switch (BuyOrder.state)
            {
               case ORD_DO_MODIFY:
                BuyOrder.modify_price = 0 ;
                BuyOrder.modify_count++;
                BuyOrder.state = ORD_WORK;
                BuyOrder.mem_time = GetMicrosecondCount ();
               break ;
            }
          }
           else
           if ((SellOrder.ticket > 0 ) && (trans.order == SellOrder.ticket))
          {
             switch (SellOrder.state)
            {
               case ORD_DO_MODIFY:
                SellOrder.modify_price = 0 ;
                SellOrder.modify_count++;
                SellOrder.state = ORD_WORK;
                SellOrder.mem_time = GetMicrosecondCount ();
               break ;        
            }
          } 
         break ;                         
      } 
      EndView();
     break ;
 
prostotrader :

길다고 생각하세요?

EA의 이벤트 대기열(예: 타이머)에 OnTradeTransaction 이벤트가 하나만 있을 수 있다면 코드 속도는 중요하지 않습니다.

그렇지 않은 경우 주문을 동기식으로 또는 비동기식으로 작업하는지 여부에 따라 다릅니다.
 
Комбинатор :

EA의 이벤트 대기열(예: 타이머)에 OnTradeTransaction 이벤트가 하나만 있을 수 있다면 코드 속도는 중요하지 않습니다.

그렇지 않은 경우 주문을 동기식으로 또는 비동기식으로 작업하는지 여부에 따라 다릅니다.

비동기식이지만 동시에 30개를 초과할 수 없습니다.

그건 그렇고, 여기에 또 다른 것이 있습니다 (그리고 10-10에서 14-00까지 어떤 이유로 모든 것이 잘 작동했습니다)

2018.02.28 14:07:59.505 Trades  'xxxxx': cancel order #84736275 buy limit 3.00 LKOH-9.18 at 37312
2018.02.28 14:08:09.071 Trades  'xxxxx': accepted cancel order #84736275 buy limit 3.00 LKOH-9.18 at 37312
2018.02.28 14:08:09.107 Trades  'xxxxx': cancel #84736275 buy limit 3.00 LKOH-9.18 at market done in 9602.694 ms

2018.02.28 14:00:32.653 trader (FEES-3.18,M1)   CheckTradingTime: Сейчас 2018.02.28 14:00, если есть необходимость, можно закрыть терминал.
2018.02.28 14:08:00.522 trader (LKOH-6.18,M1)   ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL
2018.02.28 14:08:01.543 trader (LKOH-6.18,M1)   ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL
2018.02.28 14:08:02.553 trader (LKOH-6.18,M1)   ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL
2018.02.28 14:08:03.565 trader (LKOH-6.18,M1)   ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL
2018.02.28 14:08:04.593 trader (LKOH-6.18,M1)   ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL
2018.02.28 14:08:05.625 trader (LKOH-6.18,M1)   ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL
2018.02.28 14:08:06.654 trader (LKOH-6.18,M1)   ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL
2018.02.28 14:08:07.667 trader (LKOH-6.18,M1)   ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL
2018.02.28 14:08:08.680 trader (LKOH-6.18,M1)   ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL

하지만 여기서 우리는 서버 응답을 기다렸습니다 :)

 

하지만 내가 마지막으로 여기에 글을 썼을 때

prostotrader 2017.04 . 17 19 : 10 # 932    EN
Билд 1571 , реал, Открывашка

Непонятные задержки продолжаются (execution in 2106.116 ms) ...

2017년 4월 새 빌드 1571이 나왔습니다.

그리고 지금은 1755, 그때는 2초, 그리고 지금은....

나는 왜 그 때 9개월 동안 그렇게 침묵을 지켰고 (고문들에게도 손도 대지 않았다)!

추가됨

FORTS의 기기 수는 변경되지 않았으며 Opener는 5개의 새로운 MT5 서버를 추가했습니다.

거래량은 감소했지만 문제는 남아 있을 뿐만 아니라 "성장"했습니다.

 

그리고 터미널 자체는 초당 60개 이상의 주문을 보내지 않습니다.

 2018.02 . 28 15 : 30 : 15.089 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 60 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 61 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 62 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 63 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 64 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 65 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 66 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 67 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 68 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 69 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 70 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 71 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 72 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 73 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 74 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 75 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 76 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 77 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 78 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 79 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 80 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 81 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 82 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 83 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 84 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 85 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 86 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 87 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 88 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 89 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 90 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 91 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 92 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 93 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 94 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 95 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 96 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 97 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 98 Причина: 10024
2018.02 . 28 15 : 30 : 15.090 DelayTest (RTS- 3.18 ,M1) PlaceOrder: Ордер не отправлен! Порядковый номер: 99 Причина: 10024
2018.02 . 28 15 : 30 : 15.111 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495897
2018.02 . 28 15 : 30 : 15.111 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495898
2018.02 . 28 15 : 30 : 15.111 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495899
2018.02 . 28 15 : 30 : 15.111 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495900
2018.02 . 28 15 : 30 : 15.111 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495901
2018.02 . 28 15 : 30 : 15.111 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495902
2018.02 . 28 15 : 30 : 15.111 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495903
2018.02 . 28 15 : 30 : 15.111 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495904
2018.02 . 28 15 : 30 : 15.111 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495905
2018.02 . 28 15 : 30 : 15.113 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495906
2018.02 . 28 15 : 30 : 15.113 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495907
2018.02 . 28 15 : 30 : 15.113 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495908
2018.02 . 28 15 : 30 : 15.114 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495909
2018.02 . 28 15 : 30 : 15.114 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495910
2018.02 . 28 15 : 30 : 15.114 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495911
2018.02 . 28 15 : 30 : 15.114 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495912
2018.02 . 28 15 : 30 : 15.120 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495913
2018.02 . 28 15 : 30 : 15.120 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495914
2018.02 . 28 15 : 30 : 15.121 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495915
2018.02 . 28 15 : 30 : 15.121 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495916
2018.02 . 28 15 : 30 : 15.121 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495917
2018.02 . 28 15 : 30 : 15.121 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495918
2018.02 . 28 15 : 30 : 15.121 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495919
2018.02 . 28 15 : 30 : 15.121 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495920
2018.02 . 28 15 : 30 : 15.121 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495921
2018.02 . 28 15 : 30 : 15.121 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495922
2018.02 . 28 15 : 30 : 15.126 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495923
2018.02 . 28 15 : 30 : 15.126 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495924
2018.02 . 28 15 : 30 : 15.126 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495925
2018.02 . 28 15 : 30 : 15.126 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495926
2018.02 . 28 15 : 30 : 15.126 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495927
2018.02 . 28 15 : 30 : 15.127 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495928
2018.02 . 28 15 : 30 : 15.127 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495929
2018.02 . 28 15 : 30 : 15.127 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495930
2018.02 . 28 15 : 30 : 15.127 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495931
2018.02 . 28 15 : 30 : 15.133 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495932
2018.02 . 28 15 : 30 : 15.133 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495933
2018.02 . 28 15 : 30 : 15.133 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495934
2018.02 . 28 15 : 30 : 15.133 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495935
2018.02 . 28 15 : 30 : 15.133 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495936
2018.02 . 28 15 : 30 : 15.133 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495937
2018.02 . 28 15 : 30 : 15.133 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер установлен. Билет = 73495938
2018.02 . 28 15 : 30 : 15.144 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495897
2018.02 . 28 15 : 30 : 15.144 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495898
2018.02 . 28 15 : 30 : 15.144 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495899
2018.02 . 28 15 : 30 : 15.144 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495900
2018.02 . 28 15 : 30 : 15.144 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495902
2018.02 . 28 15 : 30 : 15.144 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495903
2018.02 . 28 15 : 30 : 15.144 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495901
2018.02 . 28 15 : 30 : 15.146 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495904
2018.02 . 28 15 : 30 : 15.146 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495905
2018.02 . 28 15 : 30 : 15.146 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495906
2018.02 . 28 15 : 30 : 15.146 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495907
2018.02 . 28 15 : 30 : 15.146 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495908
2018.02 . 28 15 : 30 : 15.146 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495909
2018.02 . 28 15 : 30 : 15.146 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495910
2018.02 . 28 15 : 30 : 15.146 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495911
2018.02 . 28 15 : 30 : 15.147 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495912
2018.02 . 28 15 : 30 : 15.151 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495913
2018.02 . 28 15 : 30 : 15.151 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495914
2018.02 . 28 15 : 30 : 15.151 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495915
2018.02 . 28 15 : 30 : 15.151 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495916
2018.02 . 28 15 : 30 : 15.151 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495917
2018.02 . 28 15 : 30 : 15.151 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495918
2018.02 . 28 15 : 30 : 15.153 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495919
2018.02 . 28 15 : 30 : 15.153 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495920
2018.02 . 28 15 : 30 : 15.153 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495921
2018.02 . 28 15 : 30 : 15.153 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495922
2018.02 . 28 15 : 30 : 15.159 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495923
2018.02 . 28 15 : 30 : 15.159 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495924
2018.02 . 28 15 : 30 : 15.160 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495925
2018.02 . 28 15 : 30 : 15.160 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495926
2018.02 . 28 15 : 30 : 15.160 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495927
2018.02 . 28 15 : 30 : 15.160 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495928
2018.02 . 28 15 : 30 : 15.160 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495929
2018.02 . 28 15 : 30 : 15.160 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495930
2018.02 . 28 15 : 30 : 15.160 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495931
2018.02 . 28 15 : 30 : 15.162 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495932
2018.02 . 28 15 : 30 : 15.164 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495933
2018.02 . 28 15 : 30 : 15.164 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495934
2018.02 . 28 15 : 30 : 15.164 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495935
2018.02 . 28 15 : 30 : 15.164 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495936
2018.02 . 28 15 : 30 : 15.167 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495937
2018.02 . 28 15 : 30 : 15.167 DelayTest (RTS- 3.18 ,M1) OnTradeTransaction : Ордер удалён. Билет = 73495938