/*
   Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
   Website: http://purebeam.biz
   E-mail : purebeam@gmail.com
*/
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window

extern int PeriodsToPlot = 24;
extern bool Hourly = FALSE;
extern bool FourHourly = FALSE;
extern bool Daily = TRUE;
extern bool Weekly = FALSE;
extern bool Monthly = FALSE;
extern bool PivotAverage = TRUE;
extern int NumPivotsToAve = 3;
extern color PPAveColour = Blue;
extern bool Alarm = FALSE;
extern bool PredictedPivot = FALSE;
extern color ExtremeSupportColour = LightGreen;
extern color ExtremeResistanceColour = LightCoral;
double gda_128[200];
double gd_132;
double gd_140;
double gd_148;
double gda_156[][6];
double g_price_160;
double g_price_168;
double g_price_176;
double g_price_184;
double g_price_192;
double gd_200;
double g_price_208;
double gd_216;
double gd_224;
double g_price_232;
double g_price_240;
double g_price_248;
double gd_256;
int g_timeframe_264;
int gi_268;
string gs_272;
double gd_unused_280;
string gs_dummy_296;
double g_price_312;
string gs_null_320 = "NULL";
double gd_328;

int init() {
   gd_328 = Point;
   if (Point == 0.00001 || Point == 0.001) gd_328 = 10.0 * gd_328;
   return (0);
}

int deinit() {
   for (int l_count_0 = 0; l_count_0 <= PeriodsToPlot; l_count_0++) {
      ObjectDelete("R2M4" + l_count_0);
      ObjectDelete("R1" + l_count_0);
      ObjectDelete("M3" + l_count_0);
      ObjectDelete("PP" + l_count_0);
      ObjectDelete("M2" + l_count_0);
      ObjectDelete("S1" + l_count_0);
      ObjectDelete("M1S2" + l_count_0);
      ObjectDelete("R3" + l_count_0);
      ObjectDelete("M5" + l_count_0);
      ObjectDelete("M0" + l_count_0);
      ObjectDelete("S3" + l_count_0);
      ObjectDelete("RangeBox" + l_count_0);
      ObjectDelete("PPAverage" + l_count_0);
   }
   ObjectDelete("PivotLabel");
   ObjectDelete("R1_Label");
   ObjectDelete("R2_Label");
   ObjectDelete("R3_Label");
   ObjectDelete("S1_Label");
   ObjectDelete("S2_Label");
   ObjectDelete("S3_Label");
   ObjectDelete("M0_Label");
   ObjectDelete("M1_Label");
   ObjectDelete("M2_Label");
   ObjectDelete("M3_Label");
   ObjectDelete("M4_Label");
   ObjectDelete("M5_Label");
   ObjectDelete("PPAverage");
   ObjectDelete("PredictedCPP");
   return (0);
}

int start() {
   double l_price_8;
   deinit();
   if (Alarm) Comment("Pivot Alarm On");
   else Comment("Pivot Alarm Off");
   if (Hourly == TRUE) {
      g_timeframe_264 = 60;
      gs_272 = "H";
      gi_268 = 3600;
   } else {
      if (FourHourly == TRUE) {
         g_timeframe_264 = 240;
         gs_272 = "4H";
         gi_268 = 14400;
      } else {
         if (Daily == TRUE) {
            g_timeframe_264 = 1440;
            gs_272 = "D";
            gi_268 = 86400;
         } else {
            if (Weekly == TRUE) {
               g_timeframe_264 = 10080;
               gs_272 = "W";
               gi_268 = 604800;
            } else {
               g_timeframe_264 = 43200;
               gs_272 = "M";
               gi_268 = 2629743;
            }
         }
      }
   }
   ArrayCopyRates(gda_156, Symbol(), g_timeframe_264);
   for (int l_index_0 = 0; l_index_0 <= PeriodsToPlot; l_index_0++) {
      gd_132 = gda_156[l_index_0 + 1][3];
      gd_140 = gda_156[l_index_0 + 1][2];
      gd_148 = gda_156[l_index_0 + 1][4];
      g_price_160 = (gd_132 + gd_140 + gd_148) / 3.0;
      g_price_312 = (gda_156[0][3] + gda_156[0][2] + gda_156[0][4]) / 3.0;
      g_price_192 = 2.0 * g_price_160 - gd_140;
      g_price_168 = 2.0 * g_price_160 - gd_132;
      gd_200 = g_price_160 + gd_132 - gd_140;
      g_price_176 = g_price_160 - gd_132 + gd_140;
      g_price_184 = gd_140 - 2.0 * (gd_132 - g_price_160);
      g_price_208 = gd_132 + 2.0 * (g_price_160 - gd_140);
      gd_216 = (g_price_184 + g_price_176) / 2.0;
      gd_224 = (g_price_176 + g_price_168) / 2.0;
      g_price_232 = (g_price_168 + g_price_160) / 2.0;
      g_price_240 = (g_price_160 + g_price_192) / 2.0;
      g_price_248 = (g_price_192 + gd_200) / 2.0;
      gd_256 = (gd_200 + g_price_208) / 2.0;
      if (l_index_0 == 0) {
         ObjectCreate("PP" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0][0] + gi_268, g_price_160);
         ObjectSet("PP" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("PP" + l_index_0, OBJPROP_COLOR, Black);
         ObjectSet("PP" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("PP" + l_index_0, OBJPROP_WIDTH, 3);
         ObjectSet("PP" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("PP" + l_index_0, OBJPROP_PRICE2, g_price_160);
         if (ObjectFind("PivotLabel") != 0) {
            ObjectCreate("PivotLabel", OBJ_TEXT, 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_160);
            ObjectSetText("PivotLabel", "                    " + gs_272 + "PP " + DoubleToStr(g_price_160, 4), 8, "Arial", Black);
         } else ObjectMove("PivotLabel", 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_160);
         if (PredictedPivot) {
            ObjectCreate("PredictedCPP", OBJ_TREND, 0, gda_156[l_index_0][0], g_price_312);
            ObjectSet("PredictedCPP", OBJPROP_RAY, FALSE);
            ObjectSet("PredictedCPP", OBJPROP_COLOR, Black);
            ObjectSet("PredictedCPP", OBJPROP_STYLE, STYLE_DASH);
            ObjectSet("PredictedCPP", OBJPROP_WIDTH, 1);
            ObjectSet("PredictedCPP", OBJPROP_TIME2, gda_156[l_index_0][0] + gi_268);
            ObjectSet("PredictedCPP", OBJPROP_PRICE2, g_price_312);
            ObjectSetText("PredictedCPP", "P. CPP");
         }
         ObjectCreate("M3" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0][0] + gi_268, g_price_240);
         ObjectSet("M3" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("M3" + l_index_0, OBJPROP_COLOR, Red);
         ObjectSet("M3" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("M3" + l_index_0, OBJPROP_WIDTH, 1);
         ObjectSet("M3" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("M3" + l_index_0, OBJPROP_PRICE2, g_price_240);
         if (ObjectFind("M3_Label") != 0) {
            ObjectCreate("M3_Label", OBJ_TEXT, 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_240);
            ObjectSetText("M3_Label", "                    " + gs_272 + "M3 " + DoubleToStr(g_price_240, 4), 8, "Arial", Red);
         } else ObjectMove("M3_Label", 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_240);
         ObjectCreate("R1" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0][0] + gi_268, g_price_192);
         ObjectSet("R1" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("R1" + l_index_0, OBJPROP_COLOR, Red);
         ObjectSet("R1" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("R1" + l_index_0, OBJPROP_WIDTH, 2);
         ObjectSet("R1" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("R1" + l_index_0, OBJPROP_PRICE2, g_price_192);
         if (ObjectFind("R1_Label") != 0) {
            ObjectCreate("R1_Label", OBJ_TEXT, 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_192);
            ObjectSetText("R1_Label", "                    " + gs_272 + "R1 " + DoubleToStr(g_price_192, 4), 8, "Arial", Red);
         } else ObjectMove("R1_Label", 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_192);
         ObjectCreate("R2M4" + l_index_0, OBJ_RECTANGLE, 0, gda_156[l_index_0][0], g_price_248);
         ObjectSet("R2M4" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0] + gi_268);
         ObjectSet("R2M4" + l_index_0, OBJPROP_PRICE2, gd_200);
         ObjectSet("R2M4" + l_index_0, OBJPROP_COLOR, ExtremeResistanceColour);
         if (ObjectFind("M4_Label") != 0) {
            ObjectCreate("M4_Label", OBJ_TEXT, 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_248);
            ObjectSetText("M4_Label", "                    " + gs_272 + "M4 " + DoubleToStr(g_price_248, 4), 8, "Arial", Red);
         } else ObjectMove("M4_Label", 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_248);
         if (ObjectFind("R2_Label") != 0) {
            ObjectCreate("R2_Label", OBJ_TEXT, 0, Time[l_index_0] + g_timeframe_264 << 2, gd_200);
            ObjectSetText("R2_Label", "                    " + gs_272 + "R2 " + DoubleToStr(gd_200, 4), 8, "Arial", Black);
         } else ObjectMove("R2_Label", 0, Time[l_index_0] + g_timeframe_264 << 2, gd_200);
         ObjectCreate("R3" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0][0] + gi_268, g_price_208);
         ObjectSet("R3" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("R3" + l_index_0, OBJPROP_COLOR, Red);
         ObjectSet("R3" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("R3" + l_index_0, OBJPROP_WIDTH, 2);
         ObjectSet("R3" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("R3" + l_index_0, OBJPROP_PRICE2, g_price_208);
         if (ObjectFind("R3_Label") != 0) {
            ObjectCreate("R3_Label", OBJ_TEXT, 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_208);
            ObjectSetText("R3_Label", "                    " + gs_272 + "R3 " + DoubleToStr(g_price_208, 4), 8, "Arial", Red);
         } else ObjectMove("R3_Label", 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_208);
         ObjectCreate("M2" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0][0] + gi_268, g_price_232);
         ObjectSet("M2" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("M2" + l_index_0, OBJPROP_COLOR, Green);
         ObjectSet("M2" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("M2" + l_index_0, OBJPROP_WIDTH, 1);
         ObjectSet("M2" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("M2" + l_index_0, OBJPROP_PRICE2, g_price_232);
         if (ObjectFind("M2_Label") != 0) {
            ObjectCreate("M2_Label", OBJ_TEXT, 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_232);
            ObjectSetText("M2_Label", "                    " + gs_272 + "M2 " + DoubleToStr(g_price_232, 4), 8, "Arial", Green);
         } else ObjectMove("M2_Label", 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_232);
         ObjectCreate("S1" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0][0] + gi_268, g_price_168);
         ObjectSet("S1" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("S1" + l_index_0, OBJPROP_COLOR, Green);
         ObjectSet("S1" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("S1" + l_index_0, OBJPROP_WIDTH, 2);
         ObjectSet("S1" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("S1" + l_index_0, OBJPROP_PRICE2, g_price_168);
         if (ObjectFind("S1_Label") != 0) {
            ObjectCreate("S1_Label", OBJ_TEXT, 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_168);
            ObjectSetText("S1_Label", "                    " + gs_272 + "S1 " + DoubleToStr(g_price_168, 4), 8, "Arial", Green);
         } else ObjectMove("S1_Label", 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_168);
         ObjectCreate("M1S2" + l_index_0, OBJ_RECTANGLE, 0, gda_156[l_index_0][0], g_price_176);
         ObjectSet("M1S2" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0] + gi_268);
         ObjectSet("M1S2" + l_index_0, OBJPROP_PRICE2, gd_224);
         ObjectSet("M1S2" + l_index_0, OBJPROP_COLOR, ExtremeSupportColour);
         if (ObjectFind("M1_Label") != 0) {
            ObjectCreate("M1_Label", OBJ_TEXT, 0, Time[l_index_0] + g_timeframe_264 << 2, gd_224);
            ObjectSetText("M1_Label", "                    " + gs_272 + "M1 " + DoubleToStr(gd_224, 4), 8, "Arial", Black);
         } else ObjectMove("M1_Label", 0, Time[l_index_0] + g_timeframe_264 << 2, gd_224);
         if (ObjectFind("S2_Label") != 0) {
            ObjectCreate("S2_Label", OBJ_TEXT, 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_176);
            ObjectSetText("S2_Label", "                    " + gs_272 + "S2 " + DoubleToStr(g_price_176, 4), 8, "Arial", Green);
         } else ObjectMove("S2_Label", 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_176);
         ObjectCreate("S3" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0][0] + gi_268, g_price_184);
         ObjectSet("S3" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("S3" + l_index_0, OBJPROP_COLOR, Green);
         ObjectSet("S3" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("S3" + l_index_0, OBJPROP_WIDTH, 2);
         ObjectSet("S3" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("S3" + l_index_0, OBJPROP_PRICE2, g_price_184);
         if (ObjectFind("S3_Label") != 0) {
            ObjectCreate("S3_Label", OBJ_TEXT, 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_184);
            ObjectSetText("S3_Label", "                    " + gs_272 + "S3 " + DoubleToStr(g_price_184, 4), 8, "Arial", Green);
         } else ObjectMove("S3_Label", 0, Time[l_index_0] + g_timeframe_264 << 2, g_price_184);
         gda_128[l_index_0] = g_price_160;
         if (Alarm && gs_null_320 != TimeToStr(Time[0], TIME_DATE|TIME_MINUTES)) {
            if (DoubleToStr(Ask, 4) >= DoubleToStr(g_price_248, 4)) {
               Alert(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached M4 resistance");
               SendMail(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached M4 resistance");
               gs_null_320 = TimeToStr(Time[0], TIME_DATE|TIME_MINUTES);
            }
            if (DoubleToStr(Ask, 4) >= DoubleToStr(g_price_208, 4)) {
               Alert(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached R3 resistance");
               SendMail(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached R3 resistance");
               gs_null_320 = TimeToStr(Time[0], TIME_DATE|TIME_MINUTES);
            }
            if (DoubleToStr(Ask, 4) >= DoubleToStr(gd_200, 4)) {
               Alert(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached R2 resistance");
               SendMail(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached R2 resistance");
               gs_null_320 = TimeToStr(Time[0], TIME_DATE|TIME_MINUTES);
            }
            if (DoubleToStr(Bid, 4) <= DoubleToStr(gd_224, 4)) {
               Alert(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached M1 support");
               SendMail(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached M1 support");
               gs_null_320 = TimeToStr(Time[0], TIME_DATE|TIME_MINUTES);
            }
            if (DoubleToStr(Bid, 4) == DoubleToStr(g_price_160, 4) || DoubleToStr(Ask, 4) == DoubleToStr(g_price_160, 4)) {
               Alert(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price at CPP");
               SendMail(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price at CPP");
               gs_null_320 = TimeToStr(Time[0], TIME_DATE|TIME_MINUTES);
            }
            if (DoubleToStr(Bid, 4) >= DoubleToStr(g_price_184, 4)) {
               Alert(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached S3 support");
               SendMail(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached S3 support");
               gs_null_320 = TimeToStr(Time[0], TIME_DATE|TIME_MINUTES);
            }
            if (DoubleToStr(Bid, 4) >= DoubleToStr(g_price_176, 4)) {
               Alert(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached S2 support");
               SendMail(TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES) + " - " + Symbol() + " " + gs_272 + " Pivot Point Alert", " Price breached S2 support");
               gs_null_320 = TimeToStr(Time[0], TIME_DATE|TIME_MINUTES);
            }
         }
      } else {
         ObjectCreate("PP" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0 - 1][0], g_price_160);
         ObjectSet("PP" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("PP" + l_index_0, OBJPROP_COLOR, Black);
         ObjectSet("PP" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("PP" + l_index_0, OBJPROP_WIDTH, 3);
         ObjectSet("PP" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("PP" + l_index_0, OBJPROP_PRICE2, g_price_160);
         ObjectCreate("M3" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0 - 1][0], g_price_240);
         ObjectSet("M3" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("M3" + l_index_0, OBJPROP_COLOR, Red);
         ObjectSet("M3" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("M3" + l_index_0, OBJPROP_WIDTH, 1);
         ObjectSet("M3" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("M3" + l_index_0, OBJPROP_PRICE2, g_price_240);
         ObjectCreate("R1" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0 - 1][0], g_price_192);
         ObjectSet("R1" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("R1" + l_index_0, OBJPROP_COLOR, Red);
         ObjectSet("R1" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("R1" + l_index_0, OBJPROP_WIDTH, 2);
         ObjectSet("R1" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("R1" + l_index_0, OBJPROP_PRICE2, g_price_192);
         ObjectCreate("R2M4" + l_index_0, OBJ_RECTANGLE, 0, gda_156[l_index_0][0], g_price_248);
         ObjectSet("R2M4" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0 - 1][0]);
         ObjectSet("R2M4" + l_index_0, OBJPROP_PRICE2, gd_200);
         ObjectSet("R2M4" + l_index_0, OBJPROP_COLOR, ExtremeResistanceColour);
         if (gs_272 == "H" || gs_272 == "4H") ObjectSetText("R2M4" + l_index_0, TimeToStr(gda_156[l_index_0 - 1][0] + 14400.0, TIME_MINUTES));
         ObjectCreate("R3" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0 - 1][0], g_price_208);
         ObjectSet("R3" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("R3" + l_index_0, OBJPROP_COLOR, Red);
         ObjectSet("R3" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("R3" + l_index_0, OBJPROP_WIDTH, 2);
         ObjectSet("R3" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("R3" + l_index_0, OBJPROP_PRICE2, g_price_208);
         ObjectCreate("M2" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0 - 1][0], g_price_232);
         ObjectSet("M2" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("M2" + l_index_0, OBJPROP_COLOR, Green);
         ObjectSet("M2" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("M2" + l_index_0, OBJPROP_WIDTH, 1);
         ObjectSet("M2" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("M2" + l_index_0, OBJPROP_PRICE2, g_price_232);
         ObjectCreate("S1" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0 - 1][0], g_price_168);
         ObjectSet("S1" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("S1" + l_index_0, OBJPROP_COLOR, Green);
         ObjectSet("S1" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("S1" + l_index_0, OBJPROP_WIDTH, 2);
         ObjectSet("S1" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("S1" + l_index_0, OBJPROP_PRICE2, g_price_168);
         ObjectCreate("M1S2" + l_index_0, OBJ_RECTANGLE, 0, gda_156[l_index_0][0], g_price_176);
         ObjectSet("M1S2" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0 - 1][0]);
         ObjectSet("M1S2" + l_index_0, OBJPROP_PRICE2, gd_224);
         ObjectSet("M1S2" + l_index_0, OBJPROP_COLOR, ExtremeSupportColour);
         ObjectCreate("S3" + l_index_0, OBJ_TREND, 0, gda_156[l_index_0 - 1][0], g_price_184);
         ObjectSet("S3" + l_index_0, OBJPROP_RAY, FALSE);
         ObjectSet("S3" + l_index_0, OBJPROP_COLOR, Green);
         ObjectSet("S3" + l_index_0, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("S3" + l_index_0, OBJPROP_WIDTH, 2);
         ObjectSet("S3" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0][0]);
         ObjectSet("S3" + l_index_0, OBJPROP_PRICE2, g_price_184);
         if (l_index_0 > 1) {
            ObjectCreate("RangeBox" + l_index_0, OBJ_RECTANGLE, 0, gda_156[l_index_0][0], g_price_176);
            ObjectSet("RangeBox" + l_index_0, OBJPROP_TIME2, gda_156[l_index_0 - 1][0]);
            ObjectSet("RangeBox" + l_index_0, OBJPROP_PRICE2, gd_200);
            ObjectSet("RangeBox" + l_index_0, OBJPROP_BACK, FALSE);
            ObjectSet("RangeBox" + l_index_0, OBJPROP_WIDTH, 2);
         }
         gda_128[l_index_0] = g_price_160;
      }
      if (l_index_0 > 1) {
         ObjectSet("RangeBox" + l_index_0, OBJPROP_COLOR, Black);
         ObjectSet("RangeBox" + l_index_0, OBJPROP_BACK, FALSE);
         ObjectSet("RangeBox" + l_index_0, OBJPROP_WIDTH, 2);
      }
   }
   if (PivotAverage == TRUE) {
      for (int l_index_4 = 0; l_index_4 <= PeriodsToPlot - NumPivotsToAve; l_index_4++) {
         for (int li_16 = 1; li_16 <= NumPivotsToAve; li_16++) l_price_8 += gda_128[l_index_4 + li_16];
         l_price_8 /= NumPivotsToAve;
         if (l_index_4 == 0) {
            ObjectCreate("PPAverage" + l_index_4, OBJ_TREND, 0, gda_156[l_index_4][0], l_price_8);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_RAY, FALSE);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_COLOR, PPAveColour);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_STYLE, STYLE_DASH);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_WIDTH, 1);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_TIME2, gda_156[l_index_4][0] + gi_268);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_PRICE2, l_price_8);
         } else {
            ObjectCreate("PPAverage" + l_index_4, OBJ_TREND, 0, gda_156[l_index_4][0], l_price_8);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_RAY, FALSE);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_COLOR, PPAveColour);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_STYLE, STYLE_DASH);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_WIDTH, 1);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_TIME2, gda_156[l_index_4 - 1][0]);
            ObjectSet("PPAverage" + l_index_4, OBJPROP_PRICE2, l_price_8);
         }
         l_price_8 = 0;
      }
   }
   gd_unused_280 = 0;
   ObjectsRedraw();
   return (0);
}
