

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red

int Gi_76 = 7;
double Gd_80 = 50.6;
int G_bars_88 = 3000;
double G_ibuf_92[];
double G_ibuf_96[];
double G_ibuf_100[];
double G_ibuf_104[];

int init() {
   IndicatorBuffers(4);
   SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2);
   SetIndexBuffer(0, G_ibuf_100);
   SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2);
   SetIndexBuffer(1, G_ibuf_104);
   SetIndexBuffer(2, G_ibuf_92);
   SetIndexBuffer(3, G_ibuf_96);
   IndicatorShortName("TD 3");
   return (0);
}

int deinit() {
   return (0);
}

int start() {
   double Ld_0;
   double Ld_8;
   double Ld_16;
   if (G_bars_88 >= Bars) G_bars_88 = Bars;
   SetIndexDrawBegin(0, Bars - G_bars_88 + Gi_76);
   SetIndexDrawBegin(1, Bars - G_bars_88 + Gi_76);
   int ind_counted_24 = IndicatorCounted();
   if (Bars <= Gi_76 + 1) return (0);
   if (ind_counted_24 < Gi_76 + 1) {
      for (int Li_28 = 1; Li_28 <= Gi_76; Li_28++) G_ibuf_92[G_bars_88 - Li_28] = 0.0;
      for (Li_28 = 1; Li_28 <= Gi_76; Li_28++) G_ibuf_96[G_bars_88 - Li_28] = 0.0;
   }
   for (Li_28 = G_bars_88 - Gi_76; Li_28 >= 0; Li_28--) {
      Ld_0 = High[iHighest(NULL, 0, MODE_HIGH, Gi_76, Li_28 - Gi_76 + 1)];
      Ld_8 = Low[iLowest(NULL, 0, MODE_LOW, Gi_76, Li_28 - Gi_76 + 1)];
      Ld_16 = Ld_0 - (Ld_0 - Ld_8) * Gd_80 / 100.0;
      G_ibuf_92[Li_28 - Gi_76 + 6] = Ld_16;
      G_ibuf_96[Li_28 - Gi_76 - 1] = Ld_16;
   }
   for (int Li_32 = G_bars_88 - Gi_76; Li_32 >= 0; Li_32--) {
      if (G_ibuf_92[Li_32] > G_ibuf_96[Li_32]) {
         G_ibuf_100[Li_32] = 1;
         G_ibuf_104[Li_32] = 0;
      } else {
         G_ibuf_100[Li_32] = 0;
         G_ibuf_104[Li_32] = 1;
      }
   }
   return (0);
}
