FORTS. Fragen der Durchsetzung - Seite 99

 
Dennis Kirichenko:

Viele Leute werden mir wieder die Schuld geben, aber ich stehe zu meiner Meinung. Ja, ich war oben emotional, also verzeihen Sie mir bitte, wenn ich jemanden beleidigt habe...

Ich werde aus der Ferne kommen.

Stellen Sie sich einen sowjetischen Laden vor, bevor er öffnet, wenn auch um 9.00 Uhr morgens. Ein Lkw-Lader, der um Punkt 9.00 Uhr die Ladentür von innen öffnet, läuft Gefahr, von der ankommenden Menge erdrückt zu werden. Schließlich wird die Menge in den Laden gelassen, und in den ersten Minuten herrscht dort geschäftiges, wenn nicht gar chaotisches Treiben. Es ist laut, es wird viel geflucht, und manchmal stehen Kriminelle ganz vorne in der Schlange. Das ist der Moment, in dem die Menge noch aufgeregter und lauter wird...

So, das war's. Jetzt sitzt der Händler vor dem Monitor, sieht keine Menschenmenge, alles ist ruhig, bevor der "Laden" öffnet. Das Gefühl von Hektik und Chaos stört ihn als sowjetischen Einkäufer nicht. Dies ändert jedoch nichts an der Situation, wenn das Börsensystem anläuft und eine Flut von Geboten vorliegt. Der Grundsatz des engen Halses wird nicht aufgehoben und bleibt gültig.

Frage. Glauben Sie, dass der Makler seine Käufer nach dem Zufallsprinzip oder nach einer Art Algorithmus auslöst? Ich habe den Eindruck, dass Großabnehmern Vorrang eingeräumt wird. Der Makler erhält von ihnen eine höhere Provision. Und dann ist da noch die Frage nach dem Ruf des Maklers. Die Unzufriedenheit eines Großabnehmers ist gefährlicher als die Unzufriedenheit eines kleinen Abnehmers. Das heißt, ich gehe davon aus, dass die Aufträge von Großkunden bei der Eröffnung schneller ausgeführt werden.

Frage. Glauben Sie, dass der Makler nicht merkt, dass der "Laden" der kleinen Kunden leidet? Ich denke, natürlich tut er das. Wir haben gemeinsam festgestellt, dass "die da draußen" keine Idioten sind. Was kann ein Makler dann tun? Nun, wahrscheinlich die Unzufriedenheit des unbedarften Käufers irgendwie minimieren. Wie genau? Sie können den Auftrag nicht stornieren, denn die kleinen Händler würden sagen: "Wie konnte ich, ein angesehener, wenn auch kleiner Händler, eine Ablehnung vom Makler erhalten? Vielleicht können Sie die kleinen Gebote einfach in der Warteschlange zurückhalten, bis die Bosse zurückkommen... Oder Sie akzeptieren die Hauptgebote - kaufen oder verkaufen - und halten die Änderung zurück...

Und nun stellen Sie sich vor, dass es viele solcher Makler an der Börse gibt: Zu Beginn einer Sitzung herrscht noch mehr Trubel als in einem einzigen sowjetischen Geschäft.

Das sind die Gedanken.

P.S. Alle Zufälle in meinem Text sind zufällig und illustrativ.

Es gibt eine Menge "Wasser", weil Sie nicht wissen, wie das FORTS-Gateway aufgebaut ist.

Es gibt Anmeldebeschränkungen, d. h. ich kann nur 30 Transaktionen pro Sekunde senden.

Früher hatte ich 3 MT5-Server, jetzt sind es 8, und die Latenz hat sich nicht verringert,

Aber es gibt keine MT5-Benutzer mehr auf FORTS!

 
fxsaber:

Dies ist der Beweis, dass das Ereignis nicht stattgefunden hat.

Das wird es nicht!

Alles, was der Benutzer tut, ist kein Beweis, nur die Terminalprotokolle sind ein Beweis!

 
prostotrader:

Das wird es nicht!

Alles, was der Benutzer tut, ist kein Beweis, nur die Terminalprotokolle sind ein Beweis!

Aber die Protokollierung aller Ereignisse durch den Benutzer in OnTradeTransaction() wird helfen, die Gründe zu verstehen.

 
Vladimir Karputov:

Aber die Protokollierung aller Ereignisse in OnTradeTransaction() durch den Benutzer wird helfen, die Gründe zu verstehen.

Komisch...

Ich habe 4000 Transaktionen pro Tag, jede Transaktion mindestens 5-6 mal "zuckt" OnTradeTransaction

Wer wird diese "Idioten" aussortieren :) Immerhin brauchen sie Logs und Terminal zu ihnen, plus Logs von MT5 Server.

Hinzugefügt

Vor der Veröffentlichung des neuen Builds funktionierte alles einwandfrei.

Auch jetzt funktioniert es, aber manchmal stürzt es auf Broker-Servern ab.

Hinzugefügt

Wenn ich einen Auftrag installiere, ändere oder lösche, gebe ich ihm einenStatus und einen Zeitpunkt.

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

Hier ist sie

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

Und dieses Flag(ORD_DO_SET) wird in OntradeTransaction zurückgesetzt.

Der Timer (1 Sekunde) prüft den Status dieses Auftrags, wenn in OnTradeTransaction nichts eingegeben wurde.

Und die neue Zeit wird durch die Protokollierung von

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

Bevor das Protokoll angezeigt wird, prüft diese Funktion, was mit dem Auftrag passiert ist

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

Hinzugefügt von

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

Die Sache ist die, dass OnTradeTransaction bereits im vorletzten Jahr GUARANTEED wurde! :)

Sagen wir es so: Wenn ein Ereignis am Terminal eintrifft, wird es garantiert als OnTradeTransaction in die Ereigniswarteschlange gestellt.

Die Frage ist folgende:

Die Länge der Transaktionswarteschlange beträgt 1024 Elemente. Wenn OnTradeTransaction() zu lange braucht, um eine andere Transaktion zu verarbeiten, können die alten Transaktionen in der Warteschlange durch neuere ersetzt werden.

Und die Ereignis-Warteschlange des Expert Advisors selbst: Wie viele Ereignisse kann es geben und ob sie vorweggenommen werden.

 
Комбинатор:

Wenn ein Ereignis am Terminal eintrifft, wird es garantiert als OnTradeTransaction in der Ereigniswarteschlange platziert. Das bedeutet jedoch nicht, dass es garantiert vom EA verarbeitet wird.

eine Frage zu diesem Thema:

Und die Warteschlange der Ereignisse des Expert Advisors selbst, wie viele davon es geben kann und ob es eine Präventivmaßnahme gibt (wenn das Zitat nicht von Expert Advisors handelt)

Was glauben Sie, wie lang sie ist?

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:

Was glauben Sie, wie lang sie ist?

Wenn es nur ein OnTradeTransaction-Ereignis in der EA-Ereigniswarteschlange geben kann (wie ein Timer), ist die Geschwindigkeit Ihres Codes nicht wichtig.

wenn nicht, je nachdem, ob Sie mit Aufträgen synchron oder asynchron arbeiten.
 
Комбинатор:

Wenn es nur ein OnTradeTransaction-Ereignis in der EA-Ereigniswarteschlange geben kann (wie ein Timer), ist die Geschwindigkeit Ihres Codes irrelevant.

wenn nicht, je nachdem, ob Sie synchron oder asynchron mit Aufträgen arbeiten.

Asynchron, aber nicht mehr als 30 davon gleichzeitig

Übrigens, hier ist noch mehr (und vom 10.10. bis 14.00 Uhr funktionierte aus irgendeinem Grund alles einwandfrei)

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

Aber hier haben wir auf die Antwort des Servers gewartet :)

 

Aber finden Sie es nicht seltsam, dass das letzte Mal, als ich hier geschrieben habe

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

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

Es ist April 2017, das neue Build 1571 ist erschienen

Und, jetzt 1755, nur dann war es 2 Sekunden und jetzt....

Warum habe ich dann so lange geschwiegen (und die EAs nicht einmal angerührt), ganze 9 Monate lang!

Hinzugefügt

Anzahl der Instrumente auf Forex hat sich nicht geändert, eröffnet 5 neue MT5-Server,

Das Handelsvolumen ging zurück und das Problem blieb nicht nur bestehen, sondern "wuchs".

 

Und das Terminal selbst wird nicht mehr als 60 Bestellungen pro Sekunde senden

 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

Grund der Beschwerde: