FORTI. Problemi di applicazione - pagina 99

 
Dennis Kirichenko:

Molte persone mi rimprovereranno di nuovo, ma io rimango della mia opinione. Sì, sono stato emotivo sopra, quindi per favore perdonatemi se ho offeso qualcuno...

Verrò da lontano.

Immaginate un negozio sovietico prima dell'apertura, anche se alle 9 del mattino. Un caricatore di camion che apre la porta del negozio dall'interno esattamente alle 9:00 rischia di essere schiacciato dalla folla in arrivo. La folla viene finalmente lanciata nel negozio, e per i primi minuti il negozio è vivace, se non caotico. C'è molto rumore, molte imprecazioni e a volte alcuni criminali arrivano in testa alla fila. È allora che la folla diventa ancora più agitata e rumorosa...

Quindi ci siamo. Ora il commerciante si siede davanti al monitor, non vede la folla, tutto è tranquillo prima che il "negozio" si apra. Il senso di trambusto e di caos non lo disturba come acquirente sovietico. Ma questo non invalida la situazione quando il sistema di scambio si avvia e c'è un'ondata di offerte. Il principio del collo stretto non scompare e rimane valido.

Domanda. Pensi che il broker faccia scattare i suoi acquirenti a caso o secondo qualche tipo di algoritmo? Mi sembra che la priorità sia data ai grandi acquirenti. Il broker ottiene più commissioni da loro. E poi c'è la questione della reputazione del broker. L'insoddisfazione di un grande acquirente è più pericolosa dell'insoddisfazione di un piccolo acquirente. Cioè, presumo che gli ordini dei grandi clienti siano eseguiti più velocemente all'apertura.

Domanda. Pensate che il broker non si renda conto che il "negozio" dei piccoli acquirenti sta soffrendo? Penso che sia ovvio che lo faccia. Abbiamo stabilito collettivamente che "là fuori" non sono idioti. Beh, probabilmente ridurre al minimo la frustrazione dell'acquirente meschino in qualche modo. Come, esattamente? Non si può annullare l'ordine, perché i piccoli commercianti direbbero: "Come ho fatto io, un commerciante rispettato, anche se piccolo, ad avere un rifiuto dal broker? Forse, puoi semplicemente tenere le offerte minori nella coda delle offerte fino al ritorno dei capi... Oppure, accettare le offerte principali - comprare o vendere, e tenere la modifica...

E ora immaginate che ci siano molti di questi broker allo scambio: c'è ancora più confusione all'inizio di una sessione, che in un solo negozio sovietico.

Questi sono i pensieri.

P.S. Tutte le coincidenze nel mio testo sono casuali e illustrative.

C'è molta "acqua" perché non sapete come è impostato il gateway FORTS.

Ci sono delle restrizioni di accesso, cioè posso inviare solo 30 transazioni al secondo.

Prima avevo 3 server MT5, ma ora ce ne sono 8, e la latenza non è diminuita,

Ma non ci sono più utenti MT5 su FORTS!

 
fxsaber:

Questa sarà la prova che l'evento non è accaduto.

Non lo farà!

Qualsiasi cosa faccia l'utente non è una prova, solo i log del terminale saranno una prova!

 
prostotrader:

Non lo farà!

Tutto ciò che l'utente fa non è una prova, solo i log del terminale saranno una prova!

Ma la registrazione di tutti gli eventi dell'utente in OnTradeTransaction() aiuterà a capire le ragioni.

 
Vladimir Karputov:

Ma la registrazione di tutti gli eventi in OnTradeTransaction() da parte dell'utente aiuterà a capire le ragioni.

Divertente...

Ho 4000 transazioni al giorno, ogni transazione almeno 5-6 volte "scatta" OnTradeTransaction

Chi si occuperà di questi "cretini" :) Dopotutto hanno bisogno di registri e di un terminale per loro, oltre ai registri del server MT5.

Aggiunto

Tutto funzionava bene prima del rilascio della nuova build.

Anche ora funziona, ma a volte si blocca su Broker Server.

Aggiunto

Quando installo, modifico o cancello un ordine, gli do unostato e lo cronometro.

//+------------------------------------------------------------------+
//| 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);
  }
}

Ecco qui

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();
    }

E questo flag(ORD_DO_SET) viene resettato in OntradeTransaction.

Il timer (1 secondo) controlla lo stato di questo ordine se non è stato inserito nulla in OnTradeTransaction.

E calcola il nuovo tempo registrando

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

Prima di visualizzare il log, questa funzione controlla cosa è successo all'ordine

//+------------------------------------------------------------------+
// 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);
  }
}

Aggiunto da

#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:

Il fatto è che l'anno scorso OnTradeTransaction è diventato GARANTITO! :)

Mettiamola così: se un evento arriva al terminale, è garantito che venga messo come OnTradeTransaction nella coda degli eventi.

la domanda è questa:

La lunghezza della coda delle transazioni è di 1024 elementi. Se OnTradeTransaction() impiega troppo tempo per elaborare un'altra transazione, le vecchie transazioni nella coda possono essere sostituite da quelle più recenti.

E la coda di eventi dell'Expert Advisor stesso. Quanti eventi possono esserci e se sono preimpostati.

 
Комбинатор:

Diciamo che se un evento arriva al terminale, è garantito che venga messo come OnTradeTransaction nella coda degli eventi. questo non significa che sia garantito che venga processato dall'EA.

una domanda su questo:

E la coda di eventi dell'Expert Advisor stesso. Quanti di loro possono esserci e se c'è un'azione preventiva (se la citazione non riguarda gli Expert Advisor)

Quanto pensi che sia lungo?

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:

Quanto pensi che sia lungo?

Se ci può essere solo un evento OnTradeTransaction nella coda degli eventi EA (come un timer) allora la velocità del tuo codice non è importante.

in caso contrario, a seconda che si stia lavorando con gli ordini in modo sincrono o asincrono.
 
Комбинатор:

Se ci può essere solo un evento OnTradeTransaction nella coda degli eventi EA (come un timer) allora la velocità del tuo codice è irrilevante.

se no, a seconda che si lavori in modo sincrono o asincrono con gli ordini.

In modo asincrono, ma non possono essercene più di 30 contemporaneamente

A proposito, qui c'è di più (e dal 10-10 al 14-00 tutto funzionava bene per qualche motivo)

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

Ma qui abbiamo aspettato che il server rispondesse :)

 

Ma non pensi che sia strano che l'ultima volta che ho scritto qui

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

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

Questo è aprile 2017, è uscita la nuova build 1571

E, ora 1755, solo allora era 2 secondi e ora....

Perché sono stato in silenzio per così tanto tempo allora (e non ho nemmeno toccato gli EAs) per ben 9 mesi!

Aggiunto

Il numero di strumenti sul forex non è cambiato, ha aperto 5 nuovi server MT5,

I volumi di scambio sono diminuiti e il problema non solo è rimasto, ma è "cresciuto".

 

E il terminale stesso non invierà più di 60 ordini al secondo

 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

Motivazione: