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
Sans connaître l'ensemble de l'ea et la façon dont vous l'utilisez, nous ne ferons que deviner ce qui ne va pas. En supposant qu'il sélectionne un ordre correct pour passer cette instruction.
il n'y a aucune chance qu'il passe :
if ((orderType == OP_BUY || orderType == OP_BUYSTOP)) {
si c'est Op_Sell. A moins que vous n'ayez cette chose sur plusieurs graphiques du même symbole.
Vu que vous utilisez une boucle while litigieuse. C'est probablement une forme de générateur d'ordre rapide.
Ma dernière hypothèse. L'ordre sélectionné change après la vérification du type d'ordre :)
Pour le reste, je vous suggère, comme Raptor, d'utiliser beaucoup d'instructions d'impression.
J'ai imprimé le numéro du ticket et il ne correspond pas au OrderType().
Si la commande sélectionnée est de type OP_BUY, le bon si sera traité, mais ensuite dans mon appel OrderModify(...), je passe OrderTicket() comme premier paramètre, mais c'est le ticket d'une autre commande.
Avez-vous une idée ?
Avez-vous une idée ?
Peut-être que vous essayez de modifier un ordre qui est déjà fermé ? vous ne spécifiez pas le pool dans lequel vous sélectionnez vos transactions ....
MODE_TRADES (par défaut) - ordre sélectionné dans le pool de négociation (ordres ouverts et en attente),.
MODE_HISTORY - ordre sélectionné dans le pool historique (ordre fermé et annulé).
Peut-être essayez-vous de modifier un ordre qui est déjà clôturé ? vous ne spécifiez pas le pool dans lequel vous sélectionnez vos transactions....
MODE_TRADES (par défaut) - ordre sélectionné dans le pool de négociation (ordres ouverts et en attente),MODE_HISTORY - ordre sélectionné dans le pool historique (ordre fermé et annulé).
J'ai essayé cela aussi, mais cela n'a rien changé. Il semble que je doive stocker toutes les données de l'ordre sélectionné que je veux utiliser :
int ticket=0 ;
double SL = 0.0 ;
OrderSelect(cnt, ...) ;
ticket = OrderTicket() ;
SL = OrderStoposs() ;
si (OrderType() == OP_BUY) {
}
...
Pourquoi en est-il ainsi ? Je ne comprends pas ce qui ne va pas dans mon code pour que l'OrderTicket() ne corresponde pas au même ordre que celui auquel l'OrderType() se réfère.
J'ai imprimé le numéro du ticket et il ne correspond pas au OrderType().
Si la commande sélectionnée est de type OP_BUY, le bon si sera traité, mais ensuite dans mon appel OrderModify(...), je passe OrderTicket() comme premier paramètre, mais c'est le ticket d'une autre commande.
orderType = OrderType()
changez en
int orderType = OrderType() ; et supprimez la déclaration originale.
orderType = OrderType()
changez en
int orderType = OrderType() ; et supprimez la déclaration originale.
OrderType est correct. C'est le OrderTicket() qui n'est pas le ticket de la bonne commande.
Je vous encourage à trouver la cause de votre problème plutôt que de le contourner....
Le génie logiciel consiste à résoudre des problèmes, c'est ainsi que nous apprenons et que nous nous améliorons. J'en suis à ma troisième tentative depuis samedi pour coder un problème particulier lié aux Fibs, j'y suis presque... ... l'utilisation prudente de la fonction Print() aide beaucoup... ...
OrderType est ok. C'est le OrderTicket() qui n'est pas le ticket de la bonne commande.
int OrderType = OrderType() n'est pas correct, l'un peut cacher l'autre (les déclarations locales cachent les globales sans erreur).
int orderType = OrderType()