Greetings,
I have this Order Modify Error 1 in my Ea and i think its happening because trailing stop tries to put the stoploss to the point where Breakeven function already did. Any advice on how to fix this.
I have this Order Modify Error 1 in my Ea and i think its happening because trailing stop tries to put the stoploss to the point where Breakeven function already did. Any advice on how to fix this.
Inserted Code
int Trailing() { int i; err=GetLastError(); // Breakeven if (ExtBreakeven>0 && k>0) for (i=1;i<=k;i++) { if (OrderN[i*2-1] > 0) if(OrderSelect(OrderN[i*2-1], SELECT_BY_TICKET)==true) { if ((ask-OrderOpenPrice())>NormalizeDouble(ExtBreakeven * precision, digit + 1) && OrderOpenPrice()>OrderStopLoss()) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,0); // return(0); } err=GetLastError(); if (err>1) { Print("Ошибка модификации СЛ в без убыток! OrderN[k]=",OrderN[i*2-1]," Error=",err); } } if (OrderN[i*2] > 0) if(OrderSelect(OrderN[i*2], SELECT_BY_TICKET)==true) { if ((OrderOpenPrice()-bid)>NormalizeDouble(ExtBreakeven * precision, digit + 1) && OrderOpenPrice()<OrderStopLoss()) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,0); // return(0); } err=GetLastError(); if (err>1) { Print("Ошибка модификации СЛ в без убыток! OrderN[k]=",OrderN[i*2]," Error=",err); } } } // Trailing if (ExtTrailingStop>0 && k>0) for (i=1;i<=k;i++) { if (OrderN[i*2-1] > 0) if(OrderSelect(OrderN[i*2-1], SELECT_BY_TICKET)==true) { if ((ask-OrderOpenPrice())>NormalizeDouble(ExtTrailingStop * precision, digit + 1) && OrderStopLoss()<(ask-NormalizeDouble(ExtTrailingStop * precision, digit + 1))) { OrderModify(OrderTicket(),OrderOpenPrice(),(ask-NormalizeDouble(ExtTrailingStop * precision, digit + 1)),OrderTakeProfit(),0,0); // return(0); } err=GetLastError(); if (err>1) { Print("Ошибка модификации СЛ во время1 трейлинга! OrderN[k]=",OrderN[i*2-1]," Error=",err); } } else { Print("Неудалось выделить ордер во время трейлинга ",OrderN[i*2-1]); } if (OrderN[i*2] > 0) if(OrderSelect(OrderN[i*2], SELECT_BY_TICKET)==true) { if ((OrderOpenPrice()-bid)>NormalizeDouble(ExtTrailingStop * precision, digit + 1) && OrderStopLoss()>(bid+NormalizeDouble(ExtTrailingStop * precision, digit + 1))) { OrderModify(OrderTicket(),OrderOpenPrice(),bid+NormalizeDouble(ExtTrailingStop * precision, digit + 1),OrderTakeProfit(),0,0); // return(0); } err=GetLastError(); if (err>1) { Print("Ошибка модификации СЛ во время2 трейлинга! OrderN[k]=",OrderN[i*2]," Error=",err); } } else { Print("Неудалось выделить ордер во время трейлинга ",OrderN[i*2]); } } return(0); }