Voir ce sujet, probablement un peu confus mais vous pouvez trouver l'idée.
Le système de trading MT5 est très différent de MT4, vous devez donc changer votre façon de penser.
- www.mql5.com
Je suis en train d'écrire un EA, en modifiant mon EA écrit pour MT4. J'ouvre un ordre en utilisant OrderSend.
Simplement si j'ai besoin de comprendre (peut-être à partir de l'historique), si l'ordre envoyé (d'ailleurs.... je dois vérifier Ordre, Deals ou Position ?), a été fermé parce qu'il a atteint le StopLoss.
J'ai vérifié sur les forums, mais je n'ai pas trouvé ce dont j'ai besoin.....
ORDER_PRICE_CURRENT | ne donne que le prix actuel du symbole de l'ordre |
qui ne peut pas être comparé àORDER_SL. Je suppose que ORDER_PRICE_CURRENT est uniquement le prix actuel du symbole et non le prix de clôture de l'ordre.
Merci à tous pour votre soutien.
Est-ce bien cela ?
//-------------------------------- ES CIERRE POR SL ---------------------------------------------- bool esCierreSL(int ind, int modoInd= SELECT_BY_TICKET, int modoHist= MODE_TRADES) { bool resp= OrderSelect(ind, modoInd, modoHist)? (StringFind(OrderComment(), "[sl]", 0)>-1): false; return(resp); }
Est-ce que c'est ça ?
La question porte sur mql5, votre code est mql4.
Lecommentaire de commande n'est pas une façon fiable de coder.
La question porte sur mql5, votre code est mql4.
Lecommentaire de commande n'est pas un moyen fiable de coder.
Désolé pour le nécro, mais c'est assez intéressant à mon avis.
Je suis en train de faire la transition de mql4 à mql5, et je trouve les changements de systèmes de trading et d'historique assez difficiles.
Pour savoir si une transaction sur le livre d'historique a été fermée pour un stop-loss, un take-profit, ou autre :
- dans MT4 vous pouviez comparer OrderStopLoss(), OrderTakeProfit() et OrderClosePrice(), ou simplement vérifier OrderComment().
- Dans MT5, le seul moyen possible me semble être de vérifier le commentaire d'une transaction : HistoryDealGetString(tk, DEAL_COMMENT)
C'est intéressant, mais si j'ai bien compris, il s'agit d'identifier les changements de transaction sur la base du traitement des événements, à la volée.
Il faut donc qu'il y ait un programme qui écoute (comme un conseiller expert qui tourne sur un graphique), sinon rien n'est détecté.
A mon avis, la détection de la raison de la fermeture d'une position doit être faite sur le livre de bord de l'historique car c'est (ou devrait être) le moyen le plus sûr de savoir ce qui s'est passé, puisque c'est écrit quelque part et non attrapé dans l'air.
Mon analyse est-elle fausse ? Qu'en pensez-vous ?
- www.mql5.com
Marco: MT4 et MT5, lorsqu'un ordre se ferme pour un stop-loss ou un take-profit, écrivent [prix SL] ou [prix TP] dans le commentaire (de manière différente... mais quand même). | Non, ils ne le font pas. C'est votre courtier. Ce n'est pas une bonne idée, les courtiers peuvent modifier les commentaires, y compris les remplacer complètement. |
Non, ils ne le font pas. C'est votre courtier. |
Ok, les deux courtiers MT4 et MT5 mettent cette chaîne sur le commentaire... du moins les quelques uns que j'ai testés.
Et je suis d'accord, ce n'est pas une bonne idée, puisque le commentaire peut être sujet à des changements de la part du courtier.
Mais je ne vois pas comment cela pourrait être fait différemment, puisque je ne peux pas trouver d'autres traces dans le livre de l'historique des transactions.
Existe-t-il un meilleur moyen d'atteindre cet objectif ?
J'ai contacté le service d'assistance il y a 2 ans (concernant MT4).
et ils m'ont répondu
donc c'est fait par le système, pas par le courtier. Ce n'est toujours pas utile si le courtier peut ensuite le changer.
Attention, je n'ai jamais remarqué que le courtier avait modifié le commentaire de l'ordre.
En général, dans mon code, il est plus important de savoir si une transaction s'est terminée avec un profit ou une perte. Lorsqu'on utilise un stop suiveur, une transaction peut toucher le SL, tout en restant bénéficiaire.
J'ai contacté le service d'assistance il y a 2 ans (concernant MT4).
et ils m'ont répondu
donc c'est fait par le système, pas par le courtier. Ce n'est toujours pas utile si le courtier peut ensuite le modifier.
Attention, je n'ai pas remarqué d'occasion où le courtier a modifié le commentaire de l'ordre.
En général, dans mon code, il est plus important de savoir si une transaction s'est terminée avec un profit ou une perte. Lorsqu'on utilise un stop suiveur, une transaction peut toucher le SL, tout en restant bénéficiaire.
Merci Keith, c'est ce que j'espérais, puisque je n'ai pas trouvé de meilleure solution.
Je crois que les deux posters convertissent MQL4 en MQL5.
Quoi qu'il en soit, il suffit de comparer le prix de clôture avec le prix stoploss.
Note : Dans un compte réel (surtout ECN), le prix de déclenchement a probablement un écart entre le prix du stoploss préétabli, donc utilisez "<=" ou ">=".
Quoi qu'il en soit, il suffit de comparer le prix de clôture avec le prix stoploss.
Note : Dans un compte réel (surtout ECN), le prix de déclenchement a probablement un écart entre le prix stoploss préétabli, donc utilisez "<=" ou ">=".
Vous ne pouvez pas comparer le prix de clôture au prix stop-loss. Le glissement signifie qu'il pourrait clôturer plus haut ou plus bas que le stop loss.
Donc "<=" ou ">=" n'est pas utile.
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Je suis en train d'écrire un EA, en modifiant mon EA écrit pour MT4. J'ouvre un ordre en utilisant OrderSend.
Simplement si j'ai besoin de comprendre (parhasps à partir de l'historique), si l'ordre envoyé (d'ailleurs.... je dois vérifier Ordre, Deals ou Position ?), a été fermé parce qu'il a atteint le StopLoss.
J'ai vérifié sur les forums, mais je n'ai pas trouvé ce dont j'ai besoin.....
ORDER_PRICE_CURRENT
ne donne que le prix actuel du symbole de l'ordre
qui ne peut pas être comparé àORDER_SL. Je suppose que ORDER_PRICE_CURRENT est uniquement le prix actuel du symbole et non le prix de clôture de l'ordre.
Merci à tous pour votre soutien.
EDIT :
Ce sujet est maintenant en grande partie obsolète en raison des nouvelles possibilités offertes par MT5 depuis la build 1640.
Voir les derniers messages du sujet pour quelques exemples.