//+------------------------------------------------------------------+
//|                                                  LOSS_GAP_EA.mq4 |
//|                           Copyright 2020, anthonbudiman@gmail.com|
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property strict
extern int slippage=3;
extern int magicnumber=123123;

extern int Daily_Target=50;

extern bool use_time_filter=true;
extern int starting_hour=1;
extern int closing_hour=22;

extern bool EMA_MODE= true;
extern int EMA_PERIOD=50;
extern int EMA_SHIFT=0;

extern bool stochastic_MODE= false;
extern int k_period =5;
extern int d_period =3;
extern int slowing =3;


extern bool macd_mode= false;
extern int macd_fast_period=12;
extern int macd_slow_period=26;
extern int macd_signal_period=9;

extern bool bolinger_bands = false;
extern int bolinger_period=20;
extern double bolinger_deviation=2;
extern int bolinger_shift=0;

extern bool rsi_mode= false;
extern int rsi_period=14;

extern bool info_on_screen=true;

extern int gap_loss_points=100;
extern int take_profit=200;
extern int max_steps_entry=15;
extern double first_volume=0.01;
extern double multiply=1.3;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  
  if(kiir()>Daily_Target)
  {
    for(int jj=OrdersTotal()-1; jj>=0; jj--)
    {
          bool swegsg=OrderSelect(jj,SELECT_BY_POS,MODE_TRADES);
bool nsjdslj=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,clrNONE);
    }
  }
  
  
  
  
  
  
  
  
  
   for(int vv=OrdersTotal()-1; vv>=0; vv--)
     {
      double spreadbuy=Ask-Bid;
      double newvalume=first_volume*multiply;
      bool entekhabsdsgb=OrderSelect(vv,SELECT_BY_POS,MODE_TRADES);
      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ (gap_loss_points*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==1 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,newvalume,Ask,slippage,0,Bid+((gap_loss_points+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ (gap_loss_points*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==1 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,newvalume,Bid,slippage,0,Ask-((gap_loss_points+take_profit)*Point),NULL,magicnumber,0,clrRed);

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((2*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==2 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,(first_volume*multiply)*multiply,Ask,slippage,0,Bid+(((gap_loss_points*2)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((2*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==2 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,(first_volume*multiply)*multiply,Bid,slippage,0,Ask-(((gap_loss_points*2)+take_profit)*Point),NULL,magicnumber,0,clrRed);

      double volume2= (first_volume*multiply)*(multiply*multiply);
      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((3*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==3 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,volume2,Ask,slippage,0,Bid+(((gap_loss_points*3)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((3*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==3 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,volume2,Bid,slippage,0,Ask-(((gap_loss_points*3)+take_profit)*Point),NULL,magicnumber,0,clrRed);

      double anoo=(first_volume*multiply)*(multiply*multiply)*multiply;
      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((4*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==4 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,anoo,Ask,slippage,0,Bid+(((gap_loss_points*4)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((4*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==4 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,anoo,Bid,slippage,0,Ask-(((gap_loss_points*4)+take_profit)*Point),NULL,magicnumber,0,clrRed);
      double anoo1=(first_volume*multiply)*(multiply*multiply)*(multiply*multiply);

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((5*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==5 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,anoo1,Ask,slippage,0,Bid+(((gap_loss_points*5)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((5*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==5 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,anoo1,Bid,slippage,0,Ask-(((gap_loss_points*5)+take_profit)*Point),NULL,magicnumber,0,clrRed);

      double anoo2=(first_volume*multiply)*(multiply*multiply)*(multiply*multiply)*multiply;

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((6*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==6 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,anoo2,Ask,slippage,0,Bid+(((gap_loss_points*6)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((6*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==6 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,anoo2,Bid,slippage,0,Ask-(((gap_loss_points*6)+take_profit)*Point),NULL,magicnumber,0,clrRed);
      double anoo3=(first_volume*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply);

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((7*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==7 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,anoo3,Ask,slippage,0,Bid+(((gap_loss_points*7)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((7*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==7 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,anoo3,Bid,slippage,0,Ask-(((gap_loss_points*7)+take_profit)*Point),NULL,magicnumber,0,clrRed);



      double anoo4=(first_volume*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*multiply;

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((8*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==8 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,anoo4,Ask,slippage,0,Bid+(((gap_loss_points*8)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((8*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==8 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,anoo4,Bid,slippage,0,Ask-(((gap_loss_points*8)+take_profit)*Point),NULL,magicnumber,0,clrRed);
      double anoo5=(first_volume*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply);

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((9*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==9 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,anoo5,Ask,slippage,0,Bid+(((gap_loss_points*9)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((9*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==9 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,anoo5,Bid,slippage,0,Ask-(((gap_loss_points*9)+take_profit)*Point),NULL,magicnumber,0,clrRed);
      double anoo6=(first_volume*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*multiply;

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((10*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==10 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,anoo6,Ask,slippage,0,Bid+(((gap_loss_points*10)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((10*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==10 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,anoo6,Bid,slippage,0,Ask-(((gap_loss_points*10)+take_profit)*Point),NULL,magicnumber,0,clrRed);



      double anoo7=(first_volume*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply);

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((11*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==11 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,anoo7,Ask,slippage,0,Bid+(((gap_loss_points*11)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((11*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==11 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,anoo7,Bid,slippage,0,Ask-(((gap_loss_points*11)+take_profit)*Point),NULL,magicnumber,0,clrRed);

      double anoo8=(first_volume*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*multiply;

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((12*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==12 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,anoo8,Ask,slippage,0,Bid+(((gap_loss_points*12)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((12*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==12 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,anoo8,Bid,slippage,0,Ask-(((gap_loss_points*12)+take_profit)*Point),NULL,magicnumber,0,clrRed);
      double anoo9=(first_volume*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply);

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((13*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==13 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,anoo9,Ask,slippage,0,Bid+(((gap_loss_points*13)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((13*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==13 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,anoo9,Bid,slippage,0,Ask-(((gap_loss_points*13)+take_profit)*Point),NULL,magicnumber,0,clrRed);

      double anoo10=(first_volume*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*multiply;


      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((14*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==14 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,anoo10,Ask,slippage,0,Bid+(((gap_loss_points*14)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((14*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==14 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,anoo10,Bid,slippage,0,Ask-(((gap_loss_points*14)+take_profit)*Point),NULL,magicnumber,0,clrRed);


      double mas1=(first_volume*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply);

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((15*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==15 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,mas1,Ask,slippage,0,Bid+(((gap_loss_points*14)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((15*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==15 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,mas1,Bid,slippage,0,Ask-(((gap_loss_points*14)+take_profit)*Point),NULL,magicnumber,0,clrRed);

      double mas2=mas1*multiply;

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((16*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==16 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,mas2,Ask,slippage,0,Bid+(((gap_loss_points*15)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((16*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==16 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,mas2,Bid,slippage,0,Ask-(((gap_loss_points*15)+take_profit)*Point),NULL,magicnumber,0,clrRed);
      double mas3=(mas1*multiply)*multiply;

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((17*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==17 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,mas3,Ask,slippage,0,Bid+(((gap_loss_points*16)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((17*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==17 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,mas3,Bid,slippage,0,Ask-(((gap_loss_points*16)+take_profit)*Point),NULL,magicnumber,0,clrRed);
      double mas4=(mas1*multiply)*(multiply*multiply);

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((18*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==18 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,mas4,Ask,slippage,0,Bid+(((gap_loss_points*17)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((18*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==18 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,mas4,Bid,slippage,0,Ask-(((gap_loss_points*17)+take_profit)*Point),NULL,magicnumber,0,clrRed);


      double mas5=(mas1*multiply)*(multiply*multiply)*multiply;

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((19*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==19 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,mas5,Ask,slippage,0,Bid+(((gap_loss_points*18)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((19*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==19 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,mas5,Bid,slippage,0,Ask-(((gap_loss_points*18)+take_profit)*Point),NULL,magicnumber,0,clrRed);
      double ma6=(mas1*multiply)*(multiply*multiply)*(multiply*multiply);


      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((20*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==20 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,ma6,Ask,slippage,0,Bid+(((gap_loss_points*19)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((20*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==20 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,ma6,Bid,slippage,0,Ask-(((gap_loss_points*19)+take_profit)*Point),NULL,magicnumber,0,clrRed);
      double ma7=(mas1*multiply)*(multiply*multiply)*(multiply*multiply)*multiply;

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((21*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==21 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,ma7,Ask,slippage,0,Bid+(((gap_loss_points*20)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((21*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==21 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,ma7,Bid,slippage,0,Ask-(((gap_loss_points*20)+take_profit)*Point),NULL,magicnumber,0,clrRed);
      double ma8=(mas1*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply);

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((22*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==22 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,ma8,Ask,slippage,0,Bid+(((gap_loss_points*21)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((22*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==22 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,ma8,Bid,slippage,0,Ask-(((gap_loss_points*21)+take_profit)*Point),NULL,magicnumber,0,clrRed);
      double ma9=(mas1*multiply)*(multiply*multiply)*(multiply*multiply)*(multiply*multiply)*multiply;

      if(OrderType()==OP_BUY && OrderOpenPrice()>OrderClosePrice()+ ((23*gap_loss_points)*Point) +spreadbuy  && OrderSymbol()==Symbol() && nabood()==23 && nabood()<= max_steps_entry)
         bool buynnewq= OrderSend(OrderSymbol(),OP_BUY,ma9,Ask,slippage,0,Bid+(((gap_loss_points*22)+take_profit)*Point),NULL,magicnumber,0,clrGreen);
      if(OrderType()==OP_SELL && OrderOpenPrice()+ ((23*gap_loss_points)*Point) - spreadbuy< OrderClosePrice()  && OrderSymbol()==Symbol() && nabood()==23 && nabood()<= max_steps_entry)
         bool SELLnnewq= OrderSend(OrderSymbol(),OP_SELL,ma9,Bid,slippage,0,Ask-(((gap_loss_points*22)+take_profit)*Point),NULL,magicnumber,0,clrRed);




     }




   if(info_on_screen==true)
     {
      Comment("Balance:  ", NormalizeDouble(AccountBalance(),2),"\n","Aquity:  ", NormalizeDouble(AccountEquity(),2),"\n","Magicnumber:  ",magicnumber,"\n","volume_total:  ",gond(),"\n","total profit/loss daily :  ",NormalizeDouble(sond(),2),"\n","total profit/loss weekly:  ",NormalizeDouble(sondweak(),2),"\n","total profit/loss monthly :  ",NormalizeDouble(sondmonth(),2));
     }



// for(int i=OrdersTotal()-1; i>=0; i--)
// {
//  bool entekhab=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
// if(OrderMagicNumber()==magicnumber)
//  {

// if(EMA_MODE== true)
// {
//if(OrderType()== OP_BUY && ema(EMA_PERIOD,EMA_SHIFT)=="sell")
//  bool bastanema=OrderClose(OrderTicket(),Trade_Volume,Bid,slippage,clrBlue);
// if(OrderType()== OP_SELL && ema(EMA_PERIOD,EMA_SHIFT)=="buy")
//   bool bastanema1=OrderClose(OrderTicket(),Trade_Volume,Ask,slippage,clrBlack);
// }

//if(stochastic_MODE= true)
//{
// if(OrderType()== OP_BUY && stochastic(k_period,d_period,slowing)=="sell")
//  bool bastanema=OrderClose(OrderTicket(),Trade_Volume,Bid,slippage,clrBlue);
//            if(OrderType()== OP_SELL && stochastic(k_period,d_period,slowing)=="buy")
//             bool bastanema2=OrderClose(OrderTicket(),Trade_Volume,Ask,slippage,clrBlack);
//       }
//
//       if(macd_mode== true)
//       {
//      if(OrderType()== OP_BUY && macd(macd_fast_period,macd_slow_period,macd_signal_period)=="sell")
//       bool bastanst6=OrderClose(OrderTicket(),Trade_Volume,Bid,slippage,clrBlue);
//  if(OrderType()== OP_SELL && macd(macd_fast_period,macd_slow_period,macd_signal_period)=="buy")
//   bool bastanst7=OrderClose(OrderTicket(),Trade_Volume,Ask,slippage,clrBlack);
//           }

//       if(rsi_mode== true)
//       {
//      if(OrderType()== OP_BUY && rsi(rsi_period)=="sell")
//       bool bastanst5=OrderClose(OrderTicket(),Trade_Volume,Bid,slippage,clrBlue);
//  if(OrderType()== OP_SELL && rsi(rsi_period)=="buy")
//   bool bastanst10=OrderClose(OrderTicket(),Trade_Volume,Ask,slippage,clrBlack);
// }
//    }
// }

// bastan();
   if(use_time_filter==false)
     {
      if(ema(EMA_PERIOD,EMA_SHIFT)=="buy" && nabood()==0 &&EMA_MODE== true)
         bool buyema=OrderSend(Symbol(),OP_BUY,first_volume,Ask,slippage,0,Bid+(take_profit*Point),NULL,magicnumber,0,clrGreen);
      if(ema(EMA_PERIOD,EMA_SHIFT)=="sell" && nabood()==0 &&EMA_MODE== true)
         bool sellema=OrderSend(Symbol(),OP_SELL,first_volume,Bid,slippage,0,Ask-(take_profit*Point),NULL,magicnumber,0,clrRed);
      if(stochastic(k_period,d_period,slowing)=="buy" && nabood()==0 && stochastic_MODE== true)
         bool buystoch=OrderSend(Symbol(),OP_BUY,first_volume,Ask,slippage,0,Bid+(take_profit*Point),NULL,magicnumber,0,clrGreen);
      if(stochastic(k_period,d_period,slowing)=="sell" && nabood()==0 && stochastic_MODE== true)
         bool sellstoch=OrderSend(Symbol(),OP_SELL,first_volume,Bid,slippage,0,Ask-(take_profit*Point),NULL,magicnumber,0,clrRed);
      if(macd(macd_fast_period,macd_slow_period,macd_signal_period)=="buy" && nabood()==0 && macd_mode== true)
         bool buymacd=OrderSend(Symbol(),OP_BUY,first_volume,Ask,slippage,0,Bid+(take_profit*Point),NULL,magicnumber,0,clrGreen);
      if(macd(macd_fast_period,macd_slow_period,macd_signal_period)=="sell" && nabood()==0 && macd_mode== true)
         bool sellmacd=OrderSend(Symbol(),OP_SELL,first_volume,Bid,slippage,0,Ask-(take_profit*Point),NULL,magicnumber,0,clrRed);
      if(rsi(rsi_period)=="buy" && nabood()==0 && rsi_mode== true)
         bool buyrsi=OrderSend(Symbol(),OP_BUY,first_volume,Ask,slippage,0,Bid+(take_profit*Point),NULL,magicnumber,0,clrGreen);
      if(rsi(rsi_period)=="sell" && nabood()==0 && rsi_mode== true)
         bool sellrsi=OrderSend(Symbol(),OP_SELL,first_volume,Bid,slippage,0,Ask-(take_profit*Point),NULL,magicnumber,0,clrRed);
      if(bolinger_bands == true && nabood()==0&& bolinger(bolinger_period,bolinger_deviation,bolinger_shift) =="buy")
         bool buyrxdethti=OrderSend(Symbol(),OP_BUY,first_volume,Ask,slippage,0,Bid+(take_profit*Point),NULL,magicnumber,0,clrGreen);
      if(bolinger_bands == true && nabood()==0 && bolinger(bolinger_period,bolinger_deviation,bolinger_shift)=="sell")
         bool sellfdhazgdhi=OrderSend(Symbol(),OP_SELL,first_volume,Bid,slippage,0,Ask-(take_profit*Point),NULL,magicnumber,0,clrRed);

     }

   if(use_time_filter==true)
     {
      if(Hour() >=starting_hour && Hour() < closing_hour)
        {
         if(ema(EMA_PERIOD,EMA_SHIFT)=="buy" && nabood()==0 &&EMA_MODE== true)
            int buyema=OrderSend(Symbol(),OP_BUY,first_volume,Ask,slippage,0,Bid+(take_profit*Point),NULL,magicnumber,0,clrGreen);
         if(ema(EMA_PERIOD,EMA_SHIFT)=="sell" && nabood()==0 &&EMA_MODE== true)
            int sellema=OrderSend(Symbol(),OP_SELL,first_volume,Bid,slippage,0,Ask-(take_profit*Point),NULL,magicnumber,0,clrRed);
         if(stochastic(k_period,d_period,slowing)=="buy" && nabood()==0 && stochastic_MODE== true)
            int buystoch=OrderSend(Symbol(),OP_BUY,first_volume,Ask,slippage,0,Bid+(take_profit*Point),NULL,magicnumber,0,clrGreen);
         if(stochastic(k_period,d_period,slowing)=="sell" && nabood()==0 && stochastic_MODE== true)
            int sellstoch=OrderSend(Symbol(),OP_SELL,first_volume,Bid,slippage,0,Ask-(take_profit*Point),NULL,magicnumber,0,clrRed);
         if(macd(macd_fast_period,macd_slow_period,macd_signal_period)=="buy" && nabood()==0 && macd_mode== true)
            int buymacd=OrderSend(Symbol(),OP_BUY,first_volume,Ask,slippage,0,Bid+(take_profit*Point),NULL,magicnumber,0,clrGreen);
         if(macd(macd_fast_period,macd_slow_period,macd_signal_period)=="sell" && nabood()==0 && macd_mode== true)
            int sellmacd=OrderSend(Symbol(),OP_SELL,first_volume,Bid,slippage,0,Ask-(take_profit*Point),NULL,magicnumber,0,clrRed);
         if(rsi(rsi_period)=="buy" && nabood()==0 && rsi_mode== true)
            int buyrsi=OrderSend(Symbol(),OP_BUY,first_volume,Ask,slippage,0,Bid+(take_profit*Point),NULL,magicnumber,0,clrGreen);
         if(rsi(rsi_period)=="sell" && nabood()==0 && rsi_mode== true)
            int sellrsi=OrderSend(Symbol(),OP_SELL,first_volume,Bid,slippage,0,Ask-(take_profit*Point),NULL,magicnumber,0,clrRed);
         if(bolinger_bands == true && nabood()==0&& bolinger(bolinger_period,bolinger_deviation,bolinger_shift) =="buy")
            bool buyrxdethti=OrderSend(Symbol(),OP_BUY,first_volume,Ask,slippage,0,Bid+(take_profit*Point),NULL,magicnumber,0,clrGreen);
         if(bolinger_bands == true && nabood()==0 && bolinger(bolinger_period,bolinger_deviation,bolinger_shift)=="sell")
            bool sellfdhazgdhi=OrderSend(Symbol(),OP_SELL,first_volume,Bid,slippage,0,Ask-(take_profit*Point),NULL,magicnumber,0,clrRed);
        }
     }
  }

//+----------------------ema------------------------------+
string ema(int zaman,int shif1)
  {
   double m =iMA(Symbol(),0,zaman,shif1,MODE_EMA,PRICE_TYPICAL,1);
   if(m<Ask)
      return("buy");
   if(m >Ask)
      return("sell");
   else
      return("no");
  }
//+-----------------------stochastic----------------------------------------+
string stochastic(int adadk,int adad_d,int ada_slowing)
  {
   double m= iStochastic(Symbol(),0,adadk,adad_d,ada_slowing,0,0,MODE_MAIN,1);
   double n= iStochastic(Symbol(),0,adadk,adad_d,ada_slowing,0,0,MODE_SIGNAL,1);
   if(m>n)
      return("buy");
   if(m<n)
      return("sell");
   else
      return("no");
  }
//+------------------------macd------------------------------------+
string macd(int fast,int slow, int signal)
  {
   double m =iMACD(Symbol(),0,fast,slow,signal,PRICE_TYPICAL,MODE_MAIN,1);
   double n =iMACD(Symbol(),0,fast,slow,signal,PRICE_TYPICAL,MODE_SIGNAL,1);
   if(m>n)
      return("buy");
   if(m<n)
      return("sell");
   else
      return("no");
  }
//+-------------------------rsi-----------------------------------------+
string rsi(int period1)
  {
   double m=iRSI(Symbol(),0,period1,PRICE_TYPICAL,1);
   if(m<20)
      return ("buy");
   if(m>80)
      return ("sell");
   else
      return("no");

  }
//+------------------------------------------------------------------+
int nabood()
  {
   int m=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      bool entekhab=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol())
        {
         m=m+1;
        }
     }
   return(m);
  }
//+------------------------ bastan kol--------------------------------+
double  gond()
  {
   double m=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      bool entekhab=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

      double n= OrderLots();
      m=m+n;

     }
   return(m);
  }
//+------------------------------------------------------------------+
string bolinger(int zamani,double deaviatin,int shiftin)
  {
   double m=iBands(Symbol(),0,zamani,deaviatin,shiftin,PRICE_TYPICAL,1,1);
   double n=iBands(Symbol(),0,zamani,deaviatin,shiftin,PRICE_TYPICAL,2,1);
   if(Ask < n)
      return ("buy");
   if(Bid > m)
      return ("sell");
   else
      return("no");
  }
//+------------------------------------------------------------------+
double  mond()
  {
   double m=0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      bool entekhab=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
      if(TimeDay(OrderCloseTime())==Day())
        {
         double n= OrderProfit();
         m=m+n;
        }
     }
   return(m);
  }
//+------------------------------------------------------------------+
double  sond()
  {
   double m=0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      bool entekhab=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
      if(TimeDay(OrderCloseTime())==Day())
        {
         double n= OrderProfit();
         m=m+n;
        }
      else
         break;
     }
   return(m);
  }
//+------------------------------------------------------------------+
double  sondweak()
  {
   double m=0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      bool entekhab=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
      if(TimeDay(OrderCloseTime())<=Day())
        {
         double n= OrderProfit();
         m=m+n;
        }
      else
         break;
     }
   return(m);
  }
//+------------------------------------------------------------------+
double  sondmonth()
  {
   double m=0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      bool entekhab=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
      if(TimeMonth(OrderCloseTime())==Month())
        {
         double n= OrderProfit();
         m=m+n;
        }
      else
         break;
     }
   return(m);
  }


//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double kiir()
  {
   double m=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      bool entekhab=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol())
        {
         m=m+OrderProfit();
        }
     }
   return(m);
  }
//+------------------------------------------------------------------+
