[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 1033
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
Je ne jette pas mon code, j'en prends un autre téléchargé ! Qui ne fonctionne pas non plus !
En voici un qui fonctionne, je l'ai vérifié.
Dans certains dtCs, nous ouvrons d'abord une transaction et ne la modifions qu'ensuite (réglage des stops et des reprises).
En voici un qui fonctionne, je l'ai vérifié.
Dans certains dc's, vous ouvrez d'abord une transaction, et seulement ensuite vous la modifiez (fixer des stop trails).
J'ai oublié d'ajouter la bibliothèque
La bibliothèque a oublié d'ajouter
et ObjectsTotal() sont des objets de tous les graphiques ou du graphique actuel ?
Actuel.
ObjectsTotal Renvoie le nombre total d'objets du type spécifié sur le graphique.
Consultez le site https://book.mql4.com/ru/functions/objects https://docs.mql4.com/ru/objects/ObjectsTotal
Le langage mcule4 est lié à une seule fenêtre, la fenêtre actuelle.
Cette boucle sert à retenir la modification de l'ordre (si la modification de l'ordre sur le marché réel a échoué du premier coup (cela arrive) et que l'erreur éventuelle n'est pas critique : par exemple, 136 - pas de prix - attendez un nouveau tick), c'est-à-dire que cette boucle garde le contrôle jusqu'à ce que l'ordre précédemment sélectionné soit modifié ou qu'une erreur critique soit reçue - tout cela peut se produire en quelques ticks ou même en quelques secondes (dizaines de secondes), en d'autres termes, rien d'autre ne fonctionne dans l'EA.i.e., si un critère de transaction pour ouvrir un ordre s'est déclenché à ce moment, l'ordre ne s'ouvrira pas car le contrôle est tenu par la fonction de modification de tous les ordres sélectionnés jusqu'à ce qu'elle se termine, après quoi, si la condition d'ouverture de l'ordre suivant dans l'Expert Advisor est toujours active, l'ordre suivant sera tenté d'être ouvert au prochain tick - ceci est juste un exemple... " Si l'opération de négociation est réussie, alors l'opérateur break dans le bloc 6-7 termine l'exécution de la boucle while qui entraîne la fin de l'itération actuelle de la boucle for (et l'itération suivante commence à traiter l'ordre suivant) - pendant tout ce temps, la fonction garde le contrôle jusqu'à l'exécution du dernier ordre à modifier. Si l'opération de négociation n'aboutit pas, les erreurs sont traitées. Si l'erreur n'est pas critique, la tentative de répétition de l'opération de négociation est répétée. Si l'erreur est estimée critique, le contrôle est transféré en dehors de la boucle de modification pour le traitement de l'ordre suivant (dans la boucle for), après quoi d'autres fonctions d'Expert Advisor sont exécutées.
Je pense que je l'ai expliqué de manière un peu bâclée, mais c'est compréhensible. :-)))
Merci, cela clarifie ce qui se passe ici.
Dans les scripts et les Expert Advisors, il est possible de garder la boucle inachevée pendant longtemps sans craindre de ralentir l'interface.
Par exemple, dans un indicateur while (true), il y aura un blocage, car Sleep ne fonctionne pas.
Regardez le script ci-dessous pour y voir plus clair
Merci !