FORTS. Questions relatives à l'application de la loi - page 99

 
Dennis Kirichenko:

Beaucoup de gens vont encore me blâmer, mais je maintiens mon opinion. Oui, j'étais émotive ci-dessus, alors s'il vous plaît pardonnez-moi si j'ai offensé quelqu'un...

Je viendrai de loin.

Imaginez un magasin soviétique avant son ouverture, bien qu'à 9 heures du matin. Un chargeur de camion qui ouvre la porte du magasin de l'intérieur à 9 heures précises risque d'être écrasé par la foule qui arrive. La foule est enfin lancée dans la boutique, et pendant les premières minutes, la boutique est animée, pour ne pas dire chaotique. Il y a beaucoup de bruit, beaucoup de jurons. Parfois, certains criminels arrivent en tête de file. C'est alors que la foule devient encore plus agitée et bruyante...

Alors voilà. Maintenant, le trader est assis devant l'écran, il ne voit pas de foule, tout est calme avant l'ouverture de la "boutique". Le sentiment d'agitation et de chaos ne le dérange pas en tant qu'acheteur soviétique. Mais cela n'invalide pas la situation lorsque le système d'échange démarre et qu'il y a un afflux d'offres. Le principe d'un col étroit ne disparaît pas et reste valable.

Question. Pensez-vous que le courtier déclenche ses acheteurs au hasard ou selon une sorte d'algorithme ? Il me semble que la priorité est donnée aux gros acheteurs. Le courtier reçoit une commission plus importante de leur part. Et puis il y a la question de la réputation du courtier. L'insatisfaction d'un gros acheteur est plus dangereuse que l'insatisfaction d'un petit acheteur. C'est-à-dire que je suppose que les ordres des gros clients sont exécutés plus rapidement à l'ouverture.

Question. Pensez-vous que le courtier ne se rend pas compte que le "petit magasin" souffre ? Je pense que bien sûr qu'il le fait. Nous avons collectivement établi que les "dehors" ne sont pas des idiots. Qu'est-ce qu'un courtier peut faire alors ? Eh bien, probablement minimiser le mécontentement de l'acheteur mesquin d'une manière ou d'une autre. Comment, exactement ? Vous ne pouvez pas annuler l'ordre, car les petits négociants diraient : "Comment ai-je pu, moi, un négociant respecté, bien que petit, obtenir un rejet de la part du courtier ? Peut-être pouvez-vous simplement garder les petites offres dans la file d'attente jusqu'au retour des patrons... Ou bien, acceptez les offres principales - achat ou vente, et gardez la modification...

Et maintenant, imaginez qu'il y ait plusieurs courtiers de ce type à la bourse : il y a encore plus d'agitation au début d'une session que dans un seul magasin soviétique.

Ce sont les pensées.

P.S. Toutes les coïncidences dans mon texte sont fortuites et illustratives.

Il y a beaucoup d'"eau" parce que vous ne savez pas comment est configurée la passerelle FORTS.

Il y a des restrictions de connexion, c'est-à-dire que je ne peux envoyer que 30 transactions par seconde.

J'avais 3 serveurs MT5 et maintenant il y en a 8, et la latence n'a pas diminué,

Mais il n'y a plus d'utilisateurs de MT5 sur FORTS !

 
fxsaber:

Ce sera la preuve que l'événement n'a pas eu lieu.

Il ne le fera pas !

Tout ce que l'utilisateur fait n'est pas une preuve, seuls les logs du terminal seront une preuve !

 
prostotrader:

Il ne le fera pas !

Tout ce que l'utilisateur fait n'est pas une preuve, seuls les logs du terminal seront une preuve !

Mais l'enregistrement de tous les événements par l'utilisateur dans OnTradeTransaction() aidera à comprendre les raisons.

 
Vladimir Karputov:

Mais l'enregistrement de tous les événements dans OnTradeTransaction() par l'utilisateur aidera à comprendre les raisons.

C'est drôle...

J'ai 4000 transactions par jour, chaque transaction au moins 5-6 fois "twitche" OnTradeTransaction

Qui va trier ces "cons" :) Après tout, ils ont besoin de journaux et d'un terminal pour y accéder, ainsi que des journaux du serveur MT5.

Ajouté

Tout fonctionnait bien avant la publication de la nouvelle version.

Même maintenant, il fonctionne, mais parfois il se bloque sur les serveurs de courtiers.

Ajouté

Lorsque j'installe, modifie ou supprime un ordre, je lui donne unétat et je le chronomètre.

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

C'est ici

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

Et ce drapeau(ORD_DO_SET) est remis à zéro dans OntradeTransaction.

Le timer (1 seconde) vérifie l'état de cet ordre si rien n'a été saisi dans OnTradeTransaction.

Et il calcule la nouvelle heure en enregistrant

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

Avant d'afficher le journal, cette fonction vérifie ce qui est arrivé à l'ordre

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

Ajouté par

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

Le fait est qu'avant l'année dernière, OnTradeTransaction est devenu GARANTI ! :)

Disons-le ainsi : si un événement arrive sur le terminal, il est garanti d'être placé comme OnTradeTransaction dans la file d'attente des événements.

la question est la suivante :

La longueur de la file d'attente des transactions est de 1024 éléments. Si la fonction OnTradeTransaction() prend trop de temps pour traiter une autre transaction, les anciennes transactions de la file d'attente peuvent être remplacées par des transactions plus récentes.

Et la file d'attente des événements du conseiller expert lui-même. Combien d'événements peut-il y avoir et s'ils sont préemptés.

 
Комбинатор:

Disons que si un événement arrive sur le terminal, il est garanti d'être placé comme OnTradeTransaction dans la file d'attente des événements. Cela ne signifie pas qu'il est garanti d'être traité par l'EA.

une question à propos de celui-ci :

Et la file d'attente des événements du conseiller expert lui-même : combien d'événements peuvent s'y trouver et s'il existe une action préventive (si la citation ne concerne pas les conseillers experts).

Combien de temps pensez-vous que ça dure ?

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:

Combien de temps pensez-vous que ça dure ?

S'il ne peut y avoir qu'un seul événement OnTradeTransaction dans la file d'attente des événements de l'EA (comme un timer), alors la vitesse de votre code n'est pas importante.

sinon, selon que vous travaillez avec des ordres de manière synchrone ou asynchrone.
 
Комбинатор:

S'il ne peut y avoir qu'un seul événement OnTradeTransaction dans la file d'attente des événements EA (comme une minuterie), alors la vitesse de votre code n'est pas pertinente.

sinon, selon que vous travaillez de manière synchrone ou asynchrone avec les commandes.

de manière asynchrone, mais il ne peut y en avoir plus de 30 simultanément

Au fait, en voici d'autres (et du 10-10 au 14-00 tout fonctionnait bien pour une raison quelconque)

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

Mais ici, nous avons attendu que le serveur réponde :)

 

Mais ne trouvez-vous pas étrange que la dernière fois que j'ai écrit ici...

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

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

Nous sommes en avril 2017, la nouvelle version 1571 est sortie.

Et, maintenant 1755, seulement alors c'était 2 secondes et maintenant....

Pourquoi suis-je resté silencieux pendant si longtemps (et n'ai-je même pas touché aux EA) pendant 9 mois entiers ?

Ajouté

Le nombre d'instruments sur le forex n'a pas changé, ouverture de 5 nouveaux serveurs MT5,

Les volumes d'échanges ont diminué et le problème n'a pas seulement persisté mais s'est "amplifié".

 

Et le terminal lui-même n'enverra pas plus de 60 commandes par seconde

 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

Raison: