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.
Jusqu'où va i ? Qu'est-ce que le nombre Bars-1 ?
Cela ne fonctionne pas ! Je ne sais vraiment pas quoi faire...
[...]
Cela ne fonctionne pas ! Je ne sais vraiment pas quoi faire...
En quoi cela ne fonctionne-t-il pas ? Les valeurs sont-elles fausses ? Ne sont-elles pas calculées du tout ?
En quoi cela ne fonctionne-t-il pas ? Les valeurs sont-elles erronées ? Ne sont-elles pas calculées du tout ?
Je n'arrive pas à comprendre. J'ai l'ordre d'ouvrir l'achat lorsque le prix est supérieur à HighValue et vice versa pour la vente.
Comment écrire ces valeurs sur le moniteur ? Avec Print("Valeur haute : ",HighValue) ;
Je pense que c'est la seule façon de trouver ce que sont ces valeurs, mais elles ne sont pas hautes/basses entre 15.00 et 17.00.
Oui. Je pense que le mieux est de mettre le code ici et peut-être que quelqu'un trouvera une solution.
if(Hour() == 17 && gethighlows == true)
{
gethighlows = false ;
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)] ; // 8 barres M15 entre 15.00-17.00
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)] ; // 8 barres M15 entre 15.00-17.00
}
//-----
if (Hour() ==0 && (Minute()==0 && (Seconds()==1)))
{
TopRange=0 ;
LowRange=0 ;
bought=false ;
sold=false ;
sessionfound=false ;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5) ;
si ((DayOfWeek()==1) && (Trade_on_Monday==true)) TradeDayOK=true ;
//-----
total=OrdersTotal() ;
si(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("Nous n'avons pas d'argent. Marge libre = ", AccountFreeMargin()) ;
return(0) ;
}
if(newbar==Time[0])return(0) ;
sinon newbar=Time[0] ;
if(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23)
{
if ((bought==false) && (Low[1] > (TopRange+Point*3)))
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue) ;
acheté=vrai ;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordre BUY ouvert : ",OrderOpenPrice()) ;
}
sinon Print("Erreur lors de l'ouverture de l'ordre BUY : ",GetLastError()) ;
return(0) ;
}
if ((sold==false) && (High[1] < (LowRange-Point*3) ))
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red) ;
vendu=vrai ;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordre SELL ouvert : ",OrderOpenPrice()) ;
}
sinon Print("Erreur lors de l'ouverture d'un ordre VENTE : ",GetLastError()) ;
return(0) ;
}
return(0) ;
}
return(0) ;
}
}
Oui, je pense que le mieux est de mettre le code ici et peut-être que quelqu'un trouvera une solution.
if(Hour() == 17 && gethighlows == true)
{
gethighlows = false ;
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)] ; // 8 barres M15 entre 15.00-17.00
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)] ; // 8 barres M15 entre 15.00-17.00
}
//-----
if (Hour() ==0 && (Minute()==0 && (Seconds()==1)))
{
TopRange=0 ;
LowRange=0 ;
bought=false ;
sold=false ;
sessionfound=false ;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5) ;
si ((DayOfWeek()==1) && (Trade_on_Monday==true)) TradeDayOK=true ;
//-----
total=OrdersTotal() ;
si(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("Nous n'avons pas d'argent. Marge libre = ", AccountFreeMargin()) ;
return(0) ;
}
if(newbar==Time[0])return(0) ;
sinon newbar=Time[0] ;
if(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23)
{
si ((bought==false) && Ask >= TopRange)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue) ;
acheté=vrai ;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordre BUY ouvert : ",OrderOpenPrice()) ;
}
sinon Print("Erreur lors de l'ouverture de l'ordre BUY : ",GetLastError()) ;
return(0) ;
}
si ((sold==false) && Bid <= LowRange)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red) ;
vendu=vrai ;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordre SELL ouvert : ",OrderOpenPrice()) ;
}
sinon Print("Erreur lors de l'ouverture d'un ordre VENTE : ",GetLastError()) ;
return(0) ;
}
return(0) ;
}
return(0) ;
}
}