//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

extern double Lots         = 0.1;   // Величина лота
extern int    MinProfit    = 10;    // Прибыль в пунктах 
extern int    Step         = 0;   
extern double lStopLoss = 60;
extern double sStopLoss = 60;

double step;
int magic=3485632;
int expBars;
//+------------------------------------------------------------------+
int start(){

 int oo=0;
 double slp=99999,shp=0;
 double blp=99999,bhp=0;
 int bprofit=0,sprofit=0;
 int j=OrdersTotal()-1;
 for(int i=j;i>=0;i--){
  OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
  if(Symbol()==OrderSymbol() && magic==OrderMagicNumber() && OrderType()==OP_BUY){
   oo++;
   if(OrderOpenPrice()<blp) blp=OrderOpenPrice();
   if(OrderOpenPrice()>bhp) bhp=OrderOpenPrice();
   bprofit=bprofit+MathRound((OrderProfit()+OrderSwap())/MarketInfo(Symbol(),MODE_TICKVALUE)/MarketInfo(Symbol(),MODE_MINLOT));
  }
  if(Symbol()==OrderSymbol() && magic==OrderMagicNumber() && OrderType()==OP_SELL){
   oo++;
   if(OrderOpenPrice()<slp) slp=OrderOpenPrice();
   if(OrderOpenPrice()>shp) shp=OrderOpenPrice();
   sprofit=sprofit+MathRound((OrderProfit()+OrderSwap())/MarketInfo(Symbol(),MODE_TICKVALUE)/MarketInfo(Symbol(),MODE_MINLOT));
  }
 }
 
 Comment("Бай Профит=", bprofit," blp=", blp," bhp=",bhp," blp-step=",blp-step," bhp+step=",bhp+step,
         "\nСел Профит=", sprofit," slp=", slp," shp=",shp," slp-step=",slp-step," shp+step=",shp+step);
 
 if(oo==0){
  RefreshRates();
  OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"pio_pir_buy",magic,0,Blue);
  OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"pio_pir_sell",magic,0,Magenta);
 }
 
 if(bprofit>=MinProfit){
  j=OrdersTotal()-1;
  for(i=j;i>=0;i--){
   OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   RefreshRates();
   if(Symbol()==OrderSymbol() && magic==OrderMagicNumber() && OrderType()==OP_BUY)
    OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
  }
 }

 if(sprofit>=MinProfit){
  j=OrdersTotal()-1;
  for(i=j;i>=0;i--){
   OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   RefreshRates();
   if(Symbol()==OrderSymbol() && magic==OrderMagicNumber() && OrderType()==OP_SELL)
    OrderClose(OrderTicket(),OrderLots(),Ask,3,Magenta);
  }
 }

 RefreshRates();
 if (Step==0) {step=(Ask-Bid)*2;} else {step=Step*Point;}
 
 RefreshRates();
 if(blp-step>=Bid && isNewBar())
  OrderSend(Symbol(),OP_BUY,Lots,Ask,3,GetStopLossBuy(),0,"pio_pir_buy",magic,0,Blue);
// if(bhp+step<=Bid)
//  OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"pio_pir_buy",magic,0,Blue);
// if(slp-step>=Ask)
//  OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"pio_pir_sell",magic,0,Magenta);
 if(shp+step<=Ask && isNewBar())
  OrderSend(Symbol(),OP_SELL,Lots,Bid,3,GetStopLossSell(),0,"pio_pir_sell",magic,0,Magenta);

   
 return(0);
}

double GetStopLossBuy() { 	return (Bid-lStopLoss*Point);} 
double GetStopLossSell() { 	return(Ask+sStopLoss*Point); } 
bool isNewBar()
  {
   bool res=false; 
   if (expBars!=Bars) 
      {
      expBars=Bars;
      res=true;
      } 
   return(res);
  }