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
Hmm, ce serait donc bien ?
En fait, j'ai changé Time[1] en Time[0] parce que Time[1] sautait une barre de plus, donc Time[0] représente en fait l'Open[0]. Si quelqu'un connaît quelque chose de mieux/simple que cela, merci de le dire !
Hmm, ce serait donc bien ?
En fait, j'ai changé Time[1] en Time[0] parce que Time[1] sautait 1 barre de plus, donc Time[0] représente en fait l'Open[0]. si quelqu'un connaît quelque chose de mieux/simple que cela, dites-le !
RefreshRates(); OrderClose( OrderTicket(), OrderLots(),OrderClosePrice() ,Slippage,CLR_NONE);
et vérifiez aussi si orderclose réussit
et vérifiez également si la fermeture de l'ordre a réussi
Si ce n'est pas le cas, lorsque la fonction start() se répète, elle testera à nouveau le if() avant l'orderclose() et puisque les conditions seront toujours vraies, elle essaiera de le fermer à nouveau. Je ne peux pas essayer de le fermer 2 fois dans la même boucle du start(), je dois attendre un autre tick, non ?
Hmm, ce serait donc bien ?
En fait, j'ai changé Time[1] en Time[0] parce que Time[1] sautait une barre de plus, donc Time[0] représente en fait l'Open[0]. Si quelqu'un connaît quelque chose de mieux/simple, dites-le nous !
Si vous voulez fermer au plus près de la clôture de la barre, vous devez déterminer si le tick actuel est le premier tick de la nouvelle barre... et vous devez également vous assurer que la fermeture fonctionne car vous n'aurez qu'une seule chance par barre.
Eh bien, si elle n'a pas réussi, alors quand la fonction start() se répète, elle testera à nouveau le if() avant l'orderclose() et puisque les conditions seront toujours vraies pour continuer, elle essaiera de le fermer à nouveau. Je ne peux pas essayer de le fermer 2 fois dans la même boucle du start(), il faut attendre un autre tick non ?
vous avez commencé qu'il doit fermer le dernier tick de la barre.
Nous avons essayé de vous faire comprendre qu'il n'est pas possible de savoir quand la dernière barre de tic-tac va arriver.
Maintenant, peu importe si la fermeture échoue, nous essayons à nouveau, encore et encore, sur les ticks suivants.
vous avez aussi manqué d'autres changements que j'ai suggérés
quel est le sens de rafraîchir les données après la clôture de l'ordre ?
Et savez-vous pourquoi le slippage au lieu du TAKEPROFITPIPS?
Cela dépend du retour d'erreur, vous pouvez essayer de le fermer 2 fois dans la même boucle.
si le contexte commercial est trop chargé et que vous avez d'autres transactions à fermer dans la boucle, il y a de grandes chances qu'elles échouent également.
Non, l'ordre sera toujours fermé, que le tick soit le tick de la prochaine barre ou non, pour toute barre suivant celle où la transaction a été ouverte et à tout moment pendant cette barre, Time[0] sera toujours supérieur à OrderOpenTime().
Si vous voulez fermer au plus près de la clôture de la barre, vous devez déterminer si le tick actuel est le premier tick de la nouvelle barre... et vous devez également vous assurer que la fermeture fonctionne car vous n'aurez qu'une seule chance par barre.
La fonction start() ne se répète-t-elle pas après chaque tic ? Est-ce que je me trompe ?
Bref, imaginez comme ça :
OrderOpenTime() = 12:12:01 (12 H 12 MIN 1 SEC)
L'ordre est ouvert, le paquet de la fonction Orderclose() se trouve après mon OrderSend() dans le code principal, donc, juste après l'ouverture de l'ordre, mon paquet OrderClose() va tester si les conditions ont été remplies pour fermer l'ordre ou pas :
Time[0] est le prix d'ouverture de cette barre, donc par logique il doit être plus petit que le temps d'ouverture de l'ordre, parce que l'ordre ne peut pas être ouvert avant l'ouverture de la même barre.c'est : 12:12:00
Donc, par tous les moyens :
Si l'ordre ne peut pas être fermé, pour une raison quelconque, comme un slippage ou autre, pas de problème, le start() se répète.
Et à la prochaine répétition le Time[0] sera 100% plus grand que le temps d'ouverture de l'ordre, parce que c'est logique, donc si la première fermeture échoue l'autre OrderClose() se produira chaque fois après quand le start() se répétera, et puisque je pense que le start() se répète par chaque tick, alors je ne pense pas qu'il y ait une meilleure façon de fermer l'ordre plus rapidement, j'espère l'avoir expliqué clairement :)
vous avez commencé qu'il doit fermer le dernier tick de la barre.
Nous avons essayé de vous faire comprendre qu'il n'est pas possible de savoir quand la dernière barre de tic-tac va arriver.
Maintenant, peu importe si la fermeture échoue, nous essayons à nouveau, encore et encore, sur les ticks suivants.
vous avez aussi manqué d'autres changements que j'ai suggérés
quel est le sens de rafraîchir les données après la clôture de l'ordre ?
Et savez-vous pourquoi le slippage au lieu du TAKEPROFITPIPS?
Cela dépend du retour d'erreur, vous pouvez essayer de le fermer 2 fois dans la même boucle.
si le contexte commercial est trop chargé et que vous avez d'autres transactions à fermer dans la boucle, il y a de grandes chances qu'elles échouent aussi.
La fonction start() ne se répète-t-elle pas après chaque tic ? Est-ce que je me trompe ?
Oui, start() est appelé à chaque tick, sauf s'il est toujours en cours d'exécution....
De toute façon, imaginez ceci :
OrderOpenTime() = 12:12:01 (12 H 12 MIN 1 SEC)
L'ordre est ouvert, le paquet de la fonction Orderclose() se trouve après celui de la fonction OrderSend() dans le code principal, donc, juste après l'ouverture de l'ordre, mon paquet OrderClose() va tester si les conditions ont été remplies pour fermer l'ordre ou non :
Time[0] est le prix d'ouverture de cette barre, donc par logique il doit être plus petit que le temps d'ouverture de l'ordre, parce que l'ordre ne peut pas être ouvert avant l'ouverture de la même barre.c'est : 12:12:00
Donc par tous les moyens :
Si l'ordre ne peut pas être fermé, pour une raison quelconque, comme un slippage ou autre, pas de problème, le start() se répète.
Et à la prochaine répétition le Time[0] sera 100% plus grand que le temps d'ouverture de l'ordre, parce que c'est logique, donc si la première fermeture échoue l'autre OrderClose() se produira chaque fois après quand le start() se répétera, et puisque je pense que le start() se répète par chaque tick, alors je ne pense pas qu'il y ait une meilleure façon de fermer l'ordre plus rapidement, j'espère l'avoir expliqué clairement :)
Il est assez rare que le cours de clôture d'une barre ne soit pas répété sur la barre suivante, pas nécessairement son cours d'ouverture ...