J'espère que je n'ai pas supprimé ce dont j'avais besoin, sinon le compilateur se plaindrait du mot else :
if(OrdersTotal()>0){// ligne inutile - s'il n'y a pas d'ordres, le compteur de la boucle sera à zéro et la boucle ne sera pas exécutée for(int i=OrdersTotal()-1;i>=0;i--){// passer par tous les ordres if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// siaucun ordre n' est sélectionné, alors... if(OrderMagicNumber()!=MagicNumber) continue ; //si le nombre magique n'est pas le nôtre, alors passez à une autre commande if(OrderOpenTime()>=Time[0]) Torg=false ; } // Mais que faire si la commande est toujours sélectionnée dans la liste ? } }
P.S.
La ligne qui signale un numéro d'erreur lors de la sélection d'une commande n'aurait pas dû être supprimée pour une raison quelconque - il arrive parfois qu'elle saute. En général, il est préférable d'utiliser la gestion des erreurs partout où elles peuvent se produire.
drknn: if(OrdersTotal()>0){// ligne inutile - s'il n'y a pas d'ordres, le compteur de la boucle sera à zéro et la boucle ne sera pas exécutée for(int i=OrdersTotal()-1;i>=0;i--){// passer par tous les ordres if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// siaucun ordre n' est sélectionné, alors. if(OrderMagicNumber()!=MagicNumber) continue ; //si le nombre magique n'est pas le nôtre, alors passez à une autre commande if(OrderOpenTime()>=Time[0]) Torg=false ; } // Mais que faire si la commande est toujours sélectionnée dans la liste ? } }
Et si vous essayez de vérifier vous-même cette boucle dans le script ? Eh bien, juste en imprimant le résultat - quelle position la variable Torg prend dans différents cas. Vous pensez que vous ne pouvez pas le faire vous-même ?
drknn: Et si vous essayez de vérifier vous-même cette boucle dans le script ? Eh bien, juste en imprimant le résultat - quelle position la variable Torg prend dans différents cas. Vous pensez que vous ne pouvez pas le faire vous-même ?
Il s'est avéré qu'un nombre illimité d'ordres ont été ouverts sur une nouvelle barre. Avant, ils étaient tous ouverts en même temps, mais maintenant, l'un d'eux est censé s'ouvrir et tous les autres sont ouverts.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Non. Vous n'avez pas besoin de déclarer une variable à l'intérieur de la boucle à chaque itération.
J'espère que je n'ai rien supprimé, sinon le compilateur se plaindrait du mot else :
bool Torg=true ;
if(OrdersTotal()>0){for(int i=OrdersTotal()-1;i>=0;i--){
if ( !OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderMagicNumber()!=MagicNumber) continue ;
if(OrderOpenTime()>=Time[0]) Torg=false ;
}
}
}
J'espère que je n'ai pas supprimé ce dont j'avais besoin, sinon le compilateur se plaindrait du mot else :
if(OrdersTotal()>0){// ligne inutile - s'il n'y a pas d'ordres, le compteur de la boucle sera à zéro et la boucle ne sera pas exécutée
for(int i=OrdersTotal()-1;i>=0;i--){// passer par tous les ordres
if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// si aucun ordre n' est sélectionné, alors...
if(OrderMagicNumber()!=MagicNumber) continue ; //si le nombre magique n'est pas le nôtre, alors passez à une autre commande
if(OrderOpenTime()>=Time[0]) Torg=false ;
}
// Mais que faire si la commande est toujours sélectionnée dans la liste ?
}
}
P.S.
La ligne qui signale un numéro d'erreur lors de la sélection d'une commande n'aurait pas dû être supprimée pour une raison quelconque - il arrive parfois qu'elle saute. En général, il est préférable d'utiliser la gestion des erreurs partout où elles peuvent se produire.
if(OrdersTotal()>0){// ligne inutile - s'il n'y a pas d'ordres, le compteur de la boucle sera à zéro et la boucle ne sera pas exécutée
for(int i=OrdersTotal()-1;i>=0;i--){// passer par tous les ordres
if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// si aucun ordre n' est sélectionné, alors.
if(OrderMagicNumber()!=MagicNumber) continue ; //si le nombre magique n'est pas le nôtre, alors passez à une autre commande
if(OrderOpenTime()>=Time[0]) Torg=false ;
}
// Mais que faire si la commande est toujours sélectionnée dans la liste ?
}
}
bool Torg ;
if(OrdersTotal()==0) Torg=true ;
if(OrdersTotal()>0){
for(int i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderMagicNumber()!=MagicNumber) continue ;
if(OrderOpenTime()>=Time[0]) Torg=false ;
if(OrderOpenTime()<Time[0]) Torg=true ;
}
}
}
Que pensez-vous de ça ?
Et si vous essayez de vérifier vous-même cette boucle dans le script ? Eh bien, juste en imprimant le résultat - quelle position la variable Torg prend dans différents cas. Vous pensez que vous ne pouvez pas le faire vous-même ?
Je ne pense pas.
Téléchargez - cela vous aidera - http://depositfiles.com/files/eg4fmn3bp