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
Bonjour
Cette approche ne fonctionne que si la taille de la position actuelle est nulle et que la nouvelle transaction est exécutée avec succès avec la taille de position souhaitée.
Voir le code :
Mais que se passe-t-il si votre EA retourne la position : d'une position LONG à une position SHORT ou vice versa et que cette action est exécutée dans 2 trades différents ?
Après le premier trade, le booléen "position_opened" est mis à "TRUE" et l'EA ne peut pas ouvrir le 2e trade car la condition vérifie"if(conditions_to_open && !position_opened)", donc le deuxième trade sera bloqué.
Et que se passe-t-il si la taille de la position n'est que partiellement ouverte ? Vous avez besoin d'une deuxième transaction pour que la taille de votre position soit correcte.
En fin de compte, pour faire "une longue histoire courte", vous avez toujours besoin de la fonction PositionSelect(Symbol()) pour calculer la taille de la position ACTUELLE et c'est là que le problème a commencé (et ce fil du forum).
Au moment critique, lorsque l'EA appelle la fonction PositionSelect(Symbol()), le terminal n'a pas encore mis à jour la taille de la position ACTUELLE et l'EA travaille avec la mauvaise taille de position et envoie un nouvel ordre double au serveur de négociation.
Je pense que l'approche de(figurelli) est meilleure car vous êtes obligé d'attendre que l'EA ait mis à jour la fonction PositionSelect(Symbol()) à la bonne taille de position.
Bonjour
Cette approche ne fonctionne que si la taille de la position actuelle est nulle et que la nouvelle transaction est exécutée avec succès avec la taille de position souhaitée.
Voir le code :
Mais que se passe-t-il si votre EA retourne la position : d'une position LONG à une position SHORT ou vice versa et que cette action est exécutée dans 2 trades différents ?
Après le premier trade, le booléen "position_opened" est mis à "TRUE" et l'EA ne peut pas ouvrir le 2e trade car la condition vérifie"if(conditions_to_open && !position_opened)", donc le deuxième trade sera bloqué.
Et que se passe-t-il si la taille de la position n'est que partiellement ouverte ? Vous avez besoin d'une deuxième transaction pour que la taille de votre position soit correcte.
En fin de compte, pour faire "une longue histoire courte", vous avez toujours besoin de la fonction PositionSelect(Symbol()) pour calculer la taille de la position ACTUELLE et c'est là que le problème a commencé (et ce fil du forum).
Au moment critique, lorsque l'EA appelle la fonction PositionSelect(Symbol()), le terminal n'a pas encore mis à jour la taille de la position ACTUELLE et l'EA travaille avec la mauvaise taille de position et envoie un nouvel ordre double au serveur de négociation.
Je pense que l'approche de(figurelli) est meilleure car vous êtes obligé d'attendre que l'EA ait mis à jour la fonction PositionSelect(Symbol()).
Vous avez raison, les deux approches ont des limites.
L'origine de ce problème est maintenant clairement identifiée. Chacun doit adapter son code en fonction de sa stratégie. Je ne pense pas qu'il existe une méthode générale qui puisse s'appliquer à tous les cas.
Avons-nous besoin d'une bibliothèque OrderSendReliable() pour le grand et puissant mql5 ?
Vous avez raison, les deux approches ont des limites.
L'origine de ce problème est maintenant clairement identifiée. Chacun doit adapter son code en fonction de sa stratégie. Je ne pense pas qu'il existe une méthode générale qui puisse s'appliquer à tous les cas.
Ou bien nous devons attendre une "déclaration officielle" des gars de Metaquotes eux-mêmes.
Y a-t-il déjà une réponse du service d'assistance ?
Si je suis d'accord avec vous, considérez-vous que cela n'aide pas ? .
J'ai simplement enseigné que la solution consistant à dormir jusqu'à la fin de la négociation me faisait penser à OrderSendReliable(). J'ai enseigné que ces solutions auraient été traitées de manière plus élégante.
Cela me rappelle également le traitement des anciens documents ... où il y a {et toutes les transactions doivent être arrêtées}.
Quoi qu'il en soit, mes excuses, je ne voulais pas m'en prendre à mql5.
Ou nous devons attendre une "déclaration officielle" des gars de Metaquotes eux-mêmes.
Y a-t-il déjà une réponse du service desk ?
Non, je pensais justement à cela... Il serait probablement utile que toutes les personnes concernées écrivent un ticket au ServiceDesk à propos de ce problème. Cependant, je suis très sceptique quant à la volonté de MQ de changer cette conception. Mais nous pouvons essayer.
Les gens peuvent écrire au ServiceDesk et rapporter le numéro de ticket ici. Le mien est
Si j'étais d'accord avec vous, considéreriez-vous que cela n'aide pas ? .
J'ai simplement enseigné que la solution consistant à dormir jusqu'à la fin de la négociation me faisait penser à OrderSendReliable(). J'ai enseigné que ces solutions auraient été traitées de manière plus élégante.
Cela me rappelle également le traitement des anciens documents ... où il va {et toutes les transactions doivent être arrêtées}.
Quoi qu'il en soit, mes excuses, je ne voulais pas m'en prendre à mql5.
Oui, mais il est difficile de dire si c'est à cause d'un mauvais codage. Le double échange était un problème même avant le fil de discussion sur les échanges multiples. La façon dont il est traditionnellement géré est la façon dont snelle_moda le gère.
Oui, mais il est difficile de dire si c'est à cause d'un mauvais codage. Le double échange était un problème même avant le fil de discussion sur les échanges multiples. La façon dont il est traditionnellement géré est la façon dont snelle_moda le gère.