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
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