![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Dernière question, la normalisation des doubles de prix est-elle vraiment cruciale ? Je ne comprends pas son utilité... ?
Oui, cela peut être un problème avec les doubles, OrderTakeProfit() OrderStopLoss() OrderLots() surtout si vous faites des calculs sur eux. Cela a affecté l'un de mes EA lorsque je faisais quelque chose de similaire à votre fermeture partielle d'ordres. Jetez un coup d'œil à ce fil de discussion https://www.mql5.com/en/forum/141034
J'ai essayé de me creuser la tête mais je n'arrive pas à trouver la logique pour le faire via l'OrderTicket() sur le "OP_BUY" dès qu'il est déclenché, et vers le numéro d'OrderTicket() sur la position restante après que la moitié soit fermée ?
Une fois que l'OP_BUY a été divisé par deux à OrderClose(), la position restante a un numéro de ticket différent... Quelqu'un peut-il m'éclairer sur la façon de comparer les deux afin de pouvoir dire à l'OrderClose() de s'arrêter après qu'il l'ait fait une fois ?
J'ai tout préparé, mais je ne comprends pas la logique de la comparaison de ce que j'ai écrit ci-dessus.
J'ai l'intention de créer un fil de discussion pour aider les autres après avoir terminé ceci - ce ne serait que justice !
Je vous ai déjà dit comment faire, obtenez le OrderOpenTime() du ticket que vous êtes sur le point de fermer partiellement. Une fois que vous l'avez fermé partiellement, refaites OrderSelect(), le ticket qui a le même OrderOpenTime() est la partie restante de l'ordre fermé partiellement.
Ah oui - Désolé, j'ai dû rater ça la première fois !
Je viens de m'asseoir et d'y réfléchir, et j'ai du mal à en comprendre la logique ? Pourriez-vous me donner un indice ?
Pour le moment, j'ai ceci dans la section "int Start()" :
Il est évident que je dois supprimer la partie "OrderOpenPrice() > OrderStopLoss()), mais par quoi dois-je la remplacer pour que le "CloseHalfOrder() ;" ne soit PAS appelé continuellement ? Je n'arrive pas à mettre en place la logique (un peu lent aujourd'hui !) Est-ce que je compare avec la transaction fermée dans l'historique ?
Ah oui - Désolé, j'ai dû manquer ça la première fois !
Je viens de m'asseoir et de réfléchir à ce sujet, et j'ai du mal à en comprendre la logique ? Pourriez-vous me donner une indication ?
Pour le moment, j'ai ceci dans la section "int Start()" :
Il est évident que je dois supprimer la partie "OrderOpenPrice() > OrderStopLoss()), mais par quoi dois-je la remplacer pour que le "CloseHalfOrder() ;" ne soit PAS appelé continuellement ? Je n'arrive pas à mettre en place la logique (un peu lent aujourd'hui !) Est-ce que je compare avec la transaction fermée dans l'historique ?...
Au point que j'ai marqué dans votre code, quel ordre avez-vous sélectionné ?
Est-ce le bon ordre ? Si c'est le bon ordre, est-ce par hasard ou à dessein ?
Je ne vois pas comment utiliser OrderOpenTime() à mon avantage et empêcher que CloseHalfOrder soit appelé à chaque fois...
C'est ce que je pensais aussi - Il est indiqué que je dois utiliser OrderSelect() avant d'utiliser OrderType, mais cela fonctionne ? Je n'ai jamais eu qu'un seul ordre ouvert à un moment donné...