Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1078
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
Après-midi.
Dans un Expert Advisor multi-devises, j'ai besoin de fermer un ordre en attente placé contre un profit lorsqu'une position ouverte se déclenche.
Actuellement, lorsque je ferme un ordre en suspens avec profit, tous les ordres en suspens pour toutes les devises sont fermés.
Comment modifier le code pour que seul l'ordre en attente lié à une paire de devises se ferme et que les autres restent ouverts ?
Que dois-je changer dans ce code ?
Mn dans ce code est un numéro magique d'un ordre en attente BUY_STOP ou SELL_STOP.
La logique est que lorsqu'une position ouverte est fermée au niveau du Take Profit, ce nombre magique est laissé et la commande pour le supprimer est censée être exécutée.
Cela fonctionne en testant chaque paire. Cependant, lorsque vous travaillez avec d'autres devises, tous les ordres placés sur toutes les paires sont supprimés.
Aidez-nous, s'il vous plaît, qui est capable de le faire.
Je comprends que personne ne devrait s'embêter avec ce problème, mais peut-être que quelqu'un a un modèle prêt à l'emploi ?
Je vous en serais très reconnaissant.
J'ai dû copier le code dans l'éditeur et faire de la stylisation normale (Ctrl+<) pour comprendre ce que vous avez fait.
Donc : j'ai commenté dans le code ce qui était en désordre ici :
Par conséquent, votre code fait ceci, c'est-à-dire qu'il est équivalent à ce code :
Maintenant, demandez-vous : qu'est-ce que vous vouliez en retirer ?
Pour comprendre ce que vous avez raté, j'ai dû copier le code dans l'éditeur et le styliser correctement (Ctrl+<).
Donc : commenté dans le code ce que vous avez raté là :
En conséquence, votre code fait ceci, c'est-à-dire qu'il est égal à ce code :
Maintenant, demandez-vous : qu'est-ce que vous vouliez en retirer ?
OK.
ici :
Lorsqu'une position est ouverte (OP_BUY ou OP_SELL ), nous plaçons simultanément des ordres en attente (OP_SELLSTOP et OP_BUYSTOP), respectivement.
Lors de la fermeture d'une position ouverte avec prise de profit, l'ordre en attente correspondant doit être annulé. Cet algorithme est appliqué à toutes les paires de devises.
Les autres ordres en attente placés sur d'autres devises doivent rester.
Bonne journée à vous tous !
Il y a un indicateur MTF_RSI qui commute.
Pouvez-vous me dire s'il est possible de configurer le changement automatique de TimeFrame lors du changement de graphique ?
Quelque chose comme
Bonne journée à vous tous !
Il y a un indicateur MTF_RSI qui commute.
Pouvez-vous me dire s'il est possible de configurer le changement automatique de TimeFrame lors du changement de graphique ?
Quelque chose comme ça
Créez une structure ou un tableau multidimensionnel et laissez-le fonctionner sur la dimension souhaitée, si le critère est rempli, travaillez avec une colonne (chaque colonne est responsable de son propre délai), sinon avec une autre colonne, et c'est tout. Le programme lui-même a accès à toutes les échéances à la fois, donc ce que vous écrivez est possible, mais la mise en œuvre est très étendue et vous ne pouvez pas voir cette quantité de travail sur le forum, parce qu'elle est très étendue.
Créer une structure ou un tableau multidimensionnel
Merci.
Pourquoi ce code ne fonctionne-t-il pas ?
Il fonctionne avec des fonctions simples, mais il y a quelque chose de bizarre.
Merci.
C'est à moi que tu parles ?
Oui à vous. Vous devrez travailler tout au long du jeu avec des délais sur chaque détail dans chaque boucle et dans chaque fonction. C'est pourquoi je recommande d'utiliser des tableaux multidimensionnels.
Oui à vous. Vous devrez travailler tout au long du jeu avec des délais sur chaque détail dans chaque boucle et dans chaque fonction. C'est pourquoi je recommande d'utiliser des tableaux multidimensionnels.
Ce problème est résolu plus facilement :