//+------------------------------------------------------------------+
//|                                 panelektrik@yandex.ru            |
//|                                 panelektrik@gmail.com            |
//|                                 Starigin Konstantin              |
//+------------------------------------------------------------------+
#property copyright "STARIGIN KONSTANTIN panelektrik@yandex.ru"
 int magic1 =123;
 int magic2 =321;
 
 extern double lot=0.1;
 extern int proboy_proc=4;
 extern int tp_proc=50; 
 extern int bezubutok_proc=35;
  
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+
 int orders()
   {int j=0;for(int i=0;i<OrdersTotal();i++)
   {if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
   if((OrderMagicNumber()==magic1||OrderMagicNumber()==magic2)&&(OrderSymbol()==Symbol()))j++;}return(j);}
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+
int orders_buy()
{int j=0;for (int i=0;i<OrdersTotal();i++)
{if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
if((OrderType()==OP_BUY)&&(OrderMagicNumber()==magic1)&&(OrderSymbol()==Symbol()))j++;
}return(j);}
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+
int orders_sell()
{int j=0;for (int i=0;i<OrdersTotal();i++)
{if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
if((OrderType()==OP_SELL)&&(OrderMagicNumber()==magic2)&&(OrderSymbol()==Symbol()))j++;
}return(j);}
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+ 
int objekt()
   {
    ObjectCreate("trade",OBJ_LABEL,0,0,0);
    ObjectSetText("trade","BUY&SELL", 10,"Times New Roman",Chartreuse);
    ObjectSet("trade", OBJPROP_CORNER, 1);
    ObjectSet("trade", OBJPROP_XDISTANCE, 20);
    ObjectSet("trade", OBJPROP_YDISTANCE, 60);
   }
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+  
double trend_object1()
  {
   if(ObjectGet("TRENDbuy",OBJPROP_PRICE2)==0){
   ObjectCreate("TRENDbuy",OBJ_TREND, 0,TimeCurrent()-60*60*100,Bid+500*Point,TimeCurrent(),Bid+500*Point);
   ObjectSet("TRENDbuy",OBJPROP_COLOR,DodgerBlue);}
  }
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+   
double trend_object2()
  {
   if(ObjectGet("TRENDsell",OBJPROP_PRICE2)==0){
   ObjectCreate("TRENDsell",OBJ_TREND, 0,TimeCurrent()-60*60*100,Bid-500*Point,TimeCurrent(),Bid-500*Point);
   ObjectSet("TRENDsell",OBJPROP_COLOR,Tomato);}
  }  
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+  
int movi1()
  {
   RefreshRates();
   double cdelta1=ObjectGet("TRENDbuy",OBJPROP_PRICE2)-ObjectGet("TRENDbuy",OBJPROP_PRICE1);
   double tdelta1=((ObjectGet("TRENDbuy",OBJPROP_TIME2)-ObjectGet("TRENDbuy",OBJPROP_TIME1))/60)/60; 
   if(TimeHour(ObjectGet("TRENDbuy",OBJPROP_TIME2))!=Hour())
   ObjectMove("TRENDbuy",1,TimeCurrent(),(ObjectGet("TRENDbuy",OBJPROP_PRICE2)+cdelta1/tdelta1));
  }
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+   
int movi2()
  {
   RefreshRates();
   double cdelta1=ObjectGet("TRENDsell",OBJPROP_PRICE2)-ObjectGet("TRENDsell",OBJPROP_PRICE1);
   double tdelta1=((ObjectGet("TRENDsell",OBJPROP_TIME2)-ObjectGet("TRENDsell",OBJPROP_TIME1))/60)/60; 
   if(TimeHour(ObjectGet("TRENDsell",OBJPROP_TIME2))!=Hour())
   ObjectMove("TRENDsell",1,TimeCurrent(),(ObjectGet("TRENDsell",OBJPROP_PRICE2)+cdelta1/tdelta1));
  }  
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+ 
int ordersend_buy()
  {
   RefreshRates();
   double kanal =ObjectGet("TRENDbuy",OBJPROP_PRICE1)-ObjectGet("TRENDsell",OBJPROP_PRICE1);
   double proboy =NormalizeDouble((kanal/100)*proboy_proc,Digits);
   double tp =NormalizeDouble((kanal/100)*tp_proc,Digits);
   if(Bid>ObjectGet("TRENDbuy",OBJPROP_PRICE2)+proboy){
   OrderSend(Symbol(),OP_BUY,lot,Ask,200*Point,ObjectGet("TRENDsell",OBJPROP_PRICE2),Ask+tp,"buy",magic1,0,Blue);
   Print(GetLastError());}
  }
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+  
int ordersend_sell()
  {
   RefreshRates();
   double kanal =ObjectGet("TRENDbuy",OBJPROP_PRICE1)-ObjectGet("TRENDsell",OBJPROP_PRICE1);
   double proboy =NormalizeDouble((kanal/100)*proboy_proc,Digits);
   double tp =NormalizeDouble((kanal/100)*tp_proc,Digits);
   if(Ask<ObjectGet("TRENDsell",OBJPROP_PRICE2)-proboy){
   OrderSend(Symbol(),OP_SELL,lot,Bid,200*Point,ObjectGet("TRENDbuy",OBJPROP_PRICE2),Bid-tp,"sell",magic2,0,Red);
   Print(GetLastError());}
  }
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+ 
double OrderStopLosS(int Magic)
   {double j=0;for (int i=0;i<OrdersTotal();i++)
   {if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
   {if((OrderMagicNumber()==Magic)&&(OrderSymbol()==Symbol()))j=OrderStopLoss();}
   }return(j);}
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+ 
double OrderOpenPricE(int Magic)
   {double j=0;for (int i=0;i<OrdersTotal();i++)
   {if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
   {if((OrderMagicNumber()==Magic)&&(OrderSymbol()==Symbol()))j=OrderOpenPrice();}
   }return(j);}
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+ 
double OrderTakeProfiT(int Magic)
   {double j=0;for(int i=0;i<OrdersTotal();i++)
   {if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
   {if((OrderMagicNumber()==Magic)&&(OrderSymbol()==Symbol()))j=OrderTakeProfit();}
   }return(j);}
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+ 
int tiket(int Magic)
   {int j=0;for (int i=0;i<OrdersTotal();i++)
   {if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
   {if((OrderMagicNumber()==Magic)&&(OrderSymbol()==Symbol()))j=OrderTicket();}
   }return(j);}  
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+ 
int modify_sl_buy()
{
double kanal =ObjectGet("TRENDbuy",OBJPROP_PRICE1)-ObjectGet("TRENDsell",OBJPROP_PRICE1);
double bezubutok =NormalizeDouble((kanal/100)*bezubutok_proc,Digits);
if(Bid>OrderOpenPricE(magic1)+bezubutok){
OrderModify(tiket(magic1),OrderOpenPricE(magic1),OrderOpenPricE(magic1),OrderTakeProfiT(magic1),0);
Print(GetLastError());}
}
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+
int modify_sl_sell()
{
double kanal =ObjectGet("TRENDbuy",OBJPROP_PRICE1)-ObjectGet("TRENDsell",OBJPROP_PRICE1);
double bezubutok =NormalizeDouble((kanal/100)*bezubutok_proc,Digits);
if(Ask<OrderOpenPricE(magic2)-bezubutok){
OrderModify(tiket(magic2),OrderOpenPricE(magic2),OrderOpenPricE(magic2),OrderTakeProfiT(magic2),0);
Print(GetLastError());}
}
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+ 
 int start()
 { 
  objekt();
  bool condition=true;
  while(condition)
  {
   trend_object1();
   trend_object2();
   movi1();
   movi2();
   if(orders()==0){ordersend_buy();ordersend_sell();}
   if(orders_buy()==1)modify_sl_buy();
   if(orders_sell()==1)modify_sl_sell();
   if((orders_buy()==1)&&(OrderStopLosS(magic1)==OrderOpenPricE(magic1)))
   {PlaySound("Wait.wav");break;}
   if((orders_sell()==1)&&(OrderStopLosS(magic2)==OrderOpenPricE(magic2)))
   {PlaySound("Wait.wav");break;}
   Sleep(1000);
  }
 }
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+  
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+  
 int deinit()
 {
 ObjectDelete("trade");
 }
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+
//ووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو+