Bonjour mladen, cela ne fonctionne toujours pas. Je me demande si cela pourrait être dû à ces lignes ici... soit les OrdersTotal ou les OrderSelect pourraient causer le problème ?
tkuan77: Bonjour mladen, cela ne fonctionne toujours pas. Je me demande si cela pourrait être dû à ces lignes ici... soit les OrdersTotal ou OrderSelect pourraient causer le problème ?
Bonjour mladen, parce que j'ai configuré mon ea pour n'avoir qu'une seule transaction à un moment donné et j'ai remarqué que OrdersTotal a mis mon compte int i à 0 négatif par 1-1, i>=0 ; i-- fera que mon i=-1.
Je me demandais donc si cela pouvait être l'erreur.
else if(total > 1) //pour fermer les ordres basés sur le timing... pas encore résolu.
tkuan77: Bonjour mladen, parce que j'ai configuré mon ea pour n'avoir qu'une seule transaction à un moment donné et j'ai remarqué que OrdersTotal a mis mon compte int i à 0 négatif par 1-1, i>=0 ; i-- fera que mon i=-1.
Je me demandais donc si cela pouvait être l'erreur.
else if(total > 1) //pour fermer les ordres basés sur le timing... pas encore résolu.
Veuillez remplacer ceci : f (Hour()==7 && Minute()==30) par la ligne que je vous ai envoyée et essayez alors
OrdersTotal() renvoie 1 s'il y a un ordre ouvert. En utilisant OrderSelect(), ce 0 (OrdersTotal()-1) sélectionnera l'ordre correct. Si OrdersTotal() renvoie 0, alors il n'y a pas d'ordres ouverts dans le pool d'ordres actifs.
mladen: Veuillez remplacer ceci : f (Hour()==7 && Minute()==30) par la ligne que je vous ai envoyée et essayez alors OrdersTotal() retournera 1 s'il y a un ordre ouvert. En utilisant OrderSelect(), ce 0 (OrdersTotal()-1) sélectionnera l'ordre correct. Si OrdersTotal() renvoie 0, cela signifie qu'il n'y a pas d'ordre ouvert dans le pool d'ordres actifs.
Bonjour mladen, malheureusement, je viens de réessayer et ça ne marche toujours pas.
Existe-t-il un autre moyen de fermer ma transaction en fonction d'un moment précis ?
mladen: Veuillez remplacer ceci : f (Hour()==7 && Minute()==30) par la ligne que je vous ai envoyée et essayez alors OrdersTotal() retournera 1 s'il y a un ordre ouvert. En utilisant OrderSelect(), ce 0 (OrdersTotal()-1) sélectionnera l'ordre correct. Si OrdersTotal() renvoie 0, cela signifie qu'il n'y a pas d'ordre ouvert dans le pool d'ordres actifs.
Bonjour mladen, j'ai réussi à résoudre le problème. il semble que ce doublon était à l'origine du problème. le code fonctionne après que je l'ai supprimé.
Cette partie
si(newbar==Time[0])return(0) ;
sinon newbar=Time[0] ;
int ticket, total ;
si(Bars<100)
{
Print("barres inférieures à 100") ;
return(0) ;
}
if(TakeProfit<10)
{
Print("TakeProfit inférieur à 10") ;
return(0) ; // vérifier TakeProfit
}
Empêche l'application de fermer les ordres à un moment donné si ce n'est pas le premier tick d'une nouvelle barre et si le profit n'est pas > 10 pips.Bonjour mladen, j'ai supprimé cette partie du codage et mon ea ne ferme toujours pas au moment souhaité.
Avez-vous une idée de ce qui pourrait être la raison ? Merci.
Salutations
Ryan
Bonjour mladen, j'ai supprimé cette partie du codage et mon ea ne ferme toujours pas au moment souhaité.
Avez-vous une idée de ce qui pourrait être la raison ? Merci.
Salutations
RyanLa façon dont il est écrit, il fermera les ordres seulement, et seulement si l'heure du courtier est exactement 07:00:00.
De la façon dont c'est écrit, cela fermera les ordres seulement, et seulement si l'heure du courtier est exactement 07:00:00.
Bonjour mladen, y a-t-il un autre moyen de contourner ce problème car il ne semble pas fonctionner ici.
Salutations
Ryan
Bonjour mladen, existe-t-il un autre moyen de contourner ce problème car il ne semble pas fonctionner ici.
Salutations
RyanEssayez d'utiliser
Si (TimeCurrent()>= StringToTime("07:00:00"))
à la place
Essayez d'utiliser
Si (TimeCurrent()>= StringToTime("07:00:00"))
au lieu deBonjour mladen, cela ne fonctionne toujours pas. Je me demande si cela pourrait être dû à ces lignes ici... soit les OrdersTotal ou les OrderSelect pourraient causer le problème ?
for (int i=OrdersTotal()-1 ; i>=0 ; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
Salutations
Ryan
Bonjour mladen, cela ne fonctionne toujours pas. Je me demande si cela pourrait être dû à ces lignes ici... soit les OrdersTotal ou OrderSelect pourraient causer le problème ?
for (int i=OrdersTotal()-1 ; i>=0 ; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
Salutations
RyanNon. Ces lignes sont correctes
Non. Ces lignes sont correctes
Bonjour mladen, parce que j'ai configuré mon ea pour n'avoir qu'une seule transaction à un moment donné et j'ai remarqué que OrdersTotal a mis mon compte int i à 0 négatif par 1-1, i>=0 ; i-- fera que mon i=-1.
Je me demandais donc si cela pouvait être l'erreur.
else if(total > 1) //pour fermer les ordres basés sur le timing... pas encore résolu.
{
if (Hour()==7 && Minute()==30)
{
for (int i=OrdersTotal()-1 ; i>=0 ; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (!UseCurrSymbol || OrderSymbol()==Symbol())
{
si (OrderType()==OP_BUY)
{
pBid=MarketInfo(OrderSymbol(),MODE_BID) ;
OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue) ;
}
if (OrderType()==OP_SELL))
{
pAsk=MarketInfo(OrderSymbol(),MODE_ASK) ;
OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red) ;
}
}
}
}//
}
return(0) ;
}
Bonjour mladen, parce que j'ai configuré mon ea pour n'avoir qu'une seule transaction à un moment donné et j'ai remarqué que OrdersTotal a mis mon compte int i à 0 négatif par 1-1, i>=0 ; i-- fera que mon i=-1.
Je me demandais donc si cela pouvait être l'erreur.
else if(total > 1) //pour fermer les ordres basés sur le timing... pas encore résolu.
{
if (Hour()==7 && Minute()==30)
{
for (int i=OrdersTotal()-1 ; i>=0 ; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (!UseCurrSymbol || OrderSymbol()==Symbol())
{
si (OrderType()==OP_BUY)
{
pBid=MarketInfo(OrderSymbol(),MODE_BID) ;
OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue) ;
}
if (OrderType()==OP_SELL))
{
pAsk=MarketInfo(OrderSymbol(),MODE_ASK) ;
OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red) ;
}
}
}
}//
}
return(0) ;
}Veuillez remplacer ceci : f (Hour()==7 && Minute()==30) par la ligne que je vous ai envoyée et essayez alors
OrdersTotal() renvoie 1 s'il y a un ordre ouvert. En utilisant OrderSelect(), ce 0 (OrdersTotal()-1) sélectionnera l'ordre correct. Si OrdersTotal() renvoie 0, alors il n'y a pas d'ordres ouverts dans le pool d'ordres actifs.
Veuillez remplacer ceci : f (Hour()==7 && Minute()==30) par la ligne que je vous ai envoyée et essayez alors OrdersTotal() retournera 1 s'il y a un ordre ouvert. En utilisant OrderSelect(), ce 0 (OrdersTotal()-1) sélectionnera l'ordre correct. Si OrdersTotal() renvoie 0, cela signifie qu'il n'y a pas d'ordre ouvert dans le pool d'ordres actifs.
Bonjour mladen, malheureusement, je viens de réessayer et ça ne marche toujours pas.
Existe-t-il un autre moyen de fermer ma transaction en fonction d'un moment précis ?
Salutations
Ryan
Veuillez remplacer ceci : f (Hour()==7 && Minute()==30) par la ligne que je vous ai envoyée et essayez alors OrdersTotal() retournera 1 s'il y a un ordre ouvert. En utilisant OrderSelect(), ce 0 (OrdersTotal()-1) sélectionnera l'ordre correct. Si OrdersTotal() renvoie 0, cela signifie qu'il n'y a pas d'ordre ouvert dans le pool d'ordres actifs.
Bonjour mladen, j'ai réussi à résoudre le problème. il semble que ce doublon était à l'origine du problème. le code fonctionne après que je l'ai supprimé.
else if(total > 1)
merci pour votre aide...
Salutations
Ryan