La balise [tp] supprimée chez certains courtiers ? - page 4

 
cloudbreaker:
C'est possible. Vous devriez construire une logique pour faire ce qui suit : - Persister les informations concernant les ordres que l'EA a fermés - Vérifier continuellement le pool d'historique des ordres pour les ordres qui sont "dans le champ d'application" mais que votre EA n'a pas fermés - Vérifier le signe de profit pour déterminer si un courtier a invoqué le SL ou le TP Cela fonctionne pour moi. CB

Cette méthode peut être utilisée dans la plupart des plateformes MT4 Broker sans problème, mais j'ai constaté qu'elle ne fonctionne pas dans la plateforme de démonstration MBTF MT4 Broker. La plateforme MT4 de MBTF n'enregistre aucun commentaire sur les ordres fermés par les clients (manuellement ou EA). Il est impossible de juger si un ordre est fermé par le serveur ou le client dans ce type de plateforme de courtage.

Je pense toujours que MetaQuotes devrait ajouter l'API comme OrderCloseReason() pour résoudre ce problème.

 
gordon:

Hmmm.... Peut-être que quelque chose m'échappe, mais y a-t-il des cas où les éléments suivants ne suffisent pas ?


// select the closed order first and then do this:
   
   double sl_diff = MathAbs(OrderClosePrice() - OrderTakeProfit()),
          tp_diff = MathAbs(OrderClosePrice() - OrderStopLoss());
   
   if ( sl_diff > tp_diff )
      Print("order closed at tp");
   else
      Print("order closed at sl");

   // I assume here that an equality of sl_diff and tp_diff is impossible...?
mais, ici vous avez une solution pour le faire
 
qjol:
mais, ici vous avez une solution pour le faire.
Lisez le fil de discussion en entier. Cette méthode ne prend pas en compte une situation où un ordre a été fermé manuellement ou par un expert (et non par tp/sl), d'où il est limité. La façon de le faire est via ce que CB a suggéré... Pas de raccourcis ici.
 
aihua5:

[...] Je pense toujours que MetaQuotes devrait ajouter l'API comme OrderCloseReason() pour résoudre ce problème.

Maintenant que MT5 est sorti, il est peu probable que cela se produise. Tout au plus obtiendrons-nous quelques corrections de bogues pour MT4... Je doute qu'il y ait de nouvelles fonctionnalités...

 
gordon:
Lisez tout le fil de discussion. Cette méthode ne prend pas en compte une situation où un ordre a été fermé manuellement ou par un expert (et non par tp/sl), d'où il est limité. La façon de faire est via ce que CB a suggéré... Pas de raccourcis ici.


Vous avez raison, je n'ai pas lu tout le fil de discussion, mais, si l'ordre est fermé par l'EA ou manuellement, l'utilisateur a le moyen de le savoir, le seul problème est de savoir si l'ordre est fermé par TP ou ST.

C'est là que vous intervenez, avec votre code.

 
qjol:


Vous avez raison de ne pas avoir lu tout le fil de discussion, mais, si elle est fermée par l'EA ou manuellement l'utilisateur a le moyen de le savoir le seul problème est de savoir si elle est fermée par TP ou ST

C'est là que vous intervenez. avec votre code.

Peut-être que l'utilisateur ne se souvient pas d'avoir fermé manuellement. Peut-être qu'il ne réalise pas que l'EA a fermé l'ordre. Peut-être que ce n'est pas lui qui a développé l'expert et qu'il n'a aucune idée de ces choses... Bien sûr, si nous supposons que seuls les TP/SL sont possibles, la solution est facile. Mais le but de ce fil de discussion est que nous ne savons pas (ce qui signifie que nous ne devons pas le supposer).