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

 

캠 코드

 //+------------------------------------------------------------------+
//|                                                    DelayTest.mq5 |
//|                                      Copyright 2017 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017 prostotrader"
#property link        "https://www.mql5.com"
#property version    "1.00"
//
#define max_orders 100   
//
struct MY_ORDERS
  {
   uint               req_id[max_orders];
   ulong              ticket[max_orders];
   ulong              magic[max_orders];
  };
MY_ORDERS my_orders;
ulong st_magic= 9988776655 ;
//+------------------------------------------------------------------+
//| Expert remove order function                                     |
//+------------------------------------------------------------------+
void RemoveOrder( const ulong a_ticket, const int idx)
  {
   my_orders.req_id[idx]= 0 ;
   MqlTradeRequest request = { 0 };
   MqlTradeResult   result  = { 0 };
   request.action= TRADE_ACTION_REMOVE ;
   request.order = a_ticket;
   if ( OrderSendAsync (request,result))
     {
      my_orders.req_id[idx]=result.request_id;
     }
   else
     {
       Print ( __FUNCTION__ , ": Ордер не отправлен! Билет = " ,a_ticket, " Причина: " ,result.retcode);
     }
  }
//+------------------------------------------------------------------+
//| Expert place order function                                      |
//+------------------------------------------------------------------+
void PlaceOrder( double price, int idx, ulong magic)
  {
   MqlTradeRequest request = { 0 };
   MqlTradeResult   result  = { 0 };
   my_orders.ticket[idx] = 0 ;
   my_orders.req_id[idx] = 0 ;
   my_orders.magic[idx]=magic;
   request.action = TRADE_ACTION_PENDING ;
   request.magic  = magic;
   request.symbol = Symbol ();
   request.volume = 1 ;
   request.price  = price;
   request.type= ORDER_TYPE_SELL_LIMIT ;
   request.comment= "Отложенный ордер..." ;
   request.type_filling= ORDER_FILLING_RETURN ;
   request.type_time= ORDER_TIME_DAY ;
   if ( OrderSendAsync (request,result))
     {
      my_orders.req_id[idx]=result.request_id;
      magic++;
     }
   else
     {
       Print ( __FUNCTION__ , ": Ордер не отправлен! Порядковый номер: " , idx, " Причина: " ,result.retcode);
     }
  }
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   double step= SymbolInfoDouble ( Symbol (), SYMBOL_TRADE_TICK_SIZE );
   double max_price= SymbolInfoDouble ( Symbol (), SYMBOL_SESSION_PRICE_LIMIT_MAX );
   for ( int i= 0 ; i<max_orders;i++)
     {
      PlaceOrder(max_price,i,st_magic);
      max_price-=step;
     }
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   for ( int i= 0 ; i<max_orders;i++)
     {
       if (my_orders.ticket[i]> 0 )
        {
         RemoveOrder(my_orders.ticket[i],i);
        }
     }
  }
//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction ( const MqlTradeTransaction &trans,
                         const MqlTradeRequest &request,
                         const MqlTradeResult &result)
  {
//    Print("Trans type: ", EnumToString(trans.type), "; Order satte: ", EnumToString(trans.order_state));
   switch (trans.type)
     {
       case TRADE_TRANSACTION_REQUEST :
         for ( int i= 0 ; i<max_orders;i++)
           {
             if ((my_orders.req_id[i]==result.request_id) && (my_orders.req_id[i]> 0 ))
              {
               my_orders.ticket[i]=result.order;
               break ;
              }
           }
         break ;
       case TRADE_TRANSACTION_HISTORY_ADD :
         for ( int i= 0 ; i<max_orders;i++)
           {
             if ((my_orders.ticket[i]==trans.order) && (my_orders.ticket[i]> 0 ))
              {
               my_orders.ticket[i]= 0 ;
               Print ( __FUNCTION__ , ": Ордер удалён. Билет = " ,trans.order);
               break ;
              }
           }
         break ;
       case TRADE_TRANSACTION_ORDER_UPDATE :
         switch (trans.order_state)
           {
             case ORDER_STATE_PLACED :
               for ( int i= 0 ; i<max_orders;i++)
                 {
                   if ((my_orders.ticket[i]==trans.order) && (my_orders.ticket[i]> 0 ))
                    {
                     RemoveOrder(my_orders.ticket[i],i);
                     Print ( __FUNCTION__ , ": Ордер установлен. Билет = " ,trans.order);
                     break ;
                    }
                 }
               break ;
           }
         break ;
     }
  }
//+------------------------------------------------------------------+
 
prostotrader :

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

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

로그에 기가바이트가 걸리면 이해하겠습니다. 서버 로그는 필요하지 않습니다.


OnTradeTransaction 에 문제가 있다고 주장하는 사람은 이 Expert Advisor를 실행하는 것이 좋습니다.

 // Советник записывает подробно каждый OnTradeTransaction в файл.

// Время последнего тика символа
long GetSymbolTime( const string Symb )
{
   MqlTick Tick;
  
   return ( SymbolInfoTick (Symb, Tick) ? Tick.time_msc : 0 );
}

// Время последнего тика Обзора рынка
long GetMarketWatchTime( void )
{
   long Res = 0 ;
  
   for ( int i = SymbolsTotal ( true ) - 1 ; i >= 0 ; i--)
  {
     const long TmpTime = GetSymbolTime( SymbolName (i, true ));
    
     if (TmpTime > Res)
      Res = TmpTime;
  }
  
   return (Res);
}

// Текущее время на торговом сервере без учета пинга
long GetCurrenTime( void )
{
   static ulong StartTime = GetMicrosecondCount ();
   static long PrevTime = 0 ;
  
   const long TmpTime = GetMarketWatchTime();
  
   if (TmpTime > PrevTime)
  {
    PrevTime = TmpTime;
    
    StartTime = GetMicrosecondCount ();
  }
  
   return (PrevTime + ( long )(( GetMicrosecondCount () - StartTime) / 1000 ));
}

string TimeToString ( const long Value )
{
   return (( string )( datetime )(Value / 1000 ) + "." + ( string ) IntegerToString (Value % 1000 , 3 , '0' ));
}

class FILE
{
public :
   const string Name;
   const int handle;

#define _H(A) if ( this .handle != INVALID_HANDLE ) A
  
  FILE( const string FileName ) : Name(FileName), handle( FileOpen ( this .Name, FILE_READ | FILE_WRITE | FILE_IS_TEXT ))
  {
    _H( FileSeek ( this .handle, 0 , SEEK_END ));
  }
  
  ~FILE() { _H( FileClose ( this .handle)); }
  
   uint Write( const string Str ) const
  {
     return ( FileWrite ( this .handle, Str));
  }  
};

void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest &Request, const MqlTradeResult &Result )
{ 
   static FILE File( __FUNCTION__ + ".txt" );
  
   File.Write( TimeToString (GetCurrenTime()) + "\n" + ToString(Trans) + ToString(Request) + ToString(Result));
}

#define TOSTRING(A)   #A + " = " + ( string )(A) + "\n"
#define TOSTRING2(A) #A + " = " + EnumToString (A) + " (" + ( string )(A) + ")\n"

string ToString( const MqlTradeTransaction &Trans )
{
   return (TOSTRING(Trans.deal) + TOSTRING(Trans.order) + TOSTRING(Trans.symbol) +
         TOSTRING2(Trans.type) + TOSTRING2(Trans.order_type) + TOSTRING2(Trans.order_state) +
         TOSTRING2(Trans.deal_type) + TOSTRING2(Trans.time_type) +
         TOSTRING(Trans.time_expiration) + TOSTRING(Trans.price) + TOSTRING(Trans.price_trigger) + 
         TOSTRING(Trans.price_sl) + TOSTRING(Trans.price_tp) + TOSTRING(Trans.volume) + 
         TOSTRING(Trans.position) + TOSTRING(Trans.position_by));
}

string ToString( const MqlTradeRequest &Request )
{
   return (TOSTRING2(Request.action) + TOSTRING(Request.magic) + TOSTRING(Request.order) +
         TOSTRING(Request.symbol) + TOSTRING(Request.volume) + TOSTRING(Request.price) + 
         TOSTRING(Request.stoplimit) + TOSTRING(Request.sl) +  TOSTRING(Request.tp) + 
         TOSTRING(Request.deviation) + TOSTRING2(Request.type) + TOSTRING2(Request.type_filling) +
         TOSTRING2(Request.type_time) + TOSTRING(Request.expiration) + TOSTRING(Request.comment) +
         TOSTRING(Request.position) + TOSTRING(Request.position_by));
}

string ToString( const MqlTradeResult &Result )
{
   return (TOSTRING(Result.retcode) + TOSTRING(Result.deal) + TOSTRING(Result.order) +
         TOSTRING(Result.volume) + TOSTRING(Result.price) + TOSTRING(Result.bid) +  
         TOSTRING(Result.ask) + TOSTRING(Result.comment) + TOSTRING(Result.request_id) +  
         TOSTRING(Result.retcode_external));
}


파일의 결과는 다음과 같습니다.

 2018.02 . 28 14 : 28 : 27.907
Trans.deal = 0
Trans.order = 213465763
Trans.symbol = EURUSD
Trans.type = TRADE_TRANSACTION_ORDER_ADD ( 0 )
Trans.order_type = ORDER_TYPE_SELL ( 1 )
Trans.order_state = ORDER_STATE_STARTED ( 0 )
Trans.deal_type = DEAL_TYPE_BUY ( 0 )
Trans.time_type = ORDER_TIME_GTC ( 0 )
Trans.time_expiration = 1970.01 . 01 00 : 00 : 00
Trans.price = 1.22178
Trans.price_trigger = 0.0
Trans.price_sl = 0.0
Trans.price_tp = 0.0
Trans.volume = 1.0
Trans.position = 0
Trans.position_by = 0
Request.action = ENUM_TRADE_REQUEST_ACTIONS :: 0 ( 0 )
Request.magic = 0
Request.order = 0
Request.symbol = 
Request.volume = 0.0
Request.price = 0.0
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 0
Request.type = ORDER_TYPE_BUY ( 0 )
Request.type_filling = ORDER_FILLING_FOK ( 0 )
Request.type_time = ORDER_TIME_GTC ( 0 )
Request.expiration = 1970.01 . 01 00 : 00 : 00
Request.comment = 
Request.position = 0
Request.position_by = 0
Result.retcode = 0
Result.deal = 0
Result.order = 0
Result.volume = 0.0
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = 
Result.request_id = 0
Result.retcode_external = 0

2018.02 . 28 14 : 28 : 27.913
Trans.deal = 196986814
Trans.order = 213465763
Trans.symbol = EURUSD
Trans.type = TRADE_TRANSACTION_DEAL_ADD ( 6 )
....

그러한 로그가 없더라도 OnTradeTransaction 주제에 대한 모든 진술은 더 이상 아무것도 아닙니다.


ZY 시간은 이 경우 이상적으로 고려되지 않았지만 다른 컨텍스트에서 분리된 결정을 복잡하게 만들기 시작하지 않았습니다.

파일:
 
fxsaber :

로그에 기가바이트가 걸리면 이해하겠습니다. 서버 로그는 필요하지 않습니다.


OnTradeTransaction 에 문제가 있다고 주장하는 사람은 이 Expert Advisor를 실행하는 것이 좋습니다.


파일의 결과는 다음과 같습니다.

그러한 로그가 없더라도 OnTradeTransaction 주제에 대한 모든 진술은 더 이상 아무것도 아닙니다.


ZY 시간은 이 경우 이상적으로 고려되지 않았지만 다른 컨텍스트에서 분리된 결정을 복잡하게 만들기 시작하지 않았습니다.

울타리에 왜 그런 "정원"이 있습니까?

충분할 것입니다.

 void OnTradeTransaction ( const MqlTradeTransaction &trans,
                         const MqlTradeRequest &request,
                         const MqlTradeResult &result)
  {
     Print ( "Trans type: " , EnumToString (trans.type), "; Order satte: " , EnumToString (trans.order_state), " Order ticket: " , trans.order);
}
 
prostotrader :

울타리에 왜 그런 "정원"이 있습니까?

충분할 것입니다.

부족한.

 

손으로 열림, 브레이크 확인

2018.03.14 10:01:29.516 Trades  '289': exchange sell 10.00 Si-3.18 at market
2018.03.14 10:01:40.680 Trades  '289': accepted exchange sell 10.00 Si-3.18 at market
2018.03.14 10:01:40.692 Trades  '289': exchange sell 10.00 Si-3.18 at market placed for execution
2018.03.14 10:01:40.781 Trades  '289': order #85223736 sell 10.00 / 10.00 Si-3.18 at market done in 11265.537 ms
2018.03.14 10:01:40.782 Trades  '289': deal #47039430 sell 3.00 Si-3.18 at 57027 done (based on order #85223736)
2018.03.14 10:01:40.786 Trades  '289': deal #47039431 sell 2.00 Si-3.18 at 57026 done (based on order #85223736)
2018.03.14 10:01:40.787 Trades  '289': deal #47039432 sell 3.00 Si-3.18 at 57026 done (based on order #85223736)
2018.03.14 10:01:40.790 Trades  '289': deal #47039433 sell 1.00 Si-3.18 at 57026 done (based on order #85223736)
2018.03.14 10:01:40.795 Trades  '289': deal #47039434 sell 1.00 Si-3.18 at 57025 done (based on order #85223736)

그리고 가장 중요한 것은 누가 이 불명예를 대가를 치르게 될 것인지...

 
Aleksey Vyazmikin :

손으로 열림, 브레이크 확인

그리고 가장 중요한 것은 누가 이 불명예를 대가를 치르게 될 것인지...

이 로그를 첨부하여 브로커에 작성하십시오.

개발자에게 비용을 지불하지 않아 문의가 어려우며, 라이선스 계약에

(모든 소프트웨어와 마찬가지로) 누구도 책임을 지지 않는다는 내용으로 작성되었습니다.

 
prostotrader :

이 로그를 첨부하여 브로커에 작성하십시오.

개발자에게 비용을 지불하지 않아 문의가 어려우며, 라이선스 계약에

(모든 소프트웨어와 마찬가지로) 누구도 책임을 지지 않는다는 내용으로 작성되었습니다.

이것은 수사학적 질문이었다.

 
Aleksey Vyazmikin :

이것은 수사학적 질문이었다.

:)

하지만 어쨌든 브로커에게

 

Expert Advisor의 로깅을 약간 변경했는데 다음과 같습니다.

CheckOrders() 함수는 1-1.5초 이내에 서버로부터 응답이 없으면 트리거됩니다.

주문 티켓이 없으면 메시지가 표시됩니다.

CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...

티켓이 수신되면 ProcessOrders() 함수가 호출되어 주문에 무슨 일이 일어났는지 확인합니다.

결과는 다음과 같습니다.

 2018.03 . 19 10 : 00 : 02.248 Trades   'xxxxx' : buy limit 2.00 TRNF- 9.18 at 168831
2018.03 . 19 10 : 00 : 02.254 Trades   'xxxxx' : accepted buy limit 2.00 TRNF- 9.18 at 168831
2018.03 . 19 10 : 00 : 02.257 Trades   'xxxxx' : buy limit 2.00 TRNF- 9.18 at 168831 placed for execution in 8.978 ms
2018.03 . 19 10 : 00 : 06.380 Trades   'xxxxx' : modify order # 85508034 buy limit 2.00 TRNF- 9.18 at 168831 sl: 0 tp: 0 -> 170108 , sl: 0 tp: 0
2018.03 . 19 10 : 00 : 08.318 Trades   'xxxxx' : accepted modify order # 85508034 buy limit 2.00 TRNF- 9.18 at 168831 sl: 0 tp: 0 -> 170108 , sl: 0 tp: 0
2018.03 . 19 10 : 00 : 08.335 Trades   'xxxxx' : modify order # 85508034 buy limit 2.00 TRNF- 9.18 at 168831 sl: 0 tp: 0 -> 170108 , sl: 0 tp: 0 placed for execution in 1955.038 ms
2018.03 . 19 10 : 00 : 08.364 Trades   'xxxxx' : modify order # 85508034 buy limit 2.00 TRNF- 9.18 at 170108 sl: 0 tp: 0 -> 170110 , sl: 0 tp: 0
2018.03 . 19 10 : 00 : 08.364 Trades   'xxxxx' : modify # 85508034 buy limit 2.00 TRNF- 9.18 -> price: 170110 , sl: 0 , tp: 0 ) done in 0.390 ms
2018.03 . 19 10 : 01 : 00.575 Trades   'xxxxx' : buy limit 2.00 TRNF- 9.18 at 170112
2018.03 . 19 10 : 01 : 01.581 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 02.591 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 03.606 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 04.627 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 05.633 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 06.647 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 07.662 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 08.677 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 09.689 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 10.708 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 11.718 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 12.732 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 13.764 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 15.273 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 16.287 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 17.301 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 18.319 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 19.332 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 20.343 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 21.357 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 22.371 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 23.388 trader (TRNF- 6.18 ,M1)   CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается...
2018.03 . 19 10 : 01 : 24.263 Trades   'xxxxx' : accepted buy limit 2.00 TRNF- 9.18 at 170112
2018.03 . 19 10 : 01 : 24.399 trader (TRNF- 6.18 ,M1)   ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330
2018.03 . 19 10 : 01 : 25.413 trader (TRNF- 6.18 ,M1)   ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330
2018.03 . 19 10 : 01 : 25.685 Trades   'xxxxx' : buy limit 2.00 TRNF- 9.18 at 170112 placed for execution in 25114.794 ms
2018.03 . 19 10 : 01 : 26.427 trader (TRNF- 6.18 ,M1)   ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330
2018.03 . 19 10 : 01 : 27.444 trader (TRNF- 6.18 ,M1)   ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330
2018.03 . 19 10 : 01 : 28.456 trader (TRNF- 6.18 ,M1)   ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330
2018.03 . 19 10 : 01 : 29.475 trader (TRNF- 6.18 ,M1)   ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330
2018.03 . 19 10 : 01 : 30.484 trader (TRNF- 6.18 ,M1)   ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330
2018.03 . 19 10 : 01 : 31.501 trader (TRNF- 6.18 ,M1)   ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330
2018.03 . 19 10 : 01 : 32.515 trader (TRNF- 6.18 ,M1)   ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330
2018.03 . 19 10 : 01 : 33.540 trader (TRNF- 6.18 ,M1)   ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330

지연은 브로커 때문이 아닐 가능성이 큽니다.

 

주문을 비동기식으로 보낼 때 다음이 제공됩니다.

터미널이 주문을 보냈습니다 (1)

2018.03.19 10:01:00.575 Trades  'xxxxx': buy limit 2.00 TRNF-9.18 at 170112

서버가 주문을 확인하고 티켓을 할당했습니다 (2)

2018.03.19 10:01:24.263 Trades  'xxxxx': accepted buy limit 2.00 TRNF-9.18 at 170112

서버가 거래소에 주문을 보냈습니다 (3)

2018.03.19 10:01:25.685 Trades  'xxxxx': buy limit 2.00 TRNF-9.18 at 170112 placed for execution in 25114.794 ms

거래소에서 주문을 수락 했다는 서버 응답은 기록되지 않습니다.

하지만 다음 항목으로 판단하면 거래소에서 주문한다는 서버의 응답이 왔다 (4)

2018.03.19 10:01:39.952 Trades  'xxxxx': modify order #85508330 buy limit 2.00 TRNF-9.18 at 170112 sl: 0 tp: 0 -> 170114, sl: 0 tp: 0


티켓이 오더에 배정되어 거래소로 보내진 후 1.4 SEC가 지났다는 사실과 모든 조치로 판단

서버 자체에서 발생한 지연은 서버 자체에서 발생한다고 가정합니다. log(2) - log(3).


글쎄, 이것은 매우 "즐거워"

GP       0        19 : 17 : 29.663     Trades   'xxxxx' : cancel # 85167146 buy limit 3.00 UCHF- 9.18 at market done in 132608.665 ms
HR       0        19 : 17 : 29.678     Trades   'xxxxx' : cancel # 85167164 buy limit 3.00 AUDU- 9.18 at market done in 132623.761 ms
HK       0        19 : 17 : 29.698     Trades   'xxxxx' : cancel # 85167165 sell limit 3.00 AUDU- 9.18 at market done in 132642.978 ms
OE       0        19 : 17 : 29.721     Trades   'xxxxx' : cancel # 85167070 buy limit 1.00 GOLD- 12.18 at market done in 132653.264 ms
NG       0        19 : 17 : 29.741     Trades   'xxxxx' : cancel # 85167172 sell limit 1.00 ALRS- 9.18 at market done in 132686.437 ms
MR       0        19 : 17 : 29.755     Trades   'xxxxx' : cancel # 85167177 sell limit 2.00 NLMK- 9.18 at market done in 132700.889 ms
HP       0        19 : 17 : 29.783     Trades   'xxxxx' : cancel # 85167183 buy limit 1.00 PLT- 12.18 at market done in 132727.785 ms
CO       0        19 : 17 : 29.801     Trades   'xxxxx' : cancel # 85167254 sell limit 1.00 GMKR- 9.18 at market done in 132746.755 ms
FN       0        19 : 17 : 29.819     Trades   'xxxxx' : cancel # 85167689 sell limit 2.00 SBRF- 12.18 at market done in 132722.855 ms
QJ       0        19 : 17 : 29.839     Trades   'xxxxx' : cancel # 85167774 sell limit 3.00 UCHF- 9.18 at market done in 132783.830 ms
GH       0        19 : 17 : 29.855     Trades   'xxxxx' : cancel # 85167936 sell limit 2.00 MOEX- 9.18 at market done in 132800.500 ms
EH       0        19 : 17 : 29.870     Trades   'xxxxx' : cancel # 85167942 buy limit 1.00 SNGR- 9.18 at market done in 132815.113 ms
IR       0        19 : 17 : 29.889     Trades   'xxxxx' : cancel # 85167943 sell limit 2.00 SNGR- 9.18 at market done in 132834.156 ms
KN       0        19 : 17 : 29.916     Trades   'xxxxx' : cancel # 85168487 buy limit 2.00 CY- 9.18 at market done in 132860.907 ms
JP       0        19 : 17 : 29.935     Trades   'xxxxx' : cancel # 85168192 buy limit 3.00 UCAD- 9.18 at market done in 132944.703 ms
KL       0        19 : 17 : 29.950     Trades   'xxxxx' : cancel # 85170324 sell limit 1.00 VTBR- 9.18 at market done in 132895.471 ms
FJ       0        19 : 17 : 29.965     Trades   'xxxxx' : cancel # 85170435 sell limit 3.00 UJPY- 9.18 at market done in 132910.178 ms
RE       0        19 : 17 : 29.979     Trades   'xxxxx' : cancel # 85167688 buy limit 1.00 SBRF- 12.18 at market done in 132883.188 ms
KD       0        19 : 17 : 29.999     Trades   'xxxxx' : cancel # 85170988 sell limit 1.00 CHMF- 9.18 at market done in 132943.997 ms
PN       0        19 : 17 : 30.021     Trades   'xxxxx' : cancel # 85171201 buy limit 1.00 ED- 12.18 at market done in 133030.275 ms
DN       0        19 : 17 : 30.044     Trades   'xxxxx' : cancel # 85171303 buy limit 1.00 UJPY- 9.18 at market done in 132989.636 ms