sorry for the mess and i hope you and use code from here double OOP,SL; int b=0,s=0,tip,TicketB=0,TicketS=0; for(int i=0; i=OOP + Takeprofit * Point) {if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),slippage,clrNONE)) {continue;SendMailOf(OrderTicket(),OrderLots(),OrderProfit());}} /*!!!!*/ if(TrailingStop>0) { SL=NormalizeDouble(Bid-TrailingStop*Point,Digits); if(SL>=OOP+TrailingStart*Point && (TrallB==0 || TrallB+TrailingStep*Point=OOP + Stoploss * Point) {if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),slippage,clrNONE)) {continue;SendMailOf(OrderTicket(),OrderLots(),OrderProfit());}} if(Takeprofit!=0 && Ask<=OOP - Takeprofit * Point) {if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),slippage,clrNONE)) {continue;SendMailOf(OrderTicket(),OrderLots(),OrderProfit());}} TicketS=OrderTicket(); if(TrailingStop>0) { SL=NormalizeDouble(Ask+TrailingStop*Point,Digits); if(SL<=OOP-TrailingStart*Point && (TrallS==0 || TrallS-TrailingStep*Point>SL)) TrallS=SL; } } } } } } if(b!=0) { if(b>1) Comment("Трал корректно работает только с 1 ордером"); else if(TrallB!=0) { Comment("Тралим ордер ",TicketB); DrawHline("SL Buy",TrallB,clrBlue,1); if(Bid<=TrallB) { if(OrderSelect(TicketB,SELECT_BY_TICKET)) if(OrderProfit()>0) if(!OrderClose(TicketB,OrderLots(),NormalizeDouble(Ask,Digits),slippage,clrRed)) Comment("Ошибка закрытия ордера ",GetLastError()); else SendMailOf(OrderTicket(),OrderLots(),OrderProfit()); } } } else {TrallB=0;ObjectDelete("SL Buy");} //--- if(s!=0) { if(s>1) Comment("Трал корректно работает только с 1 ордером"); else if(TrallS!=0) { Comment("Тралим ордер ",TicketS); DrawHline("SL Sell",TrallS,clrRed,1); if(Ask>=TrallS) { if(OrderSelect(TicketS,SELECT_BY_TICKET)) if(OrderProfit()>0) if(!OrderClose(TicketS,OrderLots(),NormalizeDouble(Ask,Digits),slippage,clrRed)) Comment("Ошибка закрытия ордера ",GetLastError()); else SendMailOf(OrderTicket(),OrderLots(),OrderProfit()); } } } else {TrallS=0;ObjectDelete("SL Sell");} //--- //int err; //if(IsTesting() && OrdersTotal()==0) // { // double Lot=0.1; // err=OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),slippage,0,0,"тест",0); // err=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,0,0,"тест",0); // return(0); // } //---- return(0); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void DrawHline(string name,double P,color clr,int WIDTH) { if(ObjectFind(name)!=-1) ObjectDelete(name); ObjectCreate(name,OBJ_HLINE,0,0,P,0,0,0,0); ObjectSet(name,OBJPROP_COLOR,clr); ObjectSet(name,OBJPROP_STYLE,2); ObjectSet(name,OBJPROP_WIDTH,WIDTH); }