Référencement des transactions fermées longues et courtes ensemble
6 réponses
glennc
il y a 6 ans #203095
Bonjour, merci pour cet excellent programme.
Je souhaite obtenir le profit total des x dernières transactions, longues et courtes confondues.
Si je sépare les positions longues et courtes avec des nombres magiques, cela ne me donnera-t-il pas des totaux pour les x dernières positions longues et les x dernières positions courtes, ce qui n'est pas la même chose que les x dernières positions combinées ?
Si j'utilise zéro comme nombre magique, cela n'inclura-t-il pas les transactions d'autres EAs de la même paire de devises fonctionnant sur la plateforme ?
Comment puis-je résoudre ce problème ? J'ai d'autres problèmes liés à ce type de question, ceci est un exemple du problème.
tomas262
il y a 6 ans #203217
Bonjour,
Dans EA Wizard, vous pouvez utiliser Sum Of Closed PL pour vérifier les positions longues uniquement / courtes uniquement en ayant la même magie pour toutes les positions longues ou toutes les positions courtes. Si vous utilisez magic = 0, les ordres seront comptabilisés pour toutes les paires négociées et pas seulement pour celle sur laquelle vous avez placé votre EA.
glennc
il y a 6 ans #203230
Bonjour Thomas,
Merci de votre réponse.
Donc, pour confirmer : Je ne peux tout simplement pas calculer les profits/pertes sur un certain nombre de transactions, quel que soit le sens de la transaction... ?
Il s'agit là d'une limitation regrettable. Comme je l'ai mentionné plus haut, cette question n'est qu'un exemple d'un problème plus vaste. Si magic = 0 ne peut pas se limiter à l'EA en question, alors nous avons certainement besoin d'une fonction qui permette à
magicLong AND magicShort ou magicLong OR magicShort ?
tomas262
il y a 6 ans #203403
Pour obtenir les profits totaux de # des transactions historiques, vous pouvez utiliser cette fonction (placée à la fin de EAWizard \ code \ CustomFunction.mq4)
int sqGetTotalPL(int numberOfLastOrders) {
double pl = 0 ;
int count = 0 ;
int profits = 0 ;for(int i=OrdersHistoryTotal() ; i>=0 ; i-) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true && OrderSymbol() == Symbol()) {compter++ ;
if(OrderType() == OP_BUY) {
pl = (OrderClosePrice() - OrderOpenPrice()) ;
} else {
pl = (OrderOpenPrice() - OrderClosePrice()) ;
}if(pl > 0) {
profits++ ;
}if(count >= numberOfLastOrders) break ;
}
}retour (bénéfices) ;
}
Vous pouvez ensuite y faire référence à l'aide de la fonctionnalité Custom Function dans EA Wizard en utilisant l'appel "sqGetTotalPL(3)" pour obtenir le P/L des 3 dernières transactions sur un symbole sélectionné.
glennc
il y a 6 ans #203693
Bonjour Tomas,
Merci beaucoup pour cela - j'apprécie le temps que cela doit prendre. En lisant le code (en gardant à l'esprit que je ne sais pas lire le code), est-ce que cela me donnera un résultat uniquement pour l'EA dans lequel il est inclus, et non pas tous les résultats pour la paire (OrderSymbol) dans l'historique MT4 ? J'essaie d'isoler le profit/la perte sur un certain nombre de trades au sein d'un EA spécifique, même si d'autres EAs fonctionnent sur la même paire sur la même plateforme.
Merci encore pour votre aide.
tomas262
il y a 6 ans #203816
Bonjour,
cette déclaration dans le code OrderSymbol() == Symbol() garantit qu'il ne vous donnera des résultats que pour le symbole sur lequel vous exécutez votre EA, par exemple EURUSD
glennc
il y a 6 ans #217747
Merci Tomas !
Affichage de 6 réponses de 1 à 6 (sur un total de 6)