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
J'ai un plus gros problème maintenant, mon courtier a tendance à exécuter partiellement les ordres.
Cher client,
Nous vous informons que votre transaction a été partiellement ouverte (2,32 lots sur 15,84) au prix de 587,318.
Si vous avez des questions supplémentaires sur ce sujet, n'hésitez pas à nous contacter.
Sincères salutations,
Courtier.
Voici ce que dit le support :
Veuillez noter que pendant les périodes de forte volatilité ou de faible liquidité, les ordres limités peuvent être partiellement exécutés. Cela signifie que la position sera immédiatement remplie entièrement ou partiellement si le prix est atteint. Dans votre cas, votre ordre a été exécuté partiellement, c'est pourquoi vous avez reçu une lettre de notification.
Je comprends comment fermer tous les ordres malgré qu'ils soient fermés partiellement, je dois juste faire Close all Orders while OrdersTotal() > 0, mais je ne sais pas encore quoi faire quand les ordres sont ouverts partiellement.
edit :
Je viens de réaliser que je dois vérifier les ordres Symbol et magicnumber, c'est un peu plus difficile.
edit : voici la fonction close all orders qui devrait fermer les ordres même avec une fermeture partielle
réécrit
réécrit
Ouah !
C'est un peu difficile pour moi, je l'ai lu 4 ou 5 fois avant de le comprendre. Merci !
et... que se passe-t-il si OrderSelect renvoie false ?
Combien de fois orderselect retourne-t-il false ? Est-ce même possible ?
Ouah !
C'est un peu difficile pour moi, je l'ai lu 4 ou 5 fois avant de le comprendre. Merci !
et... que se passe-t-il si OrderSelect retourne false ?
Combien de fois orderselect retourne-t-il false ? Est-ce même possible ?
i= 0
revient de la boucle
i = -1
if(OrderSelect(-1,SELECT_BY_POS,MODE_TRADES)==false) break; // ==> fin de la vérification des transactions, nous interrompons la boucle
suivant CloseOrder()
Quelles erreurs courantes peuvent être renvoyées par GetLastError()?
si la fermeture échoue, il se peut que la suivante échoue aussi à cause d'une erreur comme tradecontext too busy ou une autre erreur...
Que pouvez-vous faire pour éviter que de telles situations ne se produisent ?
Que pouvez-vous faire pour éviter que de telles situations ne se produisent ?
Je ne sais pas encore. Il faut que j'y réfléchisse.
Je suis coincé avec un autre problème en ce moment.
J'ai mis mon EA sur un VPS Windows 2003 et maintenant il renvoie l'erreur "terminated by timeout", mais je n'ai jamais vu une telle erreur sur mon PC personnel.
Et l'erreur apparaît non pas au moment où mes cycles de fermeture et d'ouverture d'ordre fonctionnent, mais lorsque l'expert jush vérifie le croisement et se met en veille.
Je veux dire que le programme vérifie l'ouverture d'une nouvelle barre, trailingstop = 0 donc pas d'appel à la fonction trailing stop, puis si une nouvelle barre est ouverte, il vérifie le croisement de l'EMA, il n'y a pas de croisement (les fois où j'ai eu des erreurs de timeout, les lignes de l'EMA étaient loin de se croiser), donc le programme retourne(0).
Il n'y a pas de cycles ! Comment peut-il être terminé par le timeout ?
Je ne sais pas encore. Il faut que j'y réfléchisse.
Je suis confronté à un autre problème en ce moment.
J'ai mis mon EA sur un VPS Windows 2003 et maintenant il renvoie l'erreur "terminated by timeout", mais je n'ai jamais vu une telle erreur sur mon PC personnel.
Et l'erreur apparaît non pas au moment où mes cycles de fermeture et d'ouverture d'ordre fonctionnent, mais lorsque l'expert jush vérifie le croisement et se met en veille.
Je veux dire que le programme vérifie l'ouverture d'une nouvelle barre, trailingstop = 0 donc pas d'appel à la fonction trailing stop, puis si une nouvelle barre est ouverte, il vérifie le croisement de l'EMA, il n'y a pas de croisement (les fois où j'ai eu des erreurs de timeout, les lignes de l'EMA étaient loin de se croiser), donc le programme retourne(0).
Il n'y a pas de cycles ! Comment peut-il être terminé par le timeout ?
ce n'est pas un cycle ?
ce n'est pas un cycle ?
Je veux dire que pendant le temps où l'EA a été terminé, les lignes EMA étaient loin de se croiser, donc une fonction NewOrder n'a pas été appelée, donc le cycle dont vous parlez (qui est à l'intérieur de la fonction NewOrder) n'a pas été exécuté.
Ajout de la condition IsStopped