/*
   Generated by EX4-TO-MQ4 decompiler V4.0.225.1g []
   Website: http://purebeam.biz
   E-mail : purebeam@gmail.com
*/
#property copyright "Copyright © 2009, Forex Factory."
#property link      "http://www.forexfactory.com"

#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Red
#property indicator_color2 Green
#property indicator_color3 Crimson
#property indicator_color4 Green
#property indicator_color5 Crimson
#property indicator_color6 Green
#property indicator_color7 Crimson
#property indicator_color8 Green

double g_ibuf_76[];
double g_ibuf_80[];
double g_ibuf_84[];
double g_ibuf_88[];
double g_ibuf_92[];
double g_ibuf_96[];
double g_ibuf_100[];
double g_ibuf_104[];
double gd_108;
double gd_116;
double gd_124;
double gd_132;
double gd_140;
double gd_148;
double gd_156;
double gd_164;
double g_ilow_172;
double g_ihigh_180;
double g_timeframe_188;
int g_fontsize_196 = 8;

int deinit() {
   ObjectDelete("Hi1");
   ObjectDelete("Lo1");
   ObjectDelete("Hi2");
   ObjectDelete("Lo2");
   ObjectDelete("Hi3");
   ObjectDelete("Lo3");
   ObjectDelete("Hi4");
   ObjectDelete("Lo4");
   return (0);
}

int init() {
   SetIndexStyle(0, DRAW_ARROW);
   SetIndexArrow(0, 167);
   SetIndexStyle(1, DRAW_ARROW);
   SetIndexArrow(1, 167);
   SetIndexStyle(2, DRAW_ARROW);
   SetIndexArrow(2, 160);
   SetIndexStyle(3, DRAW_ARROW);
   SetIndexArrow(3, 160);
   SetIndexStyle(4, DRAW_ARROW);
   SetIndexArrow(4, 160);
   SetIndexStyle(5, DRAW_ARROW);
   SetIndexArrow(5, 160);
   SetIndexStyle(6, DRAW_ARROW);
   SetIndexArrow(6, 160);
   SetIndexStyle(7, DRAW_ARROW);
   SetIndexArrow(7, 160);
   SetIndexBuffer(0, g_ibuf_76);
   SetIndexBuffer(1, g_ibuf_80);
   SetIndexBuffer(2, g_ibuf_84);
   SetIndexBuffer(3, g_ibuf_88);
   SetIndexBuffer(4, g_ibuf_92);
   SetIndexBuffer(5, g_ibuf_96);
   SetIndexBuffer(6, g_ibuf_100);
   SetIndexBuffer(7, g_ibuf_104);
   SetIndexLabel(0, NULL);
   SetIndexLabel(1, NULL);
   SetIndexLabel(2, NULL);
   SetIndexLabel(3, NULL);
   SetIndexLabel(4, NULL);
   SetIndexLabel(5, NULL);
   SetIndexLabel(6, NULL);
   SetIndexLabel(7, NULL);
   string ls_0 = "20 buffer Ace284 Tp 1,2,3";
   IndicatorShortName(ls_0);
   SetIndexLabel(0, ls_0);
   SetIndexDrawBegin(0, 1);
   return (0);
}

int start() {
   int li_8;
   int l_ind_counted_0 = IndicatorCounted();
   if (l_ind_counted_0 < 0) return (-1);
   int li_4 = Bars - l_ind_counted_0 - 1;
   g_timeframe_188 = Period();
   if (g_timeframe_188 > 240.0) return (-1);
   if (li_8 == 0) {
      Print(li_8);
      ObjectCreate("Hi1", OBJ_TEXT, 0, 100, 0);
      ObjectSetText("Hi1", "                             Box High  " + DoubleToStr(gd_116, 4), g_fontsize_196, "Arial bold ", Green);
      SetIndexLabel(0, "Hi1");
      ObjectCreate("Lo1", OBJ_TEXT, 0, 100, 0);
      ObjectSetText("Lo1", "                             Box Low  " + DoubleToStr(gd_108, 4), g_fontsize_196, "Arial bold ", Red);
      SetIndexLabel(1, "Lo1");
      ObjectCreate("Hi2", OBJ_TEXT, 0, 100, 0);
      ObjectSetText("Hi2", "                            TP1 " + DoubleToStr(gd_132, 4), g_fontsize_196, "Arial bold ", Green);
      SetIndexLabel(2, "Hi2");
      ObjectCreate("Lo2", OBJ_TEXT, 0, 100, 0);
      ObjectSetText("Lo2", "                            TP1 " + DoubleToStr(gd_124, 4), g_fontsize_196, "Arial bold ", Red);
      SetIndexLabel(3, "Lo2");
      ObjectCreate("Hi3", OBJ_TEXT, 0, 100, 0);
      ObjectSetText("Hi3", "                            TP2 " + DoubleToStr(gd_148, 4), g_fontsize_196, "Arial bold ", Green);
      SetIndexLabel(4, "Hi3");
      ObjectCreate("Lo3", OBJ_TEXT, 0, 100, 0);
      ObjectSetText("Lo3", "                            TP2 " + DoubleToStr(gd_140, 4), g_fontsize_196, "Arial bold ", Red);
      SetIndexLabel(5, "Lo3");
      ObjectCreate("Hi4", OBJ_TEXT, 0, 100, 0);
      ObjectSetText("Hi4", "                            TP3 " + DoubleToStr(gd_164, 4), g_fontsize_196, "Arial bold ", Green);
      SetIndexLabel(6, "Hi4");
      ObjectCreate("Lo4", OBJ_TEXT, 0, 100, 0);
      ObjectSetText("Lo4", "                            TP3 " + DoubleToStr(gd_156, 4), g_fontsize_196, "Arial bold ", Red);
      SetIndexLabel(6, "Lo4");
      Print("ObjectSet Done");
      ObjectMove("Hi4", 0, 100, gd_164);
      ObjectMove("Hi3", 0, 100, gd_148);
      ObjectMove("Hi2", 0, 100, gd_132);
      ObjectMove("Hi1", 0, 100, gd_116);
      ObjectMove("Lo1", 0, 100, gd_108);
      ObjectMove("Lo2", 0, 100, gd_124);
      ObjectMove("Lo3", 0, 100, gd_140);
      ObjectMove("Lo4", 0, 100, gd_156);
      Print("ObjectMove Done");
      ObjectsRedraw();
      Print("ObjectsRedraw Done");
   }
   if (l_ind_counted_0 < 0) return (-1);
   for (li_8 = li_4; li_8 >= 0; li_8--) {
      if (TimeDayOfWeek(Time[li_8]) == 1 && TimeDayOfWeek(Time[li_8 + 1]) != 1) {
         g_ihigh_180 = iHigh(NULL, PERIOD_H4, li_8);
         g_ilow_172 = iLow(NULL, PERIOD_H4, li_8);
      }
      gd_116 = g_ihigh_180 + 0.2;
      gd_108 = g_ilow_172 - 0.2;
      gd_132 = gd_116 + (gd_116 - gd_108);
      gd_124 = gd_108 - (gd_116 - gd_108);
      gd_148 = gd_116 + 2.0 * (gd_116 - gd_108);
      gd_140 = gd_108 - 2.0 * (gd_116 - gd_108);
      gd_164 = gd_116 + 3.0 * (gd_116 - gd_108);
      gd_156 = gd_108 - 3.0 * (gd_116 - gd_108);
      g_ibuf_76[li_8] = gd_108;
      g_ibuf_80[li_8] = gd_116;
      g_ibuf_84[li_8] = gd_124;
      g_ibuf_88[li_8] = gd_132;
      g_ibuf_92[li_8] = gd_140;
      g_ibuf_96[li_8] = gd_148;
      g_ibuf_100[li_8] = gd_156;
      g_ibuf_104[li_8] = gd_164;
      ObjectMove("Hi1", 0, Time[li_8], gd_116);
      ObjectMove("Lo1", 0, Time[li_8], gd_108);
      ObjectMove("Hi2", 0, Time[li_8], gd_132);
      ObjectMove("Lo2", 0, Time[li_8], gd_124);
      ObjectMove("Hi3", 0, Time[li_8], gd_148);
      ObjectMove("Lo3", 0, Time[li_8], gd_140);
      ObjectMove("Hi4", 0, Time[li_8], gd_164);
      ObjectMove("Lo4", 0, Time[li_8], gd_156);
   }
   return (0);
}
