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

 

Mettez votre pied à terre, ils ont dit

 

Le serveur fait encore des siennes (((.

Pendant 3 minutes, il se bloque, puis[Request timeout].

2019.01.04 14:18:20.427 Trades  'xxxxx': modify #97538997 buy limit 1.00 BR-3.19 -> price: 57.39, sl: 0.00, tp: 0.00) done in 47.866 ms
2019.01.04 14:18:28.399 Trades  'xxxxx': modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00
2019.01.04 14:18:28.445 Trades  'xxxxx': accepted modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00
2019.01.04 14:18:28.445 Trades  'xxxxx': modify order #97538868 sell limit 1.00 BR-3.19 at 57.51 sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00 placed for execution
2019.01.04 14:18:28.461 Trades  'xxxxx': deal #56712593 sell 1.00 BR-3.19 at 57.51 done (based on order #97538868)
2019.01.04 14:21:28.407 Trades  'xxxxx': failed modify order #97538868 buy 0.00 BR-3.19 at market sl: 0.00 tp: 0.00 -> 57.55, sl: 0.00 tp: 0.00 [Request timeout]

Serveur de découverte, terminal de construction 1947.
Que faire ?



 
Sergey Chalyshev:

Le serveur fait encore des siennes (((.

Il se bloque pendant 3 minutes, puis[Request timeout].

Serveur de découverte, Terminal build 1947.
Que dois-je faire ?



Serge !

C'est une sorte d'échec (je ne l'avais pas vu avant).

Cet ordre a été exécuté au prix de 57.51 avant modification.

Il s'agit peut-être d'une défaillance de la bourse elle-même, car le serveur MT5 a envoyé un ordre à la bourse pour la modification14:18:28.445,

et la transaction a été faite14:18:28.461

2019.01.04 14:18:28.461 Trades  'xxxxx': deal #56712593 sell 1.00 BR-3.19 at 57.51 done (based on order #97538868)

Quelque chose doit être "gelé" dans le serveur (échange), et quand l'ordre "gelé" n'a pas été trouvé, alors[Request timeout].

A votre question Que faire ?

La réponse est OnTradeTransaction (TRADE_TRANSACTION_DEAL_ADD).

Ajouté par

J'utilise l'envoi asynchrone des commandes et le modèle de suivi des commandes suivant

//+------------------------------------------------------------------+
// Expert Trade Transaction function                                 |
//+------------------------------------------------------------------+
void OnTradeTransaction( const MqlTradeTransaction &trans,
                         const MqlTradeRequest &request,
                         const MqlTradeResult &result )
{
  switch(trans.type)
  {
    case TRADE_TRANSACTION_REQUEST:
      //Получение тикета ордера
    break;
    case TRADE_TRANSACTION_DEAL_ADD:
      //Произошла сделка (отложенный ордер)
    break;
    case TRADE_TRANSACTION_HISTORY_ADD:
     //Ордера нет (исполнился, отменен и т.д)
    break;
    case TRADE_TRANSACTION_ORDER_UPDATE:
      switch(trans.order_state)
      {
        case ORDER_STATE_PLACED:
          //Ордер размешен (модификация)  
        break;
        case ORDER_STATE_PARTIAL:
          //Ордер исполнился частично 
        break;
        case ORDER_STATE_REJECTED:
        case ORDER_STATE_EXPIRED:
          //    
        break;                       
      }
    break;
  }
}
 
prostotrader:

La réponse est d'utiliser OnTradeTransaction (TRADE_TRANSACTION_DEAL_ADD), ainsi vous ne manquerez pas une transaction et vous saurez donc ce qui est arrivé à l'ordre.

Ajouté par

J'utilise l'envoi asynchrone des commandes et le modèle de suivi des commandes suivant

Voici la question :

si nous avons manqué l'événement OnTradeTransaction requis pour une raison quelconque (par exemple, une panne d'Internet, un colis perdu, un redémarrage de l'ordinateur ou simplement la file d'attente des événements qui a débordé), quelle est notre prochaine étape ?

 
JRandomTrader:

Voici une question :

Si, pour une raison quelconque, nous avons manqué le bon événement OnTradeTransaction (par exemple, l'Internet a planté, un paquet a été perdu, l'ordinateur a redémarré, ou simplement la file d'attente des événements a débordé), quelle est notre prochaine action ?

Il y a des actions pour chaque cas que vous avez énuméré.

Par exemple, si votre ordinateur a été redémarré et que nous avons des ordres en attente, alors après le chargement du conseiller expert, nous vérifions

vérifier les ordres passés sur ce symbole. (il y a beaucoup de choses à prendre en compte, mais tout peut être résolu)

 
Aleksey Vyazmikin:

D'un point de vue pratique, oui, c'est utile, mais il est difficile d'imaginer comment le terminal pourrait ensuite ralentir en essayant de tout synchroniser... et si l'arrivée asynchrone de ces données a un sens - je ne suis pas sûr.

Désolé pour l'intrusion, ce n'est probablement pas le bon moment. Je suis juste assis ici, à relire le fil. De manière asynchrone comme on dit). L'arrivée asynchrone des données sur les événements de la tasse peut être utile si vous analysez uniquement les données de la tasse. C'est-à-dire le mouvement des offres aux niveaux. Ensuite, si soudainement chaque changement dans l'état de la tasse est à notre disposition, nous pouvons l'utiliser indépendamment de ce qui se passe ensuite. Ça donne quelque chose comme ça.

 
Andrey Gladyshev:

Je m'excuse pour l'intrusion, ce n'est peut-être pas le bon moment. Je suis juste assis ici à relire le fil. De manière asynchrone comme on dit). L'arrivée asynchrone des données sur les événements dans la tasse peut être utile, si vous n'analysez que les données de la tasse. C'est-à-dire le mouvement des offres aux niveaux. Ensuite, si soudainement chaque changement dans l'état de la tasse est à notre disposition, nous pouvons l'utiliser indépendamment de ce qui se passe ensuite. Ça donne quelque chose comme ça.

D'après ce que j'ai compris, le store de la coupe est diffusé par la bourse avec une certaine fréquence, c'est-à-dire qu'il n'est pas possible d'obtenir chaque changement.

Et, je ne comprends toujours pas, qu'est-ce qu'il est censé faire avec ? Surtout si les données arrivent avec un délai lorsqu'il y a de forts mouvements...
 
Aleksey Vyazmikin:

D'après ce que j'ai compris, le casting des actions est diffusé par la bourse avec une certaine fréquence, c'est-à-dire qu'il n'y a aucun moyen d'obtenir chaque changement.

Et, je ne comprends toujours pas, qu'est-ce qu'il est censé faire avec ? Surtout si les données arrivent avec un retard lorsqu'il y a de forts mouvements...

Je vais poser une contre-question et y répondre ensuite. Serait-il possible d'obtenir des informations plus significatives (ou plus exactement, opportunes) sur l'état de l'action si je devais littéralement m'asseoir à la bourse ? Je parle de la colocation, par exemple.

 
Andrey Gladyshev:

Je vais poser une contre-question et y répondre ensuite. Serait-il possible d'obtenir des informations plus significatives (ou devrais-je dire opportunes) sur l'état des actions si je devais littéralement m'asseoir à la bourse ? Je parle de la colocation, par exemple.

L'échange sera également diffusé. Ou supposez-vous qu'il y a une perte de trames de taux ?

 
Et cela dépend de quel échange. Je n'envisage pas la nôtre.