Tien voici la parti du code qui m'enquiquine et je le rappelle je débute ^^ , je confirme aussi que il y a aucune erreur dans ma stratégie et que ce code m’affiche aucune erreur.
Les variable sont aussi tous déclare comme il faut
{
while(i == 1)
{
i=1;
if(
((Hour() == heureDebut && Minute() >= minuteDebut) || Hour() > heureDebut) &&
((Hour() == heureFin && Minute() <= minuteFin) || Hour() < heureFin)
) {
if(lastTrade != iTime( NULL, PERIOD_D1, 0)) {
skipClosingTrades = false;
lastTrade = iTime( NULL, PERIOD_D1, 0);
double value2 = mavariable1 ;
double value3 = mavariable2 ;
double value4 = mavariable3 ;
double value5 = mavariable4 ;
while(trade <= 3)
{
if(value3 > Ask )
{
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage,0,0,"BUY 3 ea",magicalNumber,0,Green);
if(ticket >= 0) {
if(OrderSelect(ticket, SELECT_BY_TICKET)) {
if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss*Point,OrderOpenPrice()+TakeProfit*Point,0,Blue)){
Print("Error modifing BUY order : ",GetLastError());
}
}
}
trade ++; }
else if(value2 < Bid)
{
ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,slippage,0,0,"SELL 2 ea",magicalNumber,0,Red);
if(ticket >= 0) {
if(OrderSelect(ticket, SELECT_BY_TICKET)) {
if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss*Point,OrderOpenPrice()-TakeProfit*Point,0,Blue)){
Print("Error modifing SELL order : ",GetLastError());
}
}
}
trade ++;}
else if(value4 < Bid)
{
ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,slippage,0,0,"sell 4 ea",magicalNumber,0,Red);
if(ticket >= 0) {
if(OrderSelect(ticket, SELECT_BY_TICKET)) {
if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss*Point,OrderOpenPrice()-TakeProfit*Point,0,Blue)){
Print("Error modifing SELL order : ",GetLastError());
}
}
}
trade ++;}
else if(value5 > Ask)
{
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage,0,0,"buy 5 ea",magicalNumber,0,Red);
if(ticket >= 0) {
if(OrderSelect(ticket, SELECT_BY_TICKET)) {
if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss*Point,OrderOpenPrice()-TakeProfit*Point,0,Blue)){
Print("Error modifing SELL order : ",GetLastError());
}
}
}
trade ++;}
}
}
} else if(!skipClosingTrades){
skipClosingTrades = true;
closeAllTrades();
}
}
return(0);
}
void closeAllTrades(){
for(int cnt = OrdersTotal()-1; cnt >= 0; cnt--){
if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
Print("Error : ",GetLastError());
}
if(OrderSymbol()==Symbol() && OrderMagicNumber() == magicalNumber) {
if(OrderType() == OP_BUY){
if(!OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Green)){
Print("Error : ",GetLastError());
}
}else if(OrderType() == OP_SELL){
if(!OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red)) {
Print("Error : ",GetLastError());
}
}
}
}
}