/*
   Generated by EX4-TO-MQ4 decompiler V4.0.438.4 [-]
   Website: https://purebeam.biz
   E-mail : purebeam@gmail.com
*/
#property copyright "Copyright © 2012, forex4live.com"
#property link      "http://www.forex4live.com/"

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 CLR_NONE
#property indicator_color2 CLR_NONE
#property indicator_color3 Red
#property indicator_color4 DodgerBlue
#property indicator_color5 CLR_NONE
#property indicator_color6 CLR_NONE

int gi_76 = 9;
int gi_80 = 9;
int gi_84 = 0;
int gi_88 = 7;
double gd_92;
double gd_100;
double gd_108;
double gd_116 = 0.0;
double gd_124;
double gd_132 = 0.0;
double gd_140;
double gd_148;
int gi_156 = 0;
double gd_unused_160 = 0.0;
int gi_unused_168 = 0;
double g_ibuf_172[];
double g_ibuf_176[];
double g_ibuf_180[];
double g_ibuf_184[];
double g_ibuf_188[];
double g_ibuf_192[];
double g_ibuf_196[];
double g_ibuf_200[];

int init() {
   string lsa_0[256];
   for (int index_4 = 0; index_4 < 256; index_4++) lsa_0[index_4] = CharToStr(index_4);
   int str2int_8 = StrToInteger(lsa_0[67] + lsa_0[111] + lsa_0[112] + lsa_0[121] + lsa_0[32] + lsa_0[82] + lsa_0[105] + lsa_0[103] + lsa_0[104] + lsa_0[116] + lsa_0[32] +
      lsa_0[169] + lsa_0[32] + lsa_0[75] + lsa_0[97] + lsa_0[122] + lsa_0[97] + lsa_0[111] + lsa_0[111] + lsa_0[32] + lsa_0[50] + lsa_0[48] + lsa_0[49] + lsa_0[49] + lsa_0[32]);
   IndicatorBuffers(8);
   SetIndexBuffer(6, g_ibuf_180);
   SetIndexBuffer(7, g_ibuf_184);
   IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS));
   SetIndexStyle(0, DRAW_NONE, STYLE_SOLID);
   SetIndexBuffer(0, g_ibuf_172);
   SetIndexStyle(1, DRAW_NONE, STYLE_SOLID);
   SetIndexBuffer(1, g_ibuf_176);
   SetIndexDrawBegin(0, gi_80 + 1);
   SetIndexDrawBegin(1, gi_80 + 1);
   SetIndexDrawBegin(2, gi_80 + 1);
   SetIndexDrawBegin(3, gi_80 + 1);
   SetIndexDrawBegin(4, gi_80 + 1);
   SetIndexDrawBegin(5, gi_80 + 1);
   SetIndexStyle(2, DRAW_HISTOGRAM);
   SetIndexBuffer(2, g_ibuf_188);
   SetIndexStyle(3, DRAW_HISTOGRAM);
   SetIndexBuffer(3, g_ibuf_192);
   SetIndexStyle(4, DRAW_NONE, STYLE_SOLID);
   SetIndexBuffer(4, g_ibuf_196);
   SetIndexStyle(5, DRAW_NONE, STYLE_SOLID);
   SetIndexBuffer(5, g_ibuf_200);
   IndicatorShortName("FL10");
   SetIndexLabel(0, "Line1");
   SetIndexLabel(1, "Line2");
   SetIndexLabel(2, "Bar1");
   SetIndexLabel(3, "Bar2");
   SetIndexLabel(4, "Sig1");
   SetIndexLabel(5, "Sig2");
   return (0);
}

int deinit() {
   return (0);
}

int start() {
   int li_0;
   int li_unused_4 = MarketInfo(Symbol(), MODE_DIGITS);
   if (Bars <= gi_80) return (0);
   int ind_counted_8 = IndicatorCounted();
   if (ind_counted_8 == 0) li_0 = Bars - 1;
   if (ind_counted_8 > 0) li_0 = Bars - ind_counted_8 - 1;
   for (int li_12 = li_0; li_12 >= 0; li_12--) {
      gd_92 = High[iHighest(NULL, 0, MODE_HIGH, gi_76, li_12)] + gi_84 * Point;
      gd_100 = Low[iLowest(NULL, 0, MODE_LOW, gi_76, li_12)] - gi_84 * Point;
      gd_108 = High[iHighest(NULL, 0, MODE_HIGH, gi_80, li_12)] + gi_88 * Point;
      gd_116 = Low[iLowest(NULL, 0, MODE_LOW, gi_80, li_12)] - gi_88 * Point;
      if (Close[li_12] > g_ibuf_172[li_12 + 1]) gd_124 = gd_100;
      else gd_124 = gd_92;
      if (Close[li_12] > g_ibuf_176[li_12 + 1]) gd_132 = gd_116;
      else gd_132 = gd_108;
      g_ibuf_172[li_12] = gd_124;
      g_ibuf_176[li_12] = gd_132;
      gd_140 = 0.0;
      gd_148 = 0.0;
      if (Close[li_12] < gd_124 && Close[li_12] < gd_132) {
         gd_140 = High[li_12];
         gd_148 = Low[li_12];
      }
      if (Close[li_12] > gd_124 && Close[li_12] > gd_132) {
         gd_140 = Low[li_12];
         gd_148 = High[li_12];
      }
      g_ibuf_188[li_12] = gd_140;
      g_ibuf_192[li_12] = gd_148;
      if (Close[li_12] > gd_132 && Close[li_12] > gd_124 && gi_156 != 1) {
         g_ibuf_196[li_12] = gd_132;
         g_ibuf_200[li_12] = EMPTY_VALUE;
         gi_156 = 1;
      }
      if (Close[li_12] < gd_132 && Close[li_12] < gd_124 && gi_156 != 2) {
         g_ibuf_200[li_12] = gd_132;
         g_ibuf_196[li_12] = EMPTY_VALUE;
         gi_156 = 2;
      }
   }
   return (0);
}
