Problème avec MT4 ouvrant une transaction, puis la refermant immédiatement - page 6

 
peterc005:


MT4\Experts\Logs folder :

17:28:48 FapTurbo50 EURUSDFXF,M5 : open #2662451 buy 0.20 EURUSDFXF at 1.2909 ok

17:28:49 FapTurbo50 EURUSDFXF,M5 : modifier #2662451 acheter 0.20 EURUSDFXF à 1.2909 sl : 1.2407 tp : 1.2929 ok


Quelles sont les lignes suivantes dans ce journal ? Toutes les lignes s'il vous plaît et non "filtrées" par ce que vous jugez important ou non, juste les entrées brutes du journal. En particulier toutes celles qui ont le même ou presque le même horodatage sur tous les autres terminaux aussi.


Peut-être y a-t-il aussi un étrange automatisme FIFO ? J'ai déjà vu des courtiers déplacer automatiquement des stoploss existants sans préavis, peut-être même que certains ferment des trades existants lorsque d'autres trades sont ouverts ? Dans ce cas, vous devriez remercier les autorités de régulation pour avoir réussi à "protéger" votre argent.


Et comment sont vos niveaux de marge libre lorsque cela se produit ? N'est-ce pas dangereusement bas ?

 
Ce n'est pas encore prouvé de façon concluante, mais je soupçonne que le problème vient de l'EA de probabilité.

Voici les raisons :

1) J'ai désactivé et activé Probability EA à plusieurs reprises sur différents comptes, les moments où Probability EA fonctionnait semblent correspondre aux moments où j'ai fait fermer toutes ces transactions de manière incorrecte.

2) J'ai remarqué que FAP Turbo écrit normalement les enregistrements d'ouverture et de fermeture dans le journal des experts (merci pour la suggestion de 7bit).

3) J'ai remarqué que la cinquantaine d'opérations FAP Turbo qui se sont conclues après quelques secondes avaient un enregistrement d'ouverture, mais pas d'enregistrement de clôture dans le journal des experts.

4) J'observe que Probability EA ne semble pas écrire dans le journal Expert.

5) Cela implique que FAP Turbo a ouvert les transactions sans problème, en écrivant un enregistrement dans le journal Expert. Probability EA a ensuite fermé l'opération, mais n'a rien écrit dans le journal des experts. Sur la base du signal, FAP Turbo a alors ouvert une autre affaire, répétant la boucle plusieurs fois.

Les preuves s'accumulent, mais il est encore trop tôt pour tirer des conclusions. J'ai contacté le vendeur de l'EA Probability pour obtenir plus d'informations. Je vais également décompiler l'EA pour voir s'il y a des erreurs logiques évidentes.

 

Les flèches rouges (triangles ou flèches pointant vers la gauche) apparaissent-elles dans le graphique Probability-EA aux moments où les transactions FAP sont fermées ?

Lorsque vous passez votre souris sur ces flèches dans le graphique ProbabilityEA pour faire apparaître la petite fenêtre d'indication jaune, les numéros de tickets dans ces indications correspondent-ils aux transactions FAP fermées à tort ? (par exemple dans le graphique de la capture d'écran que vous avez postée dans le forum FF)

 
peterc005: Je vais également décompiler l'EA pour voir s'il y a des erreurs logiques évidentes.

Insérez un Print() avant chaque OrderClose() et OrderCloseBy(), compilez le code modifié et exécutez-le à la place de l'original.


Recherchez la présence (ou l'absence) d'un appel à OrderMagicNumber() près d'un OrderClose() ou OrderCloseBy() dans le code.

Vérifiez également qu'il n'y a rien entre la vérification et la clôture qui pourrait modifier l'ordre actuellement sélectionné (comme par exemple une autre boucle sur tous les ordres pour trouver un ordre compensatoire ou autrement lié, ce qui changerait la sélection actuelle en quelque chose de complètement imprévisible et un OrderClose(OrderTicket(),...) suivant ferait alors inévitablement des ravages sur le compte). Chaque ordre doit être vérifié par rapport au nombre magique avant de pouvoir être fermé. Si cette vérification n'est pas effectuée ou si elle est mal faite, ce type d'erreur se produira car chaque EA a toujours accès à toutes les transactions sur le compte et est responsable de les filtrer soigneusement.

Il n' existe pas de mécanisme de filtrage implicite dans MT4 qui protégerait automatiquement un EA d'autres transactions sur d'autres graphiques, chaque EA doit implémenter cela par lui-même (et peut échouer lamentablement).

 
7bit:

Insérez un Print() avant chaque OrderClose() et OrderCloseBy(), compilez le code modifié et exécutez-le à la place de l'original.


Recherchez la présence (ou l'absence ) d'un appel à OrderMagicNumber() près d'un OrderClose() ou OrderCloseBy() dans le code.

Vérifiez également qu'il n'y a rien entre la vérification et la fermeture qui pourrait changer l'ordre actuellement sélectionné (comme par exemple une autre boucle sur tous les ordres pour trouver un ordre compensatoire ou autrement lié, cela changerait la sélection actuelle en quelque chose de complètement imprévisible et un OrderClose(OrderTicket(),...) suivant ferait alors inévitablement des ravages dans le compte). Chaque ordre doit être vérifié par rapport au nombre magique avant de pouvoir être fermé. Si cette vérification n'est pas effectuée ou si elle est mal faite, ce type d'erreur se produira car chaque EA a toujours accès à toutes les transactions sur le compte et est responsable de les filtrer soigneusement.

Il n' existe pas de mécanisme de filtrage implicite dans MT4 qui protégerait automatiquement un EA d'autres transactions sur d'autres graphiques, chaque EA doit mettre cela en œuvre de manière totalement autonome (et peut échouer lamentablement).

Salut 7bit,

Cela semble être une bonne idée, je vais essayer.

Salutations

Peter

 

En ce qui concerne quelques questions précédentes :

1) Je ne pense pas que l'utilisation d'un courtier ECN (spécifiquement GoMarkets) fasse une différence avec ce problème. J'ai eu le même problème avec forex.com. En général, j'aime bien GoMarkets et je pense qu'ils sont bons.

2) Je ne pense pas que ce soit lié à la marge ou à l'équité. La raison en est que "s/o" est ajouté aux commentaires lorsqu'une transaction est fermée pour cause d'équité insuffisante.

Peter

 

Il s'avère que le problème se situe dans la version 7.1 de Probability EA. Voici la réponse du fournisseur :

peterc005,

Ce problème a été corrigé avec la v7.1.1 (par opposition à la v7.1). Au départ, j'ai diminué le nombre magique de 1 à chaque fois qu'un cycle était fermé (ce qui notifiait à l'EA de fermer le cycle). Cela fonctionne bien si l'EA est la seule à fonctionner, mais lorsque les gens ont voulu utiliser cette EA en plus d'autres EA, j'ai modifié le code de sorte que le Magic Number reste constant, et que l'EA utilise d'autres moyens de fermer le cycle.

Je vous enverrai une copie de la v7.1.1 et vous me ferez savoir si vous avez toujours le problème.

Michael

J'apprécie l'honnêteté et la franchise du vendeur, mais ce problème avec l'EA m'a coûté environ 5 000 $ et a détruit 3 comptes en quelques mois.

 

"J'ai initialement diminué le nombre magique de 1 à chaque fois qu'un cycle était fermé"

Il semble que le développeur de cet EA ne sache pas à quoi servent les nombres magiques. Cela signifie qu'il n'en est qu'aux premiers stades de l'expérimentation mais qu'il vend déjà son code de débutant défectueux et bogué pour de l'argent. Cela confirme totalement tout ce que j'ai dit sur la qualité du code de ces EA commerciaux. Je ne ferais pas confiance à ces choses pour de l'argent.


La leçon à tirer ici doit être la suivante : Ne faites pas confiance aux EA à source fermée. L'indisponibilité de la source garantit la mauvaise qualité du code.

 

Cher Peterc005

J'ai eu un problème similaire sur mon VPS, il s'avère qu'une autre instance de Metatrader dans le même répertoire s'est exécutée en arrière-plan et a fermé les transactions ouvertes par le premier Metatrader.

Essayez de fermer tous les MetaTraders, puis ouvrez TaskManager et vérifiez s'il y a des instances de Terminal.exe qui tournent, si c'est le cas redémarrez votre machine et le problème sera résolu.

Vous pouvez rechercher Ghost detector sur google pour en savoir plus sur ce problème.