Что значит «заменить первую часть кода»?
Где ее увидеть?
Как ее отличить от второй, третье и т.д.?
<code>//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void BU() { bool cl=1,m=1; for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY) { if(Bid>b2 && OrderLots()==Lots) { m=OrderModify(OrderTicket(),OrderOpenPrice(),b1,OrderTakeProfit(),0,clrAquamarine); cl=OrderClose(OrderTicket(),OrderLots()/2,Bid,Slip,clrAquamarine); } } if(OrderType()==OP_SELL) { if(Ask<s2 && OrderLots()==Lots) { m=OrderModify(OrderTicket(),OrderOpenPrice(),s1,OrderTakeProfit(),0,clrAquamarine); cl=OrderClose(OrderTicket(),OrderLots()/2,Ask,Slip,clrAquamarine); } } } } } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void Trailing() { bool mod; double sl=0; for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY) { if(Bid-OrderOpenPrice()>TrailingStop*_Point) { sl=NormalizeDouble(Bid-TrailingStop*_Point,_Digits); if(OrderStopLoss()<sl) { Print("SL: ",sl, " TP: ",OrderTakeProfit()); mod=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,Yellow); return; } } } if(OrderType()==OP_SELL) { if(OrderOpenPrice()-Ask>TrailingStop*_Point) { sl=NormalizeDouble(Ask+TrailingStop*_Point,_Digits); if(OrderStopLoss()>sl || (OrderStopLoss()==0)) { Print("SL: ",sl, " TP: ",OrderTakeProfit()); mod=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,Yellow); return; } } } } } } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void PutOrder(int type,double price) { int r=0; color clr=Green; double sl=0,tp=0; if(type==1 || type==3 || type==5) { clr=Red; sl=NormalizeDouble(b1,_Digits); tp=NormalizeDouble(s3,_Digits); } if(type==0 || type==2 || type==4) { clr=Blue; sl=NormalizeDouble(s1,_Digits); tp=NormalizeDouble(b3,_Digits); } r=OrderSend(NULL,type,Lots,NormalizeDouble(price,_Digits),Slip,sl,tp,"",Magic,0,clr); return; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int CountTrades() { int count=0; for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) { if(OrderType()<2) count++; } } } return(count); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { b1=ObjectGetDouble(0,"B1",OBJPROP_PRICE1); b2=ObjectGetDouble(0,"B2",OBJPROP_PRICE1); b3=ObjectGetDouble(0,"B3",OBJPROP_PRICE1); s1=ObjectGetDouble(0,"S1",OBJPROP_PRICE1); s2=ObjectGetDouble(0,"S2",OBJPROP_PRICE1); s3=ObjectGetDouble(0,"S3",OBJPROP_PRICE1); BU(); if(TrailingStop>0) Trailing(); if(CountTrades()<1) { if(ObjectGetInteger(0,"B",OBJPROP_STATE)==1) { if(Ask>b1) PutOrder(0,Ask); ObjectSetInteger(0,"B",OBJPROP_STATE,false); //--- отжать кнопку } if(ObjectGetInteger(0,"S",OBJPROP_STATE)==1) { if(Bid<s1) PutOrder(1,Bid); ObjectSetInteger(0,"S",OBJPROP_STATE,false); //--- отжать кнопку } } if(OrdersTotal()>0 && ObjectGetInteger(0,"C",OBJPROP_STATE)==1) { CloseAll(); ObjectSetInteger(0,"C",OBJPROP_STATE,false); } Comment("\n B1: ",b1, "\n B2: ",b2, "\n B3: ",b3, "\n S1: ",s1, "\n S2: ",s2, "\n S3: ",s3); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ </code>
Вместо того, чтобы просто по человечески сбросить готовый файл?
Или в этом есть некий «кайф»?
Не понимаю…
apologetest