FORTS : Codes de retour de OnTradeTransaction() - page 2

 
Михаил:

Vous et moi parlons des "langues différentes".

L'ordre, peut être supprimé à la suite d'une transaction croisée,

et le ORDER_STATE_CANCELED revient avec un code de retour de "0".

Cela n'a rien à voir avec le courtier.

Vous comprenez que MT5 est une plateforme universelle et qu'en s'adaptant aux conditions d'une passerelle particulière, le courtier (chaque courtier) configure la partie serveur à sa manière.

Ce que le programmeur du courtier écrit sur le serveur sera renvoyé.

La question doit donc être résolue directement avec le service d'assistance technique du courtier. Eux seuls ont les logs du serveur, eux seuls peuvent clarifier la situation.

Dans ce cas, tout observateur extérieur ne peut même pas être sûr que ce sont de vrais codes de retour, il est écrit par votre code, et le code n'est pas attaché.

Et l'enregistrement de ces fonctions rapides par les imprimantes donne souvent lieu à un désordre. Il serait bon de reproduire la situation (je comprends que c'est difficile), et de préférence avec un enregistrement des chaînes de caractères suivi d'un vidage dans un fichier.

Dans tous les cas, il est impossible de s'y retrouver sans un CD Broker.

 
Nikolay Demko:

Vous comprenez que MT5 est une plateforme universelle, et qu'en s'adaptant aux conditions d'une passerelle particulière, le courtier (chaque courtier) configure la partie serveur à sa manière.

Ce que le programmeur du courtier écrit, le serveur le renverra.

La question doit donc être résolue directement avec le service d'assistance technique du courtier. Eux seuls ont les logs du serveur, eux seuls peuvent clarifier la situation.

Dans ce cas, tout observateur extérieur ne peut même pas être sûr que ce sont de vrais codes de retour, il est écrit par votre code, et le code n'est pas attaché.

Et l'enregistrement de ces fonctions rapides par les imprimantes donne souvent lieu à un désordre. Il serait bon de reproduire la situation (je comprends que c'est difficile), et de préférence avec un enregistrement des chaînes de caractères suivi d'un vidage dans un fichier.

En tout cas, je le répète, sans un courtier en CD, il est impossible de comprendre.

Cher Nikolaï !

Si TOUS les programmeurs de courtiers écrivent "leurs" codes de retour.....

Pensez à ce qui se passerait :)

 
Михаил:

Cher Nikolaï !

Si CHAQUE programmeur de courtiers écrit "ses" codes de retour.....

Pensez à ce qui se passerait :)

Ne réagissez pas de manière excessive, le programmeur du courtier configure le serveur une fois lors du pré-lancement, et pas n'importe quoi, mais seulement à partir de l'ensemble disponible.

Mais la mise en place du serveur est une chose intellectuelle, le fabricant a prévu des options, mais pour développer à l'avance certains schémas de mise en place un peu compliqué, cela dépend de quel type de conditions à quel courtier.

C'est pourquoi la configuration de la partie serveur se fait au niveau du courtier, entre autres. La deuxième raison pour laquelle vous devez contacter le courtier est qu'il a un journal de la partie serveur, et seulement quand le courtier dit untel, ce bug de serveur est déjà possible à MQ, bien que dans ce cas, vous ne devez pas vous inquiéter, ils vont eux-mêmes contacter le développeur.

 
Nikolay Demko:

N'exagérez pas, le programmeur du courtier configure le serveur une fois pendant la préparation du pré-lancement, et pas n'importe quoi, mais à partir de l'ensemble disponible.

Mais la mise en place du serveur est une chose intelligente, le fabricant a prévu les options possibles, mais il est difficile d'élaborer à l'avance certains schémas de configuration, cela dépend des conditions du courtier.

C'est pourquoi la configuration de la partie serveur se fait au niveau du courtier, entre autres. La deuxième raison pour laquelle il faut contacter le courtier, c'est parce qu'il a des logs côté serveur et seulement quand le courtier dit untel, ce bug du serveur est déjà possible pour MQ, bien que dans ce cas, vous n'avez pas à vous inquiéter, ils vont eux-mêmes contacter le développeur.

Réponse du courtier :

Bon après-midi.

Non, ce paramètre est du côté des développeurs.

A la fin de l'année dernière, la question suivante a été posée :

La Bourse de Moscou inflige des amendes pour des transactions erronées. Le règlement complet peut être consulté à l'adresse suivante :http://fs.moex.com/files/4266

Ainsi, par exemple, l'échange pénalise :

Type de transaction*.

Résultat de l'exécution (code d'erreur)*

Score Q

AddOrder

Des échanges croisés ont eu lieu (31)

Q1

Fonds insuffisants des clients (332)

Q2

Fonds insuffisants de la société de courtage (333)

Q3

Offre FOK non consolidée (4103)

Q4

DelOrder

Commande non trouvée (14)

Q5

Ordre de déplacement

Des transactions croisées ont eu lieu (31)

Q6

Aucun ordre n'a été trouvé (50)

Q7

Fonds insuffisants des clients (332)

Q8

Fonds insuffisants de la société de courtage (333)

Q9

DelUserOrders

La transaction a été effectuée avec succès,

et aucune commande n'est supprimée

Q10

Dans MT5, il n'y a pas d'autres codes de retour dans les "codes de retour du serveur de négociation", à l'exception du code de retour "pas assez de fonds du client".

La réponse suivante a été reçuedeMetaQuotes

Bonjour,

1. Malheureusement, le problème de la traduction des codes de retour d'échange sous une forme ou une autre n'est pas simple et nécessite un certain nombre de modifications. Nous sommes actuellement à la recherche de la solution la plus appropriée. Il est fort probable que la fonctionnalité requise sera ajoutée au cours de l'année prochaine.

2. En ce qui concerne le tableau des transactions erronées - en tenant compte du fait que le serveur de trading MT5 effectue une vérification préliminaire des demandes de transaction du client (y compris le contrôle des exigences de marge), l'échange peut effectivement être refusé dans 2 cas :

Type d'opération*.

Résultat de l'exécution (code d'erreur)*

Q score

AddOrder

Des échanges croisés ont eu lieu (31)

Q1

Fonds insuffisants des clients (332)

Q2

Fonds insuffisants de la société de courtage (333)

Q3

Offre FOK non consolidée (4103)

Q4

DelOrder

Commande non trouvée (14)

Q5

Ordre de déplacement

Des transactions croisées ont eu lieu (31)

Q6

Aucun ordre n'a été trouvé (50)

Q7

Fonds insuffisants des clients (332)

Q8

Fonds insuffisants de la société de courtage (333)

Q9

DelUserOrders

La transaction a été effectuée avec succès,

et aucune commande n'est supprimée

Q10


Les deux sont pratiquement improbables.

Regards,

Mikhail Baturov

Chef de l'assistance aux utilisateurs des systèmes de négociation

Gestion du soutien des systèmes de négociation

Maison de courtage Otkritie

 

Parfois, les MQs sont bloqués dans certaines réponses.

Exemple :

MQ :"Les deux sont pratiquement improbables."

Il n'est pas étonnant que la raison de l'échec soit la même !

Un changement a eu lieu sur le symbole MGNT le 12.05.2015 (l'échelon de prix est devenu 1,

les prix doivent être des nombres entiers)

Le courtier ne suit probablement pas les changements de taux de change :

Si je n'avais pas la protection du code de retour dans mon EA,

alors j'obtiendrais des milliers de transactions en quelques secondes :

2015.05.15 10:00:10.051 Forts_trader (MGNT-6.15,H1)     StopTrading: Неправильная цена в запросе

Et une telle situation devrait également être "improbable" !


 

Chers développeurs !

Veuillez répondre, quand allez-vous enfin payer

attention aux CODES DE RETOUR du serveur de trading?

Lorsqu'un serveur MT5 tombe en panne ou qu'une bourse se bloque, il se passe ce qui suit :

Le conseiller expert envoie des ordres pour supprimer un ordre EXISTANT, mais la réponse est la suivante

"Demande non valide" ! !!! Et le conseiller expert continue de "marteler" le serveur avec des ordres de suppression.

l'ordre.

//+------------------------------------------------------------------+
// Remove order                                                      |
//+------------------------------------------------------------------+
void COrder::Remove()
{
  if ( ticket > 0 )
  {
    if ( OrderSelect( ticket ) )
    {
      mem_magic = ulong( OrderGetInteger( ORDER_MAGIC ) );
      mem_tick = GetTickCount();
      req_id = 0;
      MqlTradeRequest request = {0};
      MqlTradeResult  result  = {0};
            
      request.action = TRADE_ACTION_REMOVE;
      request.order = ticket;
          
      if ( OrderSendAsync( request, result ) )
      {
        if ( result.retcode == TRADE_RETCODE_PLACED )
        { 
          req_id = result.request_id;
//---          
          switch( order_status )
          {
            case BUY_ORDER:  state = ORD_BUY_DO_CANCEL;
                             break;
                
            case SELL_ORDER: state = ORD_SELL_DO_CANCEL;
                             break;           
          } 
          SetTransCount( true );
        }
        else
        {
          mem_magic = 0;
          mem_tick = 0;
          CheckError( result.retcode, "Remove: Результат удаления ордера не верен! Причина: ", order_status, ticket );
        }  
      }
      else
      {
        mem_magic = 0;
        mem_tick = 0;
        CheckError( result.retcode, "Remove: Ордер не отослан! Причина: ", order_status, ticket );
      }
    }
    else
    {
      ticket = 0;
      modify_count = 0;
    }
  }
  else
  {
    modify_count = 0;
  }
}

Comment peut-il y avoir une demande erronée si la commande est ACTIVE ?

2015.09.15 15:27:31.402 Trades  'xxxxx': failed modify order #20619541 sell limit 35.00 BR-11.15 at 50.33000 sl: 0.00000 tp: 0.00000 -> 49.19000, sl: 0.00000 tp: 0.00000 [Invalid request]
2015.09.15 15:27:32.611 Trades  'xxxxx': failed cancel order #20619541 sell limit 35.00 BR-11.15 at 50.33000 [Invalid request]
2015.09.15 15:27:34.163 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:42.815 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:43.006 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:43.358 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:43.407 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:44.562 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:44.572 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:45.593 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:45.892 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.007 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.407 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.769 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:47.789 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:50.819 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:50.879 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:27:50.900 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:28:04.330 Trades  'xxxxx': failed cancel order #20619543 buy limit 50.00 BR-11.15 at 48.29000 [Invalid request]
2015.09.15 15:28:04.330 Trades  'xxxxx': failed cancel order #20619541 sell limit 35.00 BR-11.15 at 50.33000 [Invalid request]
 

L'édition constante du post a recommencé. Comme si cela rendait le sujet plus visible pour les développeurs.

Vous seriez mieux dans le Service Desk à les frotter tous les jours au lieu de mettre à jour le forum avec des mises à jour invisibles...

 
Andrey Khatimlianskii:

L'édition constante du post a recommencé. Comme si cela rendait le sujet plus visible pour les développeurs.

Vous feriez mieux de les frotter tous les jours dans le service-desk au lieu de mettre à jour le forum avec des mises à jour invisibles...

Bonjour, Andrew !

Là non plus, personne ne répond (tout le monde en a "marre").

 
Et ici, la communauté sera au courant des problèmes actuels.
 

Êtes-vous, Andrei, contre la correction des bogues dans MT5 et

Êtes-vous contre la correction de bugs dans MT5 et l'amélioration de la fonctionnalité de trading de la plateforme ?