#property copyright "flatfx"
#property link      ""

#property indicator_separate_window
#property indicator_minimum 0.0
#property indicator_maximum 1.0
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Lime
#property indicator_color3 Gray

extern int flat_use = 8;
extern int flat_up = 8;
extern int flat_period = 5;
extern int flat_down = 11;
extern int flat_bars = 98980;
double G_ibuf_96[];
double G_ibuf_100[];
double G_ibuf_104[];
string Gs_unused_108;
double G_imacd_116;
double G_imacd_124;

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_DASHDOTDOT, 5, Red);
   SetIndexBuffer(0, G_ibuf_96);
   SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_DASHDOTDOT, 5, Lime);
   SetIndexBuffer(1, G_ibuf_100);
   SetIndexStyle(2, DRAW_HISTOGRAM, STYLE_DASHDOTDOT, 5, Gray);
   SetIndexBuffer(2, G_ibuf_104);
   switch (flat_use) {
   case 1:
      Gs_unused_108 = "Per_M1";
      break;
   case 5:
      Gs_unused_108 = "Per_M5";
      break;
   case 15:
      Gs_unused_108 = "Per_M15";
      break;
   case 30:
      Gs_unused_108 = "Per_M30";
      break;
   case 60:
      Gs_unused_108 = "Per_H1";
      break;
   case 240:
      Gs_unused_108 = "Per_H4";
      break;
   case 1440:
      Gs_unused_108 = "Per_D1";
      break;
   case 10080:
      Gs_unused_108 = "Per_W1";
      break;
   case 43200:
      Gs_unused_108 = "Per_MN1";
      break;
   default:
      Gs_unused_108 = "Timeframe";
      flat_use = 0;
   }
   return (0);
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
   return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   Comment("");
   int ind_counted_0 = IndicatorCounted();
   for (int shift_4 = 0; shift_4 < flat_bars; shift_4++) {
      G_ibuf_96[shift_4] = 0;
      G_ibuf_100[shift_4] = 0;
      G_ibuf_104[shift_4] = 0;
      G_imacd_116 = iMACD(NULL, flat_use, flat_up, flat_down, flat_period, PRICE_CLOSE, MODE_SIGNAL, shift_4);
      G_imacd_124 = iMACD(NULL, flat_use, flat_up, flat_down, flat_period, PRICE_CLOSE, MODE_MAIN, shift_4);
      if (G_imacd_116 < G_imacd_124 && G_imacd_124 > 0.0) G_ibuf_100[shift_4] = 1;
      if (G_imacd_116 > G_imacd_124 && G_imacd_124 < 0.0) G_ibuf_96[shift_4] = 1;
      if (G_ibuf_96[shift_4] == 0.0 && G_ibuf_100[shift_4] == 0.0) G_ibuf_104[shift_4] = 1;
   }
   return (0);
}