/*
   Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
   Website: http://purebeam.biz
   E-mail : purebeam@gmail.com
*/

#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 Red
#property indicator_color2 DodgerBlue
#property indicator_color3 CadetBlue
#property indicator_color4 Red
#property indicator_color5 Red
#property indicator_color6 RoyalBlue
#property indicator_color7 RoyalBlue
#property indicator_color8 PaleGreen

extern int TCCIp = 7;
extern int CCIp = 13;
extern double overbslevel = 200.0;
extern double triglevel = 50.0;
extern double weight = 1.0;
double g_ibuf_108[];
double g_ibuf_112[];
double g_ibuf_116[];
double g_ibuf_120[];
double g_ibuf_124[];
double g_ibuf_128[];
double g_ibuf_132[];
double g_ibuf_136[];
int gi_unused_140 = 0;
string gs_unused_144 = "ZERO";

int init() {
   SetIndexStyle(0, DRAW_LINE);
   SetIndexBuffer(0, g_ibuf_108);
   SetIndexLabel(0, "Turbo CCI");
   SetIndexStyle(1, DRAW_LINE, STYLE_DASH, 3);
   SetIndexBuffer(1, g_ibuf_112);
   SetIndexLabel(2, "CCI");
   SetIndexStyle(2, DRAW_HISTOGRAM);
   SetIndexBuffer(2, g_ibuf_116);
   SetIndexStyle(3, DRAW_LINE, STYLE_DASH, 3);
   SetIndexLabel(3, "CCI");
   SetIndexBuffer(3, g_ibuf_120);
   SetIndexStyle(4, DRAW_LINE, STYLE_DASH, 3);
   SetIndexBuffer(4, g_ibuf_124);
   SetIndexStyle(5, DRAW_LINE, STYLE_DASH, 1);
   SetIndexBuffer(5, g_ibuf_128);
   SetIndexStyle(6, DRAW_LINE, STYLE_DASH, 1);
   SetIndexBuffer(6, g_ibuf_132);
   SetIndexStyle(7, DRAW_LINE, STYLE_DASH, 1);
   SetIndexBuffer(7, g_ibuf_136);
   SetIndexDrawBegin(0, 50);
   SetIndexDrawBegin(1, 50);
   SetIndexDrawBegin(2, 50);
   SetIndexDrawBegin(3, 50);
   SetIndexDrawBegin(4, 50);
   SetIndexDrawBegin(5, 50);
   SetIndexDrawBegin(6, 50);
   SetIndexDrawBegin(7, 50);
   return (0);
}

int deinit() {
   return (0);
}

int start() {
   double ld_24;
   double ld_32;
   int l_ind_counted_0 = IndicatorCounted();
   if (l_ind_counted_0 < 0) return (-1);
   int li_4 = Bars - l_ind_counted_0;
   double ld_8 = 0.0;
   int li_unused_16 = 0;
   for (int li_20 = 0; li_20 <= li_4; li_20++) {
      ld_24 = iCCI(NULL, 0, CCIp, PRICE_TYPICAL, li_20);
      ld_32 = iCCI(NULL, 0, TCCIp, PRICE_TYPICAL, li_20);
      if (weight == 0.0) ld_8 = 0;
      else {
         ld_8 = weight * iATR(NULL, 0, 7, li_20) / iATR(NULL, 0, 49, li_20);
         ld_24 *= ld_8;
         ld_32 *= ld_8;
      }
      if (ld_32 > overbslevel + 50.0) ld_32 = overbslevel + 50.0;
      if (ld_24 > overbslevel + 50.0) ld_24 = overbslevel + 50.0;
      if (ld_24 < (-overbslevel) - 50.0) ld_24 = (-overbslevel) - 50.0;
      if (ld_32 < (-overbslevel) - 50.0) ld_32 = (-overbslevel) - 50.0;
      g_ibuf_108[li_20] = ld_32;
      g_ibuf_112[li_20] = ld_24;
      g_ibuf_116[li_20] = ld_24;
      g_ibuf_120[li_20] = overbslevel;
      g_ibuf_124[li_20] = -overbslevel;
      g_ibuf_128[li_20] = triglevel;
      g_ibuf_132[li_20] = -triglevel;
      g_ibuf_136[li_20] = 0;
   }
   return (0);
}
