Alerte : Le terminal MT4 duplique des ordres envoyés par des experts

 

Quelque chose d'étrange se produit partout avec les comptes de trading MT4 (cela peut se produire avec n'importe quel courtier, d'après ce que je sais). La plateforme duplique parfois, mais rarement, les ordres envoyés par les experts.

J' ai vu cela se produire au moins 3 fois avec le build MT4 build 500. Les deux premières fois, c'était sur des comptes de démonstration, et la dernière fois, hier, c'était sur un compte réel. Le problème s'est produit :

1)Sur différentes installations MT4.

2)Sur différents ordinateurs.

3)Avec différents courtiers.

4)En utilisant différents conseillers experts.

Outre tout ce qui précède, le fait qui me dit qu'il s'agit d'un problème avec le terminal est très facile à vérifier. Lorsque l'ordre dupliqué se produit :

1)Il se produit immédiatement après l'ordre légitime, avec exactement la même taille de lot, le même symbole et le même commentaire.

2)La première opération, comme d'habitude, est affichée dans l'onglet des experts, ainsi que dans l'onglet du journal. Cependant, le duplicata est affiché dans le journal, mais il n'est PAS affiché dans l'onglet des experts. Ceci est une preuve fiable que le duplicata n'a PAS été envoyé par l'expert.

Je demande instamment à Metaquotes de résoudre ce problème le plus rapidement possible. Hier, j'ai dû fermer manuellement l'opération dupliquée, et j'ai perdu de l'argent, mais pas trop. Mais ce problème peut vraiment faire des ravages sur un compte automatisé.

S'il vous plaît, si l'un d'entre vous a vu ce problème, signalez-le afin que nous ayons des preuves supplémentaires et que le bug correspondant soit corrigé rapidement.

 
Ricardo1:

Je pense que la question ici est que vos EA sont conçus pour fonctionner sur une base tick par tick, donc par exemple si l'EA est en train de croiser en moyenne sur M5, pendant ces 5 minutes, le prix fluctue et pourrait faire en sorte que vos conditions pour envoyer des ordres se produisent plus d'une fois.


La solution serait de mettre un filtre sur l'envoi des ordres pour vérifier si vous êtes ouvert ou si vous avez des ordres sur le marché ou non. Ou bien travailler sur la base d'une barre. Je suis désolé mais je suis un newbee et je peux penser à ce qui est le problème mais je ne peux pas vous envoyer de code :).

J'espère que cela vous aidera.

 
Ricardo1: Je demande instamment à Metaquotes de résoudre ce problème le plus rapidement possible.
Pourquoi pensez-vous que le problème vient de MT4 et non de votre EA? Postez votre code.
 
Ricardo1:

Quelque chose d'étrange se produit partout avec les comptes de trading MT4 (cela peut se produire avec n'importe quel courtier, d'après ce que je sais). La plateforme duplique parfois, mais rarement, les ordres envoyés par les experts.

J' ai vu cela se produire au moins 3 fois avec le build MT4 build 500. Les deux premières fois, c'était sur des comptes de démonstration, et la dernière fois, hier, c'était sur un compte réel. Le problème s'est produit :

1)Sur différentes installations MT4.

2)Sur différents ordinateurs.

3)Avec différents courtiers.

4)En utilisant différents conseillers experts.

Vous devez quitter l'autre copie de votre EA qui est en cours d'exécution sur l'autre graphique... si ce n'est pas le cas, veuillez le prouver en publiant le fichier journal des experts montrant le démarrage de l'expert et les ordres dupliqués. Cette erreur a déjà été commise auparavant....

 

Vous me surprenez quelque peu. Vous partez du principe que je dois faire quelque chose de mal, que MT4 ne peut pas avoir de bugs. Je vais répondre à vos questions.


xavilin :


Ce n'est pas un problème de l'EA. L'EA que j'utilise fonctionne depuis plus d'un an sur différentes plateformes. De plus, ce problème s'est produit avec 3 EA différents, deux des miens et un commercial.


WHRoeder :

Je ne peux pas afficher mon code, mais comme je l'ai dit, le problème s'est produit avec 3 EA différents. Il ne se produit jamais en backtesting bien sûr. Comme je vous l'ai dit, *cela arrive très rarement*. En fait, si vous additionnez le temps pendant lequel mon EA (celui que j'utilisais hier) a fonctionné, en additionnant tous les comptes, il aurait fonctionné pendant quelques années. Et hier, cela s'est produit pour la *première* fois. Pensez-vous que cela puisse être un bug dans mon code ?


RaptorUK:

Pensez-vous vraiment que je sois si naïf pour avoir plus d'un EA sur le compte et ensuite signaler cela comme un problème ?


Comme je l'ai déjà dit, la preuve principale est que l'onglet journal a l'ordre, mais l'onglet experts *ne l'a pas*. Il est littéralement impossible qu'un EA envoie l'ordre et que l'onglet experts ne le signale pas !

Je pourrais poster le journal des experts et le journal du journal ici, mais pour des raisons de confidentialité, ce n'est pas possible pour moi. Mais je ne pense pas que cela soit nécessaire. Si vous croyez que je peux lire les deux fichiers et vous dire ce qu'ils disent, alors croyez que la fausse commande est contenue dans le journal et qu'elle n'est pas contenue dans le journal des experts, donc elle n'a pas été initiée par un expert du tout. Et bien sûr, je n'en suis pas à l'origine.

Il est vrai que j'aimerais avoir votre soutien, mais c'est dans l'intérêt de tous les utilisateurs. Si vous pensez qu'il n'y a pas d'erreur du tout, Metaquotes prendra plus de temps pour reconnaître le bug.

Je me suis senti obligé de partager cela avec vous, et j'espère que Metaquotes fera au moins quelques vérifications.

 
Ricardo1: Vous m'étonnez un peu. Vous supposez que je dois faire quelque chose de mal, que MT4 ne peut pas avoir de bugs. Je vais répondre à vos questions.

Je ne sais pas comment le dire gentiment sans contrarier quelqu'un comme vous. Mais vous devez changer d'attitude. Quand quelqu'un affirme que quelque chose est un bug, cela signifie que c'est reproductible. Vous n'avez aucun moyen de reproduire le bug, vous prétendez qu'il se produit "*la première* fois", peu importe ce que cela signifie, et vous ne fournissez aucun code pour exclure que le code n'est pas le problème. Comment quelqu'un est-il supposé retrouver cette trace ?

Sans compter que parmi les millions de personnes qui utilisent ce logiciel pour effectuer des millions de transactions par jour, vous êtes la seule personne à qui cela arrive. Croyez-moi, quand il s'agit d'argent, si cela arrivait à tout le monde (rarement), nous en entendrions encore souvent parler sur ce forum. Beaucoup de gens viennent ici en criant au bug et 99% du temps le problème se trouve dans leurs codes. Une fois que j'ai cessé de rejeter la faute sur les autres, j'ai réussi à résoudre beaucoup de mes problèmes de codage plus rapidement.

Ps : RaptorUK ne représente pas MetaQuotes, il est un modérateur social et ses commentaires ont autant de poids que les vôtres/mes. Pourquoi cela ne pourrait-il pas être un problème avec le courtier? Jusqu'à ce que d'autres personnes commencent à rapporter ce bug, la charge de la preuve est sur vous.

 
Ricardo1:


RaptorUK:

Pensez-vous vraiment que je sois si naïf pour avoir plus d'un EA sur le compte et ensuite signaler cela comme un problème ?


Comme je l'ai déjà dit, la preuve principale est que l'onglet journal a l'ordre, mais l'onglet experts *ne l'a pas*. Il est littéralement impossible qu'un EA envoie l'ordre et que l'onglet experts ne le signale pas !

Je pourrais poster le journal des experts et le journal du journal ici, mais pour des raisons de confidentialité, ce n'est pas possible pour moi. Mais je ne pense pas que ce soit nécessaire. Si vous croyez que je peux lire les deux fichiers et vous dire ce qu'ils disent, alors croyez que l'ordre bidon est contenu dans le journal de bord et qu'il n'est pas contenu dans le journal des experts, donc il n'a pas été initié par un expert du tout. Et bien sûr, je n'en suis pas à l'origine.

Il est vrai que j'aimerais avoir votre soutien, mais c'est dans l'intérêt de tous les utilisateurs. Si vous pensez qu'il n'y a pas d'erreur du tout, Metaquotes prendra plus de temps pour reconnaître le bug.

Je me suis senti obligé de partager cela avec vous, et j'espère que Metaquotes fera au moins quelques vérifications.


Comme je l'ai dit... cela a déjà été fait auparavant (j'ai cherché le message et mes réponses mais je ne les ai pas trouvés) et l'OP a également supposé un problème MT4....

Si vous ne postez pas de preuve pour enquêter et vous ne postez pas de méthode pour reproduire le problème, comment voulez-vous que quelqu'un enquête et aide ? par tous les moyens soulever un problème de Service Desk, mais vous ne semblez pas vouloir offrir des informations utiles pour aider à identifier / diagnostiquer le problème. Quels sont les problèmes de confidentialité qui vous préoccupent ? Vous pouvez modifier/supprimer (rechercher et remplacer) vos numéros de compte... Vous n'avez pas besoin de publier l'ensemble du journal, juste ce qu'il faut entre le lancement de l'EA et l'apparition du double de l'ordre...

Regardez dans l'historique des ordres, l'ordre y est-il ? écrivez un petit script pour interroger l'ordre dans le pool d'historique pour voir s'il a un numéro magique, est-ce que votre EA utilise un numéro magique ? il y a des choses que vous pouvez faire pour enquêter. ... vous voudrez savoir si ce problème est dû à vous ou aux EA que vous avez exécutés, vous et tous les autres voudrez savoir si c'est dû à MT4. C'est entre vos mains, vous avez l'information, pas nous...

 

ubzen et RaptorUK : Merci beaucoup pour vos réponses.

ubzen, vous avez raison quand vous dites : "Sans parler des millions de personnes qui utilisent ce logiciel pour effectuer des millions de transactions par jour, vous êtes la seule personne à qui cela arrive." Je ne peux pas répondre à cette objection. J'exécute un certain nombre d'EA sur plusieurs comptes et j'ai vu cela se produire 3 fois avec la construction 500, sur 2 plateformes de courtage différentes. Cependant, comme j'ai vu la preuve elle-même, je n'en doute pas, même si des centaines ou des milliers d'autres personnes n'ont pas encore parlé.

Néanmoins, quand vous dites "Quand quelqu'un prétend que quelque chose est un bug, cela signifie que c'est reproductible", je dois dire que vous avez tort. Les bugs les plus difficiles sont précisément ceux qui ne sont pas reproductibles par l'utilisateur. Ils se produisent rarement et, comme le savent les géants du logiciel, ils peuvent demander beaucoup de temps et d'efforts pour les retrouver. Ils se produisent rarement parce qu'ils nécessitent un ensemble précis de conditions qui ne sont pas toujours sous le contrôle de l'utilisateur. Toute personne utilisant intensivement quelque chose comme Microsoft Office peut en témoigner.

RaptorUK, merci d'avoir proposé de poster les fichiers sans les données personnelles. Je vais les poster directement dans cette fenêtre, en omettant mes données personnelles. (ubzen : Je ne pense pas que la charge de la preuve repose sur moi, car je n'ai pas besoin de prouver quoi que ce soit, mais je veux vous montrer, au cas où cela intéresse quelqu'un).


Journal des experts pour 2013.06.11 :

22:32:05 Expert Advisor 1 EURCHF,M15 : Prix d'ouverture demandé pour l'ordre d'achat : 1.2307

22:32:07 Expert Advisor 1 EURCHF,M15 : open #20212520 buy 0.01 EURCHF at 1.2307 sl : 1.2232 tp : 1.2320 ok

Journal de bord du 2013.06.11 :

05:14:12 '000000' : connexion

05:14:30 '000000' : connexion

05:14:31 '000000' : autorisation précédente effectuée avec succès depuis 201.141.75.152

08:10:12 '000000' : connexion

08:10:17 '000000' : connexion

08:10:19 '000000' : autorisation précédente réussie depuis 201.141.75.152

20:33:35 '000000' : connexion

20:33:43 '000000' : échec de la connexion au centre de données [2].

20:33:44 '000000' : autorisation précédente effectuée avec succès depuis 201.141.75.152

22:32:06 '000000' : ordre instantané d'achat de 0,01 EURCHF à 1,2307 sl : 1,2232 tp : 1,2320

22:32:07 '000000' : la demande a été acceptée par le serveur

22:32:07 '000000' : requête en cours de traitement

22:32:07 '000000' : l'ordre a été ouvert : #20212520 acheter 0.01 EURCHF à 1.2307 sl : 1.2232 tp : 1.2320

22:32:08 '000000' : ordre instantané buy 0.01 EURCHF at 1.2307 sl : 1.2232 tp : 1.2320

22:32:08 '000000' : la demande a été acceptée par le serveur

22:32:08 '000000' : requête en cours de traitement

22:32:10 '000000' : l'ordre a été ouvert : #20212521 acheter 0.01 EURCHF à 1.2307 sl : 1.2232 tp : 1.2320

23:07:26 '000000' : le trading en un clic a été activé

23:07:31 '000000' : clôture de l'ordre #20212521 buy 0.01 EURCHF at 1.2307 sl : 1.2232 tp : 1.2320 au prix de 1.2291

23:07:32 '000000' : la demande a été acceptée par le serveur

23:07:32 '000000' : demande en cours de traitement

23:07:32 '000000' : ordre #20212521 buy 0.01 EURCHF at 1.2307 sl : 1.2232 tp : 1.2320 closed at price 1.2291


Comme vous pouvez le constater, l'ordre 20212520 a été initié par l'expert. Cependant, l'ordre 20212521 ne l'a PAS été. Cet ordre bidon a été fermé manuellement (les 5 dernières lignes du fichier journal correspondent à des opérations manuelles).

Je suis redondant ici, mais je vais le répéter : Puisque la fausse commande 20212521 n'est pas signalée dans le journal des experts, elle n'a pas été initiée par un expert, donc le code de l'expert n'est pas pertinent dans ce cas.

 

Ricardo1:

...

Comme vous pouvez le constater, l'ordre 20212520 a été initié par l'expert. Par contre, l'ordre 20212521 ne l'a PAS été. Cet ordre bidon a été clôturé manuellement (les 5 dernières lignes du fichier journal correspondent à des opérations manuelles).

Je suis redondant ici, mais je vais le répéter : Puisque l'ordre bidon 20212521 n'est pas signalé dans le journal des experts, il n'a été initié par aucun expert, donc le code de l'expert n'est pas pertinent à cet effet.

Votre EA utilise-t-il un nombre magique ?

Si oui, alors pouvez-vous vérifier si votre ordre "bidon" a un numéro magique. Vous pouvez le voir dans l'onglet historique : faites défiler les fenêtres pour voir l'ordre, puis placez votre souris sur cet ordre (sans cliquer), une info-bulle doit s'afficher avec quelque chose comme :

#20212521, id 12345

S'il n'y a pas de numéro magique alors le champ id est manquant.

 
Ricardo1:


22:32:06 '000000' : ordre instantané d'achat de 0.01 EURCHF à 1.2307 sl : 1.2232 tp : 1.2320

22:32:07 '000000' : la requête a été acceptée par le serveur
22:32:07 '000000' : demande en cours de traitement
22:32:07 '000000' : l'ordre a été ouvert : #20212520 acheter 0.01 EURCHF à 1.2307 sl : 1.2232 tp : 1.2320

22:32:08 '000000' : ordre instantané buy 0.01 EURCHF at 1.2307 sl : 1.2232 tp : 1.2320
22:32:08 '000000' : la demande a été acceptée par le serveur
22:32:08 '000000' : requête en cours de traitement
22:32:10 '000000' : l'ordre a été ouvert : #20212521 acheter 0.01 EURCHF à 1.2307 sl : 1.2232 tp : 1.2320


Comme vous pouvez le constater, l'ordre 20212520 a été initié par l'expert. En revanche, l'ordre 20212521 ne l'a PAS été.

Ce que je vois, c'est que l'EA a ouvert un ordre et une seconde plus tard, il en a ouvert un autre. Pas que deux paquets soient sortis ensemble.

Mettez une déclaration d'impression avant et après l'OrderSend et prouvez que vous l'appelez deux fois.

 
angevoyageur:

Votre EA utilise-t-il un numéro magique ?

Si oui, alors pouvez-vous vérifier si votre ordre "bidon" a un numéro magique. Vous pouvez le voir dans l'onglet historique : faites défiler les fenêtres pour voir l'ordre, puis placez votre souris sur cet ordre (sans cliquer), une info-bulle doit s'afficher avec quelque chose comme :

#20212521, id 12345

S'il n'y a pas de numéro magique alors le champ id est manquant.



Tout dans le faux ordre est le même que dans l'ordre original, y compris le commentaire et le numéro magique. Cependant, l'EA ne l'a pas envoyé ; comme je l'ai dit, le journal des experts le prouve.
Raison: