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
Des nouvelles du bureau de service ?
Pas encore.
Bonjour,
Des nouvelles du service d'assistance ?
Bonjour,
Des nouvelles du service desk ?
Forum sur le trading, les systèmes de trading automatisés et le test de stratégies de trading
Mon EA fait une double entrée
angevoyageur, 2013.12.27 16:49
Pas encore.Vous pouvez être sûr que je posterai la réponse ici si j'en ai une.
Personnellement je ne suis pas encore venu pour reproduire le problème.
Mon EA génère un signal très lentement et aujourd'hui il a fait une transaction.
Je n'ai pas de problème avec la taille du lot après avoir utilisé le nouveau code, mais je ne peux pas confirmer que le nouveau code fonctionne.
Mon EA génère un signal très lentement et aujourd'hui il a fait une transaction.
Je n'ai pas de problème avec la taille du lot après avoir utilisé le nouveau code, mais je ne peux pas confirmer que le nouveau code fonctionne.
Bonjour doshur,
Aucune réponse du ServiceDesk pour le moment. Cependant, votre problème me "perturbe" Pouvez-vous confirmer que vous rencontrez ce problème de double trade sur un compte réel et non sur un compte de démonstration ? (Je n'arrive pas à reproduire ce problème sur mon compte de démonstration).
En vérifiant une fois de plus vos messages, je remarque maintenant ce log :
Forum sur le trading, les systèmes de trading automatisés et le test des stratégies de trading.
Mon EA fait une double entrée
(based on order #40018327) DEAL2 - Entry 3
2013.12.20 08:35:01 Trades '800****' : échange acheter 0.01 EURUSD au marché placé pour exécution dans 331 ms DEAL2 - Entrée 2
2013.12.20 08:35:01 Trades '800****' : deal #27731691 buy 0.01 EURUSD at 1.36353 done (based on order #40018326) DEAL 1 - Entry 3
2013.12.20 08:35:00 Transactions '800****' : échange acheter 0.01 EURUSD au marché DEAL2 - Entrée 1
2013.12.20 08:35:00 Transactions '800****' : échange achat 0.01 EURUSD au marché placé pour exécution en 313 ms DEAL1 - Entrée 2
2013.12.20 08:35:00 Transactions '800****' : achat en bourse 0.01 EURUSD au marché DEAL1 - Entrée 1
Si je comprends bien, cela confirme que le problème est que PositionSelect() est toujours faux, alors qu'une nouvelle position est ouverte. En effet, on peut voir que 1 trade donne lieu à 3 entrées, et que la deuxième transaction est initiée avant que la troisième entrée pour le deal 1 n'arrive (confirmation de la nouvelle transaction/position).
En ce qui concerne la solution de contournement utilisant la fonction Sleep(), je ne suis pas satisfait de cette solution car il n'y a aucun moyen de savoir quel délai utiliser. Bien sûr, plus ce délai est grand, moins il y a de chance d'obtenir un "double trade", mais c'est toujours possible. Je suis donc toujours à la recherche d'une meilleure solution.
En ce qui concerne la solution de contournement utilisant la fonction Sleep(), je ne suis pas satisfait de cette solution car il n'y a aucun moyen de savoir quel délai utiliser. Bien sûr, plus le délai est grand, moins il y a de chances d'obtenir un "double trade", mais c'est toujours possible. Je suis donc toujours à la recherche d'une meilleure solution.
Désolé si je me trompe car je viens juste d'arriver dans ce sujet, mais il semble que ce code pourrait être une meilleure solution de contournement que juste Sleep(), et aiderait à identifier le problème et la valeur réelle du délai nécessaire :
Salut doshur,
Aucune réponse du ServiceDesk pour le moment. Cependant, votre problème me "perturbe". Pouvez-vous confirmer que vous rencontrez ce problème de double trade sur un compte réel et non sur un compte de démonstration ? (Je n'arrive pas à reproduire ce problème sur mon compte de démonstration).
En vérifiant une fois de plus vos messages, je remarque maintenant ce log :
Si je comprends bien, il confirme que le problème est que PositionSelect() est toujours faux, alors qu'une nouvelle position est ouverte. En effet, vous pouvez voir qu'une transaction donne lieu à 3 entrées, et que la deuxième transaction est initiée avant que la troisième entrée de la transaction 1 n'arrive (confirmation de la nouvelle transaction/position).
En ce qui concerne la solution de contournement utilisant la fonction Sleep(), je ne suis pas satisfait de cette solution car il n'y a aucun moyen de savoir quel délai utiliser. Bien sûr, plus le délai est grand, moins il y a de chances d'obtenir une "double transaction", mais c'est toujours possible. Je suis donc toujours à la recherche d'une meilleure solution.
Désolé si je me trompe car je viens d'arriver ici dans ce sujet, mais il semble que ce code pourrait être une meilleure solution de contournement que juste Sleep(), et aiderait à identifier le problème et la valeur réelle du délai nécessaire :
Idée intéressante. Je vais l'utiliser pour identifier le problème, mais je n'aime pas la fonction Sleep() Bien que chacun soit libre de choisir sa solution.
Merci.
Idée intéressante. Je vais l'utiliser pour identifier le problème, mais je n'aime pas la fonction Sleep() Bien que chacun soit libre de choisir sa solution.
Merci.
Vous êtes le bienvenu, cette solution n'est qu'une solution de contournement, je n'aime pas Sleep aussi, puisque vous allez perdre des ticks. Probablement que les sémaphores/flags ou même les machines d'état seraient plus sûrs/efficaces/élégants.