/*
   G e n e r a t e d  by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
   Website: h TTp : / / w w W.m eT A qUOTe s.N et
   E-mail :  sU PPoR t@m E TA Q uO te s . NE t
*/

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Gold
#property indicator_color2 Green

extern bool Allert=true;
extern bool Istoriy = true;
extern bool Rsi=true;
extern bool Cci_1=true;
extern bool Cci_2=true;
extern bool Stoh=true;
extern bool DIMI=true;
extern int Rasst_Arrow=10;
extern int Up_arrow=234;
extern int Down_arrow=233;
extern int Shift=1;
extern string comm1="Параметры RSI";
extern int Period_RSI=8;
extern int Primenit_k_RSI=0;
extern double RSI_lewel_UP=70;
extern double RSI_lewel_DOWN=30;
extern string comm2="Параметры CCI_1";
extern int CCI_1_period=14;
extern int CCI_1_primenit_k=0;
extern double CCI_1_UP=100;
extern double CCI_1_DOWN=-100;
extern string comm3="Параметры CCI_2";
extern int CCI_2_period=7;
extern int CCI_2_primenit_k=0;
extern double CCI_2_UP=100;
extern double CCI_2_DOWN=-100;
extern string comm4="Параметры Stoh";
extern int Period_K=5;
extern int ZAmedlenie=2;
extern int Period_D=3;
extern int  Ceni    =0;
extern int Metod_MA=0;
extern double Stoh_UP=80;
extern double Stoh_DOWN=20;
extern string comm5="Параметры Dymi";
extern int stdevLength = 5;
extern int avgOfStdevLength = 10;
extern int DYMILength = 30;
extern int DYMILengthLowerLimit = 3;
extern int DYMILengthUpperLimit = 30;
extern double DYMIL_UP=60;
extern double DYMIL_DOWN=40;






int Gi_84 = 24;
bool Gi_88 = FALSE;
double G_ibuf_92[];
double G_ibuf_96[];


int G_bars_100 = 0;
int Bbars;
double RSI,CCI_1,CCI_2,STOH_m,STOH_s,Dymil;
int n,n1,n2,n3,n4,n5;
int m,m1,m2,m3,m4,m5;
string c;
// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, 3);
   SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID, 3);
   
   SetIndexArrow(1, Down_arrow);
   SetIndexArrow(0, Up_arrow);

   SetIndexBuffer(0, G_ibuf_92);
   SetIndexBuffer(1, G_ibuf_96);
  
   G_bars_100 = Bars;
   return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   
   int Li_8 = IndicatorCounted();
   if (Li_8 < 0) return (-1);
   if (Li_8 > 0) Li_8--;
   int Li_12 = Bars - 1;
   if (Li_8 >= 1) Li_12 = Bars - Li_8 - 1;
   if (Li_12 < 0) Li_12 = 0;
   //Li_12=100;
   if(Istoriy==true)
   {
   for (int Li_16 = Li_12; Li_16 >= 0; Li_16--) {
   
   RSI=NormalizeDouble(iRSI(Symbol(),PERIOD_CURRENT,Period_RSI,Primenit_k_RSI,Li_16+Shift),4);
   CCI_1=NormalizeDouble(iCCI(Symbol(),PERIOD_CURRENT,CCI_1_period,CCI_1_primenit_k,Li_16+Shift),4);
   CCI_2=NormalizeDouble(iCCI(Symbol(),PERIOD_CURRENT,CCI_2_period,CCI_1_primenit_k,Li_16+Shift),4);
   STOH_m=NormalizeDouble(iStochastic(Symbol(),PERIOD_CURRENT,Period_K,Period_D,ZAmedlenie,Metod_MA,Ceni,0,Li_16+Shift),4);
   STOH_s=NormalizeDouble(iStochastic(Symbol(),PERIOD_CURRENT,Period_K,Period_D,ZAmedlenie,Metod_MA,Ceni,1,Li_16+Shift),4);
   Dymil=NormalizeDouble(iCustom(Symbol(),PERIOD_CURRENT,"DYMI",stdevLength,avgOfStdevLength,DYMILength,DYMILengthLowerLimit,DYMILengthUpperLimit,0,Li_16+Shift),4);
   if(Rsi)
   {if(RSI>RSI_lewel_UP)n1=1;else n1=0;
   }else n1=1;
  
  if(Cci_1)
  {if(CCI_1>CCI_1_UP)n2=1;else n2=0;
   }else n2=1;
  if(Cci_2)
  {if(CCI_2>CCI_2_UP)n3=1;else n3=0;
   }else n3=1;
   
  if(Stoh)
  {if(STOH_m>Stoh_UP&&STOH_s>Stoh_UP)n4=1;else n4=0;
   }else n4=1;
   
   if(DIMI)
   {if (Dymil>DYMIL_UP)n=1;else n=0;
   }else n=1;
  
    n5=n1*n2*n3*n4*n;
  
   if(n5>0 )
    {G_ibuf_92[Li_16] =Imaxx(Li_16)+Rasst_Arrow*Point;}
    
    //////////////////////////////////////////////////////////////////////////////////////////////////




if(Rsi)
   {if(RSI<RSI_lewel_DOWN)m1=1;else m1=0;
   }else m1=1;
if(Cci_1)
  {if(CCI_1<CCI_1_DOWN)m2=1;else m2=0;
   }else m2=1;
if(Cci_2)
  {if(CCI_2<CCI_2_DOWN)m3=1;else m3=0;
   }else m3=1;

 if(Stoh)
  {if(STOH_m<Stoh_DOWN&&STOH_s<Stoh_DOWN)m4=1;else m4=0;
   }else m4=1;

if(DIMI)
   {if (Dymil<DYMIL_DOWN)m=1;else m=0;
   }else m=1;
  
    m5=m1*m2*m3*m4*m;
  
   if(m5>0 )
    {G_ibuf_96[Li_16] =Iminn(Li_16)-Rasst_Arrow*Point;}
  
   
  




    //
   
   }
   }
   /////////////////////////////////////
   if(n5>0 )
    {G_ibuf_92[Li_16] =Imaxx(Li_16)+Rasst_Arrow*Point;
    c=Symbol()+" "+f0_0(Seconds())+"Sell!";
    if(Allert&&Bbars!=Bars){Alert(c);Bbars=Bars;}
    }
   
   if(m5>0 )
    {G_ibuf_96[Li_16] =Iminn(Li_16)-Rasst_Arrow*Point;
    c=Symbol()+" "+f0_0(Seconds())+"Bay!";
   if(Allert&&Bbars!=Bars){Alert(c);Bbars=Bars;}
    
   }
   
  
   
   
   
  
   return (0);
}

// 9B1AEE847CFB597942D106A4135D4FE6
int f0_1() {
   bool Li_ret_0 = FALSE;
   if (G_bars_100 != Bars) {
      Li_ret_0 = TRUE;
      G_bars_100 = Bars;
      Gi_88 = TRUE;
   }
   return (Li_ret_0);
}

// 945D754CB0DC06D04243FCBA25FC0802
string f0_0(int Ai_0) {
   if (Ai_0 == 60) return ("M1");
   if (Ai_0 == 300) return ("M5");
   if (Ai_0 == 900) return ("M15");
   if (Ai_0 == 1800) return ("M30");
   if (Ai_0 == 3600) return ("H1");
   if (Ai_0 == 14400) return ("H4");
   if (Ai_0 == 86400) return ("D1");
   if (Ai_0 == 604800) return ("W1");
   if (Ai_0 == 1619200) return ("MN1");
   return ("");
}

 double Imaxx(int Per)
   {double perr;
    perr = NormalizeDouble (iHigh(Symbol(),0,Per),Digits);
    return (perr);
   }
   //---Миниму--//
   double Iminn(int Per)
   {double perr;
    perr = NormalizeDouble (iLow(Symbol(),0,Per),Digits);
    return (perr);
   }
   //--Цена открытия--//
   double Cotkr(int Per)
   {double perr;
    perr = NormalizeDouble (iOpen(Symbol(),0,Per),Digits);
    return (perr);
    }
    //--Цена закрытия--//
    double Czakr(int Per)
   {double perr;
    perr = NormalizeDouble (iClose(Symbol(),0,Per),Digits);
    return (perr);
   }
   