


#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Black
#property indicator_color2 Black
#property indicator_color3 Black
#property indicator_color4 Black
#property indicator_color5 Black
#property indicator_color6 Black
#property indicator_color7 Black
#property indicator_color8 Black


extern int LineWidth = 1;
extern int Present_Retrace_Min = 80;
extern int Present_Retrace_Max = 140;
extern int Min_Target_Pips = 5;
extern int Enable_Target = 0;
extern int High_Low_Mode = 1;
extern int Fibo_Mode = 0;
extern int use_no_of_Bars = 250;
extern int show_all = 0;
extern int Fibo_On = 1;
extern int Neckline_On = 1;
int gi_136 = 1;
int gi_140 = 0;
int gi_144 = 0;
int gi_148 = 0;
int gi_152 = 0;
int gi_156 = 0;
int gi_160 = 1;
bool gi_164;
extern color Head_High = Red;
extern color Shoulder_High = Blue;
extern color Head_Low = Yellow;
extern color Shoulder_Low = Green;
extern color Fibo = Black;
extern int RSIPeriod = 9;
int gi_unused_192 = 0;
double gda_196[9];
int gia_200[8];
double gda_204[9];
int gia_208[8];
double gda_212[5];
double gda_216[5];
double g_high_220;
int g_highest_228;
double g_low_232;
int g_lowest_240;
double g_low_244;
int g_lowest_252;
double g_high_256;
int g_highest_264;
double gd_268 = 0.0;
double g_high_276 = 0.0;
double gd_284 = 0.0;
double g_high_292 = 0.0;
string gs_300;
int gi_308;
int gi_312;
int gi_316;
int gi_320;
int gi_324;
int gi_328;
int gi_332;
int gi_336;
int gi_340;
int gi_344;
int gi_348;
int gi_352;
int gi_356;
int gi_360;
int gi_364;
int gi_368;
int g_count_372;
double g_ibuf_376[];
double g_ibuf_380[];
double g_ibuf_384[];
double g_ibuf_388[];
double g_ibuf_392[];
double g_ibuf_396[];
double g_ibuf_400[];
double g_ibuf_404[];
double gda_unused_408[];
double gda_unused_412[];
double gda_unused_416[];
double gda_unused_420[];
double g_irsi_424;
double g_irsi_432;
double g_irsi_440;
double g_irsi_448;
double g_irsi_456;
double g_irsi_464;
double g_irsi_472;
double g_irsi_480;
double g_irsi_488;
double g_irsi_496;
double g_irsi_504;
double g_irsi_512;
double g_irsi_520;
double g_irsi_528;
double g_irsi_536;
double g_irsi_544;
double g_irsi_552;
double g_irsi_560;
double g_irsi_568;
double g_irsi_576;
double g_irsi_584;
double g_irsi_592;
double g_irsi_600;
double g_irsi_608;
double g_irsi_616;
double g_irsi_624;
double g_irsi_632;
double g_irsi_640;
double g_irsi_648;
double g_irsi_656;
double g_irsi_664;
double g_irsi_672;
double g_irsi_680;
double g_irsi_688;
double g_irsi_696;
double g_irsi_704;
int gi_712;
int gi_716;
int gi_720;
int gi_724;
int gi_728;
int gi_732;
double gd_736;
double g_price_744;
double gd_752;
double gd_760;
double g_price_768;
double g_price_776;
string gs_784;

int init() {
  
   IndicatorBuffers(8);
   SetIndexStyle(0, DRAW_NONE);
   SetIndexStyle(1, DRAW_NONE);
   SetIndexStyle(2, DRAW_NONE);
   SetIndexStyle(3, DRAW_NONE);
   SetIndexStyle(4, DRAW_NONE);
   SetIndexStyle(5, DRAW_NONE);
   SetIndexStyle(6, DRAW_NONE);
   SetIndexStyle(7, DRAW_NONE);
   gs_300 = "Kings Crown - Head and Shoulders";
   IndicatorShortName(gs_300);
   SetIndexLabel(0, "Stop");
   SetIndexLabel(1, "Enter");
   SetIndexLabel(2, "Trade_Down");
   SetIndexLabel(3, "Stop");
   SetIndexLabel(4, "Enter");
   SetIndexLabel(5, "Trade_UP");
   SetIndexLabel(6, "D_Retrace");
   SetIndexLabel(7, "U_Retrace");
   SetIndexBuffer(0, g_ibuf_376);
   SetIndexBuffer(1, g_ibuf_380);
   SetIndexBuffer(2, g_ibuf_384);
   SetIndexBuffer(3, g_ibuf_388);
   SetIndexBuffer(4, g_ibuf_392);
   SetIndexBuffer(5, g_ibuf_396);
   SetIndexBuffer(6, g_ibuf_400);
   SetIndexBuffer(7, g_ibuf_404);
   SetIndexDrawBegin(0, 0);
   SetIndexDrawBegin(1, 0);
   SetIndexDrawBegin(2, 0);
   SetIndexDrawBegin(3, 0);
   SetIndexDrawBegin(4, 0);
   SetIndexDrawBegin(5, 0);
   SetIndexDrawBegin(6, 0);
   SetIndexDrawBegin(7, 0);
   DeleteObj();
   return (0);
}

int deinit() {
   DeleteObj();
   return (0);
}

int Alarm_Message() {
   PlaySound("alert.wav");
   Alert(gs_784);
   return (0);
}

int DeleteObj() {
   ObjectDelete("L0");
   ObjectDelete("L1");
   ObjectDelete("L2");
   ObjectDelete("L3");
   ObjectDelete("L4");
   ObjectDelete("L5");
   ObjectDelete("L6");
   ObjectDelete("L7");
   ObjectDelete("L8");
   ObjectDelete("L9");
   ObjectDelete("H0");
   ObjectDelete("H1");
   ObjectDelete("H2");
   ObjectDelete("H3");
   ObjectDelete("H4");
   ObjectDelete("H5");
   ObjectDelete("H6");
   ObjectDelete("H7");
   ObjectDelete("H8");
   ObjectDelete("H9");
   ObjectDelete("Target");
   ObjectDelete("HR1");
   ObjectDelete("HR2");
   ObjectDelete("LR1");
   ObjectDelete("LR2");
   for (int li_0 = use_no_of_Bars; li_0 >= 0; li_0--) {
      ObjectDelete("H0" + li_0);
      ObjectDelete("H1" + li_0);
      ObjectDelete("H2" + li_0);
      ObjectDelete("H3" + li_0);
      ObjectDelete("H4" + li_0);
      ObjectDelete("H5" + li_0);
      ObjectDelete("H6" + li_0);
      ObjectDelete("L0" + li_0);
      ObjectDelete("L1" + li_0);
      ObjectDelete("L2" + li_0);
      ObjectDelete("L3" + li_0);
      ObjectDelete("L4" + li_0);
      ObjectDelete("L5" + li_0);
      ObjectDelete("L6" + li_0);
   }
   return (0);
}

int start() {
   double ld_0;
   string ls_8;
   int li_20;
   int l_ind_counted_24;
   double l_ifractals_28;
   double l_ifractals_36;
   double ld_44;
   int li_52;
   double ld_56;
   int li_64;
   double ld_68;
   int li_76;
   double ld_80;
   int li_88;
   double ld_92;
   double ld_100;
   double ld_108;
   double ld_116;
   double ld_124;
   double ld_132;
    {
      ld_0 = MarketInfo(Symbol(), MODE_SPREAD);
      if (ld_0 == 0.0) ld_0 = (Ask - Bid) / Point;
      gs_784 = "Possible   Head and Shoulders on " + Symbol() + "  " + Period() + " " + Hour() + ":" + Minute() + " " + Day() + "-" + Month() + "-" + Year();
      ls_8 = "RSI Price Divergence (" + RSIPeriod + ")";
      if (WindowFind(ls_8) < 0) gi_136 = FALSE;
      l_ind_counted_24 = IndicatorCounted();
      if (l_ind_counted_24 < 0) return (-1);
      DeleteObj();
      for (int li_16 = use_no_of_Bars; li_16 >= 0; li_16--) {
         gi_364 = 0;
         gi_368 = 0;
         g_ibuf_384[li_16] = 0;
         g_ibuf_396[li_16] = 0;
         l_ifractals_28 = iFractals(NULL, 0, MODE_UPPER, li_16);
         if (l_ifractals_28 > 0.0 && High_Low_Mode == 1) {
            gda_212[1] = gda_212[2];
            gda_212[2] = gda_212[3];
            gda_212[3] = gda_212[4];
            gda_212[4] = gda_196[1];
            gda_196[0] = gda_196[1];
            gda_196[1] = gda_196[3];
            gda_196[3] = gda_196[5];
            gda_196[5] = l_ifractals_28;
            gia_200[0] = gia_200[1];
            gia_200[1] = gia_200[3];
            gia_200[3] = gia_200[5];
            gia_200[5] = li_16;
            if (MathAbs(gia_200[0] - gia_200[1]) + 1.0 > 0.0) {
               gia_200[6] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_200[0] - gia_200[1] - 1), gia_200[1] + 1);
               gda_196[6] = Low[gia_200[6]];
            } else {
               gia_200[6] = iLowest(NULL, 0, MODE_LOW, 5, gia_200[1] + 1);
               gda_196[6] = Low[gia_200[6]];
            }
            gia_200[2] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_200[1] - gia_200[3]) - 1.0, gia_200[3] + 1);
            gda_196[2] = Low[gia_200[2]];
            gia_200[4] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_200[3] - gia_200[5]) - 1.0, gia_200[5] + 1);
            gda_196[4] = Low[gia_200[4]];
            gia_200[7] = gia_200[5] - (gia_200[3] - gia_200[4]);
            if (gia_200[7] < 0) gia_200[7] = 0;
            gda_196[7] = gda_196[4];
         }
         if (High[li_16 - 1] <= High[li_16] && High[li_16 - 2] <= High[li_16] && High[li_16 + 1] <= High[li_16] && High[li_16 + 2] <= High[li_16] && High_Low_Mode == 2) {
            gda_212[1] = gda_212[2];
            gda_212[2] = gda_212[3];
            gda_212[3] = gda_212[4];
            gda_212[4] = gda_196[1];
            gda_196[0] = gda_196[1];
            gda_196[1] = gda_196[3];
            gda_196[3] = gda_196[5];
            gda_196[5] = High[li_16];
            gia_200[0] = gia_200[1];
            gia_200[1] = gia_200[3];
            gia_200[3] = gia_200[5];
            gia_200[5] = li_16;
            if (MathAbs(gia_200[0] - gia_200[1]) + 1.0 > 0.0) {
               gia_200[6] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_200[0] - gia_200[1] - 1), gia_200[1] + 1);
               gda_196[6] = Low[gia_200[6]];
            } else {
               gia_200[6] = iLowest(NULL, 0, MODE_LOW, 5, gia_200[1] + 1);
               gda_196[6] = Low[gia_200[6]];
            }
            gia_200[2] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_200[1] - gia_200[3]) - 1.0, gia_200[3] + 1);
            gda_196[2] = Low[gia_200[2]];
            gia_200[4] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_200[3] - gia_200[5]) - 1.0, gia_200[5] + 1);
            gda_196[4] = Low[gia_200[4]];
            gia_200[7] = gia_200[5] - (gia_200[3] - gia_200[4]);
            if (gia_200[7] < 0) gia_200[7] = 0;
            gda_196[7] = gda_196[4];
         }
         l_ifractals_36 = iFractals(NULL, 0, MODE_LOWER, li_16);
         if (l_ifractals_36 > 0.0 && High_Low_Mode == 1) {
            gda_216[1] = gda_216[2];
            gda_216[2] = gda_216[3];
            gda_216[3] = gda_216[4];
            gda_216[4] = gda_204[1];
            gda_204[0] = gda_204[1];
            gda_204[1] = gda_204[3];
            gda_204[3] = gda_204[5];
            gda_204[5] = Low[li_16];
            gia_208[0] = gia_208[1];
            gia_208[1] = gia_208[3];
            gia_208[3] = gia_208[5];
            gia_208[5] = li_16;
            if (MathAbs(gia_208[0] - gia_208[1] - 1) > 0.0) {
               gia_208[6] = iHighest(NULL, 0, MODE_HIGH, MathAbs(gia_208[0] - gia_208[1] - 1), gia_208[1] + 1);
               gda_204[6] = High[gia_208[6]];
            } else {
               gia_208[6] = iHighest(NULL, 0, MODE_HIGH, 5, gia_208[1] + 1);
               gda_204[6] = High[gia_208[6]];
            }
            gia_208[2] = iHighest(NULL, 0, MODE_HIGH, gia_208[1] - gia_208[3] - 1, gia_208[3] + 1);
            gda_204[2] = High[gia_208[2]];
            gia_208[4] = iHighest(NULL, 0, MODE_HIGH, gia_208[3] - gia_208[5] - 1, gia_208[5] + 1);
            gda_204[4] = High[gia_208[4]];
            gia_208[7] = gia_208[5] - (gia_208[3] - gia_208[4]);
            if (gia_208[7] < 0) gia_208[7] = 0;
            gda_204[7] = gda_204[4];
         }
         if (Low[li_16 - 1] >= Low[li_16] && Low[li_16 - 2] >= Low[li_16] && Low[li_16 + 1] >= Low[li_16] && Low[li_16 + 2] >= Low[li_16] && High_Low_Mode == 2) {
            gda_216[1] = gda_216[2];
            gda_216[2] = gda_216[3];
            gda_216[3] = gda_216[4];
            gda_216[4] = gda_204[1];
            gda_204[0] = gda_204[1];
            gda_204[1] = gda_204[3];
            gda_204[3] = gda_204[5];
            gda_204[5] = Low[li_16];
            gia_208[0] = gia_208[1];
            gia_208[1] = gia_208[3];
            gia_208[3] = gia_208[5];
            gia_208[5] = li_16;
            if (MathAbs(gia_208[0] - gia_208[1] - 1) > 0.0) {
               gia_208[6] = iHighest(NULL, 0, MODE_HIGH, MathAbs(gia_208[0] - gia_208[1] - 1), gia_208[1] + 1);
               gda_204[6] = High[gia_208[6]];
            } else {
               gia_208[6] = iHighest(NULL, 0, MODE_HIGH, 5, gia_208[1] + 1);
               gda_204[6] = High[gia_208[6]];
            }
            gia_208[2] = iHighest(NULL, 0, MODE_HIGH, gia_208[1] - gia_208[3] - 1, gia_208[3] + 1);
            gda_204[2] = High[gia_208[2]];
            gia_208[4] = iHighest(NULL, 0, MODE_HIGH, gia_208[3] - gia_208[5] - 1, gia_208[5] + 1);
            gda_204[4] = High[gia_208[4]];
            gia_208[7] = gia_208[5] - (gia_208[3] - gia_208[4]);
            if (gia_208[7] < 0) gia_208[7] = 0;
            gda_204[7] = gda_204[4];
         }
         gi_308 = gia_200[6];
         gi_312 = gia_200[1];
         gi_316 = gia_200[2];
         gi_320 = gia_200[3];
         gi_324 = gia_200[4];
         gi_328 = gia_200[5];
         gi_332 = gia_200[7];
         gi_336 = gia_208[6];
         gi_340 = gia_208[1];
         gi_344 = gia_208[2];
         gi_348 = gia_208[3];
         gi_352 = gia_208[4];
         gi_356 = gia_208[5];
         gi_360 = gia_208[7];
         if (gda_196[1] < gda_196[3] && gda_196[5] < gda_196[3] && gda_196[2] < gda_196[1] && gda_196[4] < gda_196[5] && gia_200[1] > gia_200[2] && gda_196[2] + (gda_196[3] - gda_196[2]) / 100.0 * MathAbs(100 - Present_Retrace_Min) > gda_196[4] &&
            gda_196[2] - (gda_196[3] - gda_196[2]) / 100.0 * MathAbs(100 - Present_Retrace_Max) < gda_196[4] && gda_212[1] < gda_212[2] && gda_212[2] < gda_212[3] && gda_212[3] < gda_212[4] && gda_212[4] < gda_196[1]) {
            ObjectDelete("L0");
            ObjectDelete("L1");
            ObjectDelete("L2");
            ObjectDelete("L3");
            ObjectDelete("L4");
            ObjectDelete("L5");
            ObjectDelete("L6");
            ObjectDelete("L7");
            ObjectDelete("L8");
            ObjectDelete("L9");
            ObjectDelete("H0");
            ObjectDelete("H1");
            ObjectDelete("H2");
            ObjectDelete("H3");
            ObjectDelete("H4");
            ObjectDelete("H5");
            ObjectDelete("H6");
            ObjectDelete("H7");
            ObjectDelete("H8");
            ObjectDelete("H9");
            ObjectDelete("Target");
            ObjectDelete("HR1");
            ObjectDelete("HR2");
            ObjectDelete("LR1");
            ObjectDelete("LR2");
            ObjectCreate("H0" + li_20, OBJ_TREND, 0, Time[gi_308], gda_196[6], Time[gi_312], gda_196[1]);
            ObjectCreate("H1" + li_20, OBJ_TREND, 0, Time[gi_312], gda_196[1], Time[gi_316], gda_196[2]);
            ObjectCreate("H2" + li_20, OBJ_TREND, 0, Time[gi_316], gda_196[2], Time[gi_320], gda_196[3]);
            ObjectCreate("H3" + li_20, OBJ_TREND, 0, Time[gi_320], gda_196[3], Time[gi_324], gda_196[4]);
            ObjectCreate("H4" + li_20, OBJ_TREND, 0, Time[gi_324], gda_196[4], Time[gi_328], gda_196[5]);
            ObjectCreate("H6" + li_20, OBJ_TREND, 0, Time[gi_328], gda_196[5], Time[gi_332], gda_196[7]);
            if (gda_196[3] > High[iHighest(NULL, 0, MODE_HIGH, gia_200[3] - gia_200[5] - 1, 1)]) {
               ObjectDelete("L5");
               ObjectDelete("L7");
               ObjectDelete("L8");
               ObjectDelete("L9");
               ObjectDelete("Target");
               if (Fibo_On == 1) {
                  if (Fibo_Mode == 1) ObjectCreate("H5", OBJ_FIBO, 0, Time[gi_324], gda_196[4], Time[gi_320], gda_196[3]);
                  if (Fibo_Mode == 2) ObjectCreate("H5", OBJ_EXPANSION, 0, Time[gi_320], gda_196[3], Time[gi_324], gda_196[4], Time[gi_328], gda_196[5]);
               }
               if (Neckline_On == 1) ObjectCreate("H7", OBJ_TREND, 0, Time[gi_316], gda_196[2], Time[gi_324], gda_196[4]);
               if (Enable_Target == 1) {
                  gd_752 = (gda_196[3] - gda_196[4]) / 100.0;
                  if (Fibo_Mode == 1) {
                     if (gda_196[5] > NormalizeDouble(gda_196[4] + 76.4 * gd_752, 4)) gd_736 = NormalizeDouble(gda_196[4] - 0.0 * gd_752, 4);
                     if (gda_196[5] <= NormalizeDouble(gda_196[4] + 76.4 * gd_752, 4) && gda_196[5] >= NormalizeDouble(gda_196[4] + 61.9 * gd_752, 4)) gd_736 = NormalizeDouble(gda_196[4] - 27.0 * gd_752, 4);
                     if (gda_196[5] <= NormalizeDouble(gda_196[4] + 61.8 * gd_752, 4)) gd_736 = NormalizeDouble(gda_196[4] - 61.8 * gd_752, 4);
                  }
                  if (Fibo_Mode == 2) gd_736 = MathAbs(1.618 * (gda_196[3] - gda_196[4]) - gda_196[5]);
                  g_price_768 = gd_736 + (ld_0 + 4.0) * Point;
                  if (gd_736 < gda_196[4] && gda_196[4] - g_price_768 >= Min_Target_Pips * Point && Enable_Target == 1) {
                     ObjectCreate("H8", OBJ_HLINE, 0, 0, gda_196[4] - 1.0 * Point);
                     ObjectCreate("H9", OBJ_HLINE, 0, 0, g_price_768);
                     ObjectCreate("Target", OBJ_TEXT, 0, TimeCurrent() + 100, 0);
                     ObjectSetText("Target", DoubleToStr((gda_196[4] - 1.0 * Point - g_price_768) / Point, 0), 10, "Arial", Blue);
                     ObjectMove("Target", 0, TimeCurrent() + 100 * Period(), g_price_768);
                  } else {
                     ObjectDelete("H8");
                     ObjectDelete("H9");
                  }
               }
               g_highest_228 = iHighest(NULL, 0, MODE_HIGH, gia_200[4] - 1, 0);
               g_high_220 = High[g_highest_228];
               g_lowest_252 = iLowest(NULL, 0, MODE_LOW, gia_200[4] - 1, 0);
               g_low_244 = Low[g_lowest_252];
               if (g_high_220 > gda_196[5] && g_highest_228 < gia_200[4] && g_highest_228 < gia_200[5] && g_high_220 < gda_196[3] && g_low_244 > gda_196[4]) {
                  gda_196[5] = g_high_220;
                  gia_200[5] = g_highest_228;
                  gia_200[7] = 0;
                  gi_328 = g_highest_228;
               }
               ObjectCreate("H0", OBJ_TREND, 0, Time[gi_308], gda_196[6], Time[gi_312], gda_196[1]);
               ObjectCreate("H1", OBJ_TREND, 0, Time[gi_312], gda_196[1], Time[gi_316], gda_196[2]);
               ObjectCreate("H2", OBJ_TREND, 0, Time[gi_316], gda_196[2], Time[gi_320], gda_196[3]);
               ObjectCreate("H3", OBJ_TREND, 0, Time[gi_320], gda_196[3], Time[gi_324], gda_196[4]);
               ObjectCreate("H4", OBJ_TREND, 0, Time[gi_324], gda_196[4], Time[gi_328], gda_196[5]);
               ObjectCreate("H6", OBJ_TREND, 0, Time[gi_328], gda_196[5], Time[gi_332], gda_196[7]);
               if (gi_136 == TRUE && Time[gi_312] < Time[gi_320] && Time[gi_320] < Time[gi_328]) {
                  g_irsi_472 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_312 - 2);
                  g_irsi_480 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_312 - 1);
                  g_irsi_488 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_312);
                  g_irsi_496 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_312 + 1);
                  g_irsi_504 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_312 + 2);
                  if (g_irsi_472 >= g_irsi_480 && g_irsi_472 >= g_irsi_488 && g_irsi_472 >= g_irsi_496 && g_irsi_472 >= g_irsi_504) {
                     g_irsi_424 = g_irsi_472;
                     gi_712 = gi_312 - 2;
                  }
                  if (g_irsi_480 >= g_irsi_472 && g_irsi_480 >= g_irsi_488 && g_irsi_480 >= g_irsi_496 && g_irsi_480 >= g_irsi_504) {
                     g_irsi_424 = g_irsi_480;
                     gi_712 = gi_312 - 1;
                  }
                  if (g_irsi_488 >= g_irsi_480 && g_irsi_488 >= g_irsi_472 && g_irsi_488 >= g_irsi_496 && g_irsi_488 >= g_irsi_504) {
                     g_irsi_424 = g_irsi_488;
                     gi_712 = gi_312;
                  }
                  if (g_irsi_496 >= g_irsi_472 && g_irsi_496 >= g_irsi_480 && g_irsi_496 >= g_irsi_488 && g_irsi_496 >= g_irsi_504) {
                     g_irsi_424 = g_irsi_496;
                     gi_712 = gi_312 + 1;
                  }
                  if (g_irsi_504 >= g_irsi_472 && g_irsi_504 >= g_irsi_480 && g_irsi_504 >= g_irsi_488 && g_irsi_504 >= g_irsi_496) {
                     g_irsi_424 = g_irsi_504;
                     gi_712 = gi_312 + 2;
                  }
                  g_irsi_512 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_320 - 2);
                  g_irsi_520 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_320 - 1);
                  g_irsi_528 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_320);
                  g_irsi_536 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_320 + 1);
                  g_irsi_544 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_320 + 2);
                  if (g_irsi_512 >= g_irsi_520 && g_irsi_512 >= g_irsi_528 && g_irsi_512 >= g_irsi_536 && g_irsi_512 >= g_irsi_544) {
                     g_irsi_432 = g_irsi_512;
                     gi_716 = gi_320 - 2;
                  }
                  if (g_irsi_520 >= g_irsi_512 && g_irsi_520 >= g_irsi_528 && g_irsi_520 >= g_irsi_536 && g_irsi_520 >= g_irsi_544) {
                     g_irsi_432 = g_irsi_520;
                     gi_716 = gi_320 - 1;
                  }
                  if (g_irsi_528 >= g_irsi_520 && g_irsi_528 >= g_irsi_512 && g_irsi_528 >= g_irsi_536 && g_irsi_528 >= g_irsi_544) {
                     g_irsi_432 = g_irsi_528;
                     gi_716 = gi_320;
                  }
                  if (g_irsi_536 >= g_irsi_512 && g_irsi_536 >= g_irsi_520 && g_irsi_536 >= g_irsi_528 && g_irsi_536 >= g_irsi_544) {
                     g_irsi_432 = g_irsi_536;
                     gi_716 = gi_320 + 1;
                  }
                  if (g_irsi_544 >= g_irsi_512 && g_irsi_544 >= g_irsi_520 && g_irsi_544 >= g_irsi_528 && g_irsi_544 >= g_irsi_536) {
                     g_irsi_432 = g_irsi_544;
                     gi_716 = gi_320 + 2;
                  }
                  if (gi_328 < 2) gi_328 = 2;
                  g_irsi_552 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_328 - 2);
                  g_irsi_560 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_328 - 1);
                  g_irsi_568 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_328);
                  g_irsi_576 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_328 + 1);
                  g_irsi_584 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_328 + 2);
                  if (g_irsi_552 >= g_irsi_560 && g_irsi_552 >= g_irsi_568 && g_irsi_552 >= g_irsi_576 && g_irsi_552 >= g_irsi_584) {
                     g_irsi_440 = g_irsi_552;
                     gi_720 = gi_328 - 2;
                  }
                  if (g_irsi_560 >= g_irsi_552 && g_irsi_560 >= g_irsi_568 && g_irsi_560 >= g_irsi_576 && g_irsi_560 >= g_irsi_584) {
                     g_irsi_440 = g_irsi_560;
                     gi_720 = gi_328 - 1;
                  }
                  if (g_irsi_568 >= g_irsi_560 && g_irsi_568 >= g_irsi_552 && g_irsi_568 >= g_irsi_576 && g_irsi_568 >= g_irsi_584) {
                     g_irsi_440 = g_irsi_568;
                     gi_720 = gi_328;
                  }
                  if (g_irsi_576 >= g_irsi_552 && g_irsi_576 >= g_irsi_560 && g_irsi_576 >= g_irsi_568 && g_irsi_576 >= g_irsi_584) {
                     g_irsi_440 = g_irsi_576;
                     gi_720 = gi_328 + 1;
                  }
                  if (g_irsi_584 >= g_irsi_552 && g_irsi_584 >= g_irsi_560 && g_irsi_584 >= g_irsi_568 && g_irsi_584 >= g_irsi_576) {
                     g_irsi_440 = g_irsi_584;
                     gi_720 = gi_328 + 2;
                  }
                  ObjectCreate("HR1", OBJ_TREND, WindowFind(ls_8), Time[gi_712], g_irsi_424, Time[gi_716], g_irsi_432);
                  ObjectCreate("HR2", OBJ_TREND, WindowFind(ls_8), Time[gi_716], g_irsi_432, Time[gi_720], g_irsi_440);
               }
            }
         }
         if (gda_204[1] > gda_204[3] && gda_204[5] > gda_204[3] && gda_204[2] > gda_204[1] && gda_204[4] > gda_204[5] && gia_208[1] > gia_208[2] && gda_204[2] + (gda_204[2] - gda_204[3]) / 100.0 * MathAbs(100 - Present_Retrace_Max) > gda_204[4] &&
            gda_204[2] - (gda_204[2] - gda_204[3]) / 100.0 * MathAbs(100 - Present_Retrace_Min) < gda_204[4] && gda_216[1] > gda_216[2] && gda_216[2] > gda_216[3] && gda_216[3] > gda_216[4] && gda_216[4] > gda_204[1]) {
            ObjectDelete("L0");
            ObjectDelete("L1");
            ObjectDelete("L2");
            ObjectDelete("L3");
            ObjectDelete("L4");
            ObjectDelete("L5");
            ObjectDelete("L6");
            ObjectDelete("L7");
            ObjectDelete("L8");
            ObjectDelete("L9");
            ObjectDelete("H0");
            ObjectDelete("H1");
            ObjectDelete("H2");
            ObjectDelete("H3");
            ObjectDelete("H4");
            ObjectDelete("H5");
            ObjectDelete("H6");
            ObjectDelete("H7");
            ObjectDelete("H8");
            ObjectDelete("H9");
            ObjectDelete("Target");
            ObjectDelete("HR1");
            ObjectDelete("HR2");
            ObjectDelete("LR1");
            ObjectDelete("LR2");
            ObjectCreate("L0" + li_20, OBJ_TREND, 0, Time[gi_336], gda_204[6], Time[gi_340], gda_204[1]);
            ObjectCreate("L1" + li_20, OBJ_TREND, 0, Time[gi_340], gda_204[1], Time[gi_344], gda_204[2]);
            ObjectCreate("L2" + li_20, OBJ_TREND, 0, Time[gi_344], gda_204[2], Time[gi_348], gda_204[3]);
            ObjectCreate("L3" + li_20, OBJ_TREND, 0, Time[gi_348], gda_204[3], Time[gi_352], gda_204[4]);
            ObjectCreate("L4" + li_20, OBJ_TREND, 0, Time[gi_352], gda_204[4], Time[gi_356], gda_204[5]);
            ObjectCreate("L6" + li_20, OBJ_TREND, 0, Time[gi_356], gda_204[5], Time[gi_360], gda_204[7]);
            if (gda_204[3] < Low[iLowest(NULL, 0, MODE_LOW, gia_208[3] - gia_208[5] - 1, 1)]) {
               ObjectDelete("H5");
               ObjectDelete("H7");
               ObjectDelete("H8");
               ObjectDelete("H9");
               ObjectDelete("Target");
               if (Fibo_On == 1) {
                  if (Fibo_Mode == 1) ObjectCreate("L5", OBJ_FIBO, 0, Time[gi_352], gda_204[4], Time[gi_348], gda_204[3]);
                  if (Fibo_Mode == 2) ObjectCreate("L5", OBJ_EXPANSION, 0, Time[gi_348], gda_204[3], Time[gi_352], gda_204[4], Time[gi_356], gda_204[5]);
               }
               if (Neckline_On == 1) ObjectCreate("L7", OBJ_TREND, 0, Time[gi_344], gda_204[2], Time[gi_352], gda_204[4]);
               if (Enable_Target == 1) {
                  if (Fibo_Mode == 1) {
                     gd_760 = (gda_204[4] - gda_204[3]) / 100.0;
                     if (gda_204[5] < NormalizeDouble(gda_204[4] - 76.4 * gd_760, 4)) g_price_744 = NormalizeDouble(gda_204[4] + 0.0 * gd_760, 4);
                     if (gda_204[5] >= NormalizeDouble(gda_204[4] - 76.4 * gd_760, 4) && gda_204[5] <= NormalizeDouble(gda_204[4] - 61.8 * gd_760, 4)) g_price_744 = NormalizeDouble(gda_204[4] + 27.0 * gd_760, 4);
                     if (gda_204[5] >= NormalizeDouble(gda_204[4] - 61.8 * gd_760, 4)) g_price_744 = NormalizeDouble(gda_204[4] + 61.8 * gd_760, 4);
                     g_price_744 -= 4.0 * Point;
                  }
                  if (Fibo_Mode == 2) g_price_744 = MathAbs(1.618 * (gda_204[4] - gda_204[3]) + gda_204[5]) - (ld_0 + 1.0) * Point;
                  g_price_776 = gda_204[4] + (ld_0 + 1.0) * Point;
                  if (g_price_744 > g_price_776 && g_price_744 - gda_204[4] >= Min_Target_Pips * Point && Enable_Target == 1) {
                     ObjectCreate("L8", OBJ_HLINE, 0, 0, g_price_776);
                     ObjectCreate("L9", OBJ_HLINE, 0, 0, g_price_744);
                     ObjectCreate("Target", OBJ_TEXT, 0, TimeCurrent() + 100, 0);
                     ObjectSetText("Target", DoubleToStr((g_price_744 - g_price_776) / Point, 0), 10, "Arial", Red);
                     ObjectMove("Target", 0, TimeCurrent() + 100 * Period(), g_price_744);
                  } else {
                     ObjectDelete("L8");
                     ObjectDelete("L9");
                  }
               }
               g_lowest_240 = iLowest(NULL, 0, MODE_LOW, gia_208[4] - 1, 0);
               g_low_232 = Low[g_lowest_240];
               g_highest_264 = iHighest(NULL, 0, MODE_HIGH, gia_208[4] - 1, 0);
               g_high_256 = High[g_highest_264];
               if (g_low_232 < gda_204[5] && g_lowest_240 < gia_208[4] && g_lowest_240 < gia_208[5] && g_low_232 > gda_204[3] && g_high_256 < gda_204[4]) {
                  gda_204[5] = g_low_232;
                  gia_208[5] = g_lowest_240;
                  gia_208[7] = 0;
                  gi_356 = g_lowest_240;
               }
               ObjectCreate("L0", OBJ_TREND, 0, Time[gi_336], gda_204[6], Time[gi_340], gda_204[1]);
               ObjectCreate("L1", OBJ_TREND, 0, Time[gi_340], gda_204[1], Time[gi_344], gda_204[2]);
               ObjectCreate("L2", OBJ_TREND, 0, Time[gi_344], gda_204[2], Time[gi_348], gda_204[3]);
               ObjectCreate("L3", OBJ_TREND, 0, Time[gi_348], gda_204[3], Time[gi_352], gda_204[4]);
               ObjectCreate("L4", OBJ_TREND, 0, Time[gi_352], gda_204[4], Time[gi_356], gda_204[5]);
               ObjectCreate("L6", OBJ_TREND, 0, Time[gi_356], gda_204[5], Time[gi_360], gda_204[7]);
               if (gi_136 == TRUE && Time[gi_340] < Time[gi_348] && Time[gi_348] < Time[gi_356]) {
                  g_irsi_592 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_340 - 2);
                  g_irsi_600 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_340 - 1);
                  g_irsi_608 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_340);
                  g_irsi_616 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_340 + 1);
                  g_irsi_624 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_340 + 2);
                  if (g_irsi_592 <= g_irsi_600 && g_irsi_592 <= g_irsi_608 && g_irsi_592 <= g_irsi_616 && g_irsi_592 <= g_irsi_624) {
                     g_irsi_448 = g_irsi_592;
                     gi_724 = gi_340 - 2;
                  }
                  if (g_irsi_600 <= g_irsi_592 && g_irsi_600 <= g_irsi_608 && g_irsi_600 <= g_irsi_616 && g_irsi_600 <= g_irsi_624) {
                     g_irsi_448 = g_irsi_600;
                     gi_724 = gi_340 - 1;
                  }
                  if (g_irsi_608 <= g_irsi_600 && g_irsi_608 <= g_irsi_592 && g_irsi_608 <= g_irsi_616 && g_irsi_608 <= g_irsi_624) {
                     g_irsi_448 = g_irsi_608;
                     gi_724 = gi_340;
                  }
                  if (g_irsi_616 <= g_irsi_592 && g_irsi_616 <= g_irsi_600 && g_irsi_616 <= g_irsi_608 && g_irsi_616 <= g_irsi_624) {
                     g_irsi_448 = g_irsi_616;
                     gi_724 = gi_340 + 1;
                  }
                  if (g_irsi_624 <= g_irsi_592 && g_irsi_624 <= g_irsi_600 && g_irsi_624 <= g_irsi_608 && g_irsi_624 <= g_irsi_616) {
                     g_irsi_448 = g_irsi_624;
                     gi_724 = gi_340 + 2;
                  }
                  g_irsi_632 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_348 - 2);
                  g_irsi_640 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_348 - 1);
                  g_irsi_648 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_348);
                  g_irsi_656 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_348 + 1);
                  g_irsi_664 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_348 + 2);
                  if (g_irsi_632 <= g_irsi_640 && g_irsi_632 <= g_irsi_648 && g_irsi_632 <= g_irsi_656 && g_irsi_632 <= g_irsi_664) {
                     g_irsi_456 = g_irsi_632;
                     gi_728 = gi_348 - 2;
                  }
                  if (g_irsi_640 <= g_irsi_632 && g_irsi_640 <= g_irsi_648 && g_irsi_640 <= g_irsi_656 && g_irsi_640 <= g_irsi_664) {
                     g_irsi_456 = g_irsi_640;
                     gi_728 = gi_348 - 1;
                  }
                  if (g_irsi_648 <= g_irsi_640 && g_irsi_648 <= g_irsi_632 && g_irsi_648 <= g_irsi_656 && g_irsi_648 <= g_irsi_664) {
                     g_irsi_456 = g_irsi_648;
                     gi_728 = gi_348;
                  }
                  if (g_irsi_656 <= g_irsi_632 && g_irsi_656 <= g_irsi_640 && g_irsi_656 <= g_irsi_648 && g_irsi_656 <= g_irsi_664) {
                     g_irsi_456 = g_irsi_656;
                     gi_728 = gi_348 + 1;
                  }
                  if (g_irsi_664 <= g_irsi_632 && g_irsi_664 <= g_irsi_640 && g_irsi_664 <= g_irsi_648 && g_irsi_664 <= g_irsi_656) {
                     g_irsi_456 = g_irsi_664;
                     gi_728 = gi_348 + 2;
                  }
                  if (gi_356 < 2) gi_356 = 2;
                  g_irsi_672 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_356 - 2);
                  g_irsi_680 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_356 - 1);
                  g_irsi_688 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_356);
                  g_irsi_696 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_356 + 1);
                  g_irsi_704 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_356 + 2);
                  if (g_irsi_672 <= g_irsi_680 && g_irsi_672 <= g_irsi_688 && g_irsi_672 <= g_irsi_696 && g_irsi_672 <= g_irsi_704) {
                     g_irsi_464 = g_irsi_672;
                     gi_732 = gi_356 - 2;
                  }
                  if (g_irsi_680 <= g_irsi_672 && g_irsi_680 <= g_irsi_688 && g_irsi_680 <= g_irsi_696 && g_irsi_680 <= g_irsi_704) {
                     g_irsi_464 = g_irsi_680;
                     gi_732 = gi_356 - 1;
                  }
                  if (g_irsi_688 <= g_irsi_680 && g_irsi_688 <= g_irsi_672 && g_irsi_688 <= g_irsi_696 && g_irsi_688 <= g_irsi_704) {
                     g_irsi_464 = g_irsi_688;
                     gi_732 = gi_356;
                  }
                  if (g_irsi_696 <= g_irsi_672 && g_irsi_696 <= g_irsi_680 && g_irsi_696 <= g_irsi_688 && g_irsi_696 <= g_irsi_704) {
                     g_irsi_464 = g_irsi_696;
                     gi_732 = gi_356 + 1;
                  }
                  if (g_irsi_704 <= g_irsi_672 && g_irsi_704 <= g_irsi_680 && g_irsi_704 <= g_irsi_688 && g_irsi_704 <= g_irsi_696) {
                     g_irsi_464 = g_irsi_704;
                     gi_732 = gi_356 + 2;
                  }
                  ObjectCreate("LR1", OBJ_TREND, WindowFind(ls_8), Time[gi_724], g_irsi_448, Time[gi_728], g_irsi_456);
                  ObjectCreate("LR2", OBJ_TREND, WindowFind(ls_8), Time[gi_728], g_irsi_456, Time[gi_732], g_irsi_464);
               }
            }
         }
         ld_44 = ObjectGet("H3", OBJPROP_PRICE1);
         li_52 = ObjectGet("H3", OBJPROP_TIME1);
         ld_56 = ObjectGet("H3", OBJPROP_PRICE2);
         li_64 = ObjectGet("H3", OBJPROP_TIME2);
         ld_68 = ObjectGet("L3", OBJPROP_PRICE1);
         li_76 = ObjectGet("L3", OBJPROP_TIME1);
         ld_80 = ObjectGet("L3", OBJPROP_PRICE2);
         li_88 = ObjectGet("L3", OBJPROP_TIME2);
         ld_92 = ObjectGet("H4", OBJPROP_PRICE2);
         ld_100 = ObjectGet("L4", OBJPROP_PRICE2);
         g_ibuf_376[li_16] = ld_44;
         g_ibuf_380[li_16] = ld_56;
         g_ibuf_388[li_16] = ld_68;
         g_ibuf_392[li_16] = ld_80;
         g_ibuf_400[li_16] = ld_92;
         g_ibuf_404[li_16] = ld_100;
         if (li_52 > 0 && li_64 > 0) {
            ld_108 = (TimeCurrent() - li_52) / 60 / Period();
            ld_116 = g_ibuf_380[li_16] + (g_ibuf_380[li_16] - g_ibuf_376[li_16]) / 2.0;
            if (ld_108 < 1.0) ld_108 = 1;
            g_high_276 = High[iHighest(NULL, 0, MODE_HIGH, ld_108, 0)];
            gd_268 = Low[iLowest(NULL, 0, MODE_LOW, ld_108, 0)] + ld_0 * Point;
         } else {
            gd_268 = 0;
            g_high_276 = 0;
         }
         if (li_76 > 0 && li_88 > 0) {
            ld_124 = (TimeCurrent() - li_76) / 60 / Period();
            ld_132 = g_ibuf_392[li_16] + (g_ibuf_392[li_16] - g_ibuf_388[li_16]) / 2.0;
            if (ld_124 < 1.0) ld_124 = 1;
            g_high_292 = High[iHighest(NULL, 0, MODE_HIGH, ld_124, 0)];
            gd_284 = Low[iLowest(NULL, 0, MODE_LOW, ld_124, 0)] - ld_0 * Point;
         } else {
            gd_284 = 0;
            g_high_292 = 0;
         }
         if (gd_268 >= g_ibuf_380[li_16] && g_high_276 <= g_ibuf_376[li_16] && g_ibuf_376[li_16] > 0.0 && g_ibuf_380[li_16] > 0.0 && gd_268 > ld_116) {
            g_ibuf_384[li_16] = 2;
            gi_364 = 2;
            ObjectSet("HR1", OBJPROP_COLOR, Shoulder_High);
            ObjectSet("HR2", OBJPROP_COLOR, Shoulder_High);
         } else {
            g_ibuf_384[li_16] = 0;
            gi_364 = 0;
            ObjectSet("HR1", OBJPROP_COLOR, Head_Low);
            ObjectSet("HR2", OBJPROP_COLOR, Head_Low);
         }
         if (gd_268 >= g_ibuf_380[li_16] && g_high_276 <= g_ibuf_376[li_16] && g_ibuf_376[li_16] > 0.0 && g_ibuf_380[li_16] > 0.0 && gd_268 > ld_116 && g_irsi_432 <= g_irsi_424 &&
            g_irsi_440 < g_irsi_432) {
            g_ibuf_384[li_16] = 1;
            gi_364 = 1;
            ObjectSet("HR1", OBJPROP_COLOR, Head_High);
            ObjectSet("HR2", OBJPROP_COLOR, Head_High);
         }
         if (gd_268 >= g_ibuf_380[li_16] && g_high_276 <= g_ibuf_376[li_16] && g_ibuf_376[li_16] > 0.0 && g_ibuf_380[li_16] > 0.0 && gd_268 > ld_116 && g_irsi_432 <= g_irsi_424 &&
            g_irsi_440 < g_irsi_432 && g_irsi_448 >= 70.0 && g_irsi_456 <= 60.0 && g_irsi_464 >= 50.0) {
            g_ibuf_384[li_16] = 3;
            gi_364 = 1;
            ObjectSet("HR1", OBJPROP_COLOR, Head_High);
            ObjectSet("HR2", OBJPROP_COLOR, Head_High);
         }
         if (gd_268 >= g_ibuf_380[li_16] && g_high_276 <= g_ibuf_376[li_16] && g_ibuf_376[li_16] > 0.0 && g_ibuf_380[li_16] > 0.0 && gd_268 > ld_116 && g_irsi_448 >= 70.0 &&
            g_irsi_456 <= 60.0 && g_irsi_464 >= 50.0) {
            g_ibuf_384[li_16] = 4;
            gi_364 = 1;
            ObjectSet("HR1", OBJPROP_COLOR, Head_High);
            ObjectSet("HR2", OBJPROP_COLOR, Head_High);
         }
         if (g_high_292 <= g_ibuf_392[li_16] && gd_284 >= g_ibuf_388[li_16] && g_ibuf_388[li_16] > 0.0 && g_ibuf_392[li_16] > 0.0 && gd_284 < ld_132) {
            g_ibuf_396[li_16] = 2;
            gi_368 = 2;
            ObjectSet("LR1", OBJPROP_COLOR, Shoulder_High);
            ObjectSet("LR2", OBJPROP_COLOR, Shoulder_High);
         } else {
            g_ibuf_396[li_16] = 0;
            gi_368 = 0;
            ObjectSet("LR1", OBJPROP_COLOR, Head_Low);
            ObjectSet("LR2", OBJPROP_COLOR, Head_Low);
         }
         if (g_high_292 <= g_ibuf_392[li_16] && gd_284 >= g_ibuf_388[li_16] && g_ibuf_388[li_16] > 0.0 && g_ibuf_392[li_16] > 0.0 && gd_284 < ld_132 && g_irsi_456 >= g_irsi_448 &&
            g_irsi_464 > g_irsi_456) {
            g_ibuf_396[li_16] = 1;
            gi_368 = 1;
            ObjectSet("LR1", OBJPROP_COLOR, Head_High);
            ObjectSet("LR2", OBJPROP_COLOR, Head_High);
         }
         if (g_high_292 <= g_ibuf_392[li_16] && gd_284 >= g_ibuf_388[li_16] && g_ibuf_388[li_16] > 0.0 && g_ibuf_392[li_16] > 0.0 && gd_284 < ld_132 && g_irsi_456 >= g_irsi_448 &&
            g_irsi_464 > g_irsi_456 && g_irsi_448 <= 30.0 && g_irsi_456 <= 40.0 && g_irsi_464 <= 50.0) {
            g_ibuf_396[li_16] = 3;
            gi_368 = 1;
            ObjectSet("LR1", OBJPROP_COLOR, Head_High);
            ObjectSet("LR2", OBJPROP_COLOR, Head_High);
         }
         if (g_high_292 <= g_ibuf_392[li_16] && gd_284 >= g_ibuf_388[li_16] && g_ibuf_388[li_16] > 0.0 && g_ibuf_392[li_16] > 0.0 && gd_284 < ld_132 && g_irsi_448 <= 30.0 &&
            g_irsi_456 <= 40.0 && g_irsi_464 <= 50.0) {
            g_ibuf_396[li_16] = 4;
            gi_368 = 1;
            ObjectSet("LR1", OBJPROP_COLOR, Head_High);
            ObjectSet("LR2", OBJPROP_COLOR, Head_High);
         }
         ObjectSet("H0" + li_20, OBJPROP_COLOR, Shoulder_High);
         ObjectSet("H1" + li_20, OBJPROP_COLOR, Shoulder_High);
         ObjectSet("H2" + li_20, OBJPROP_COLOR, Head_High);
         ObjectSet("H3" + li_20, OBJPROP_COLOR, Head_High);
         ObjectSet("H4" + li_20, OBJPROP_COLOR, Shoulder_High);
         ObjectSet("H6" + li_20, OBJPROP_COLOR, Shoulder_High);
         ObjectSet("L0" + li_20, OBJPROP_COLOR, Shoulder_Low);
         ObjectSet("L1" + li_20, OBJPROP_COLOR, Shoulder_Low);
         ObjectSet("L2" + li_20, OBJPROP_COLOR, Head_Low);
         ObjectSet("L3" + li_20, OBJPROP_COLOR, Head_Low);
         ObjectSet("L4" + li_20, OBJPROP_COLOR, Shoulder_Low);
         ObjectSet("L6" + li_20, OBJPROP_COLOR, Shoulder_Low);
         ObjectSet("H0" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H1" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H2" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H3" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H4" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H6" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L0" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L1" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L2" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L3" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L4" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L6" + li_20, OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H0" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("H1" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("H2" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("H3" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("H4" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("H6" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("L0" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("L1" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("L2" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("L3" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("L4" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("L6" + li_20, OBJPROP_RAY, FALSE);
         ObjectSet("H0" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("H1" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("H2" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("H3" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("H4" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("H6" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("L0" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("L1" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("L2" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("L3" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("L4" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("L6" + li_20, OBJPROP_WIDTH, LineWidth);
         ObjectSet("H5", OBJPROP_COLOR, Fibo);
         ObjectSet("L5", OBJPROP_COLOR, Fibo);
         ObjectSet("H5", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet("L5", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet("H5", OBJPROP_WIDTH, 0);
         ObjectSet("L5", OBJPROP_WIDTH, 0);
         ObjectSet("H8", OBJPROP_COLOR, Shoulder_High);
         ObjectSet("L8", OBJPROP_COLOR, Shoulder_High);
         ObjectSet("H8", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet("L8", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet("H8", OBJPROP_WIDTH, 0);
         ObjectSet("L8", OBJPROP_WIDTH, 0);
         ObjectSet("H9", OBJPROP_COLOR, Shoulder_High);
         ObjectSet("L9", OBJPROP_COLOR, Shoulder_High);
         ObjectSet("H9", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet("L9", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet("H9", OBJPROP_WIDTH, 0);
         ObjectSet("L9", OBJPROP_WIDTH, 0);
         ObjectSet("H0", OBJPROP_COLOR, Shoulder_High);
         ObjectSet("H1", OBJPROP_COLOR, Shoulder_High);
         ObjectSet("H2", OBJPROP_COLOR, Head_High);
         ObjectSet("H3", OBJPROP_COLOR, Head_High);
         ObjectSet("H4", OBJPROP_COLOR, Shoulder_High);
         ObjectSet("H6", OBJPROP_COLOR, Shoulder_High);
         ObjectSet("L0", OBJPROP_COLOR, Shoulder_Low);
         ObjectSet("L1", OBJPROP_COLOR, Shoulder_Low);
         ObjectSet("L2", OBJPROP_COLOR, Head_Low);
         ObjectSet("L3", OBJPROP_COLOR, Head_Low);
         ObjectSet("L4", OBJPROP_COLOR, Shoulder_Low);
         ObjectSet("L6", OBJPROP_COLOR, Shoulder_Low);
         ObjectSet("H0", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H1", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H2", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H3", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H4", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H6", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L0", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L1", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L2", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L3", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L4", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("L6", OBJPROP_STYLE, STYLE_SOLID);
         ObjectSet("H0", OBJPROP_RAY, FALSE);
         ObjectSet("H1", OBJPROP_RAY, FALSE);
         ObjectSet("H2", OBJPROP_RAY, FALSE);
         ObjectSet("H3", OBJPROP_RAY, FALSE);
         ObjectSet("H4", OBJPROP_RAY, FALSE);
         ObjectSet("H5", OBJPROP_RAY, FALSE);
         ObjectSet("H6", OBJPROP_RAY, TRUE);
         ObjectSet("L0", OBJPROP_RAY, FALSE);
         ObjectSet("L1", OBJPROP_RAY, FALSE);
         ObjectSet("L2", OBJPROP_RAY, FALSE);
         ObjectSet("L3", OBJPROP_RAY, FALSE);
         ObjectSet("L4", OBJPROP_RAY, FALSE);
         ObjectSet("L5", OBJPROP_RAY, FALSE);
         ObjectSet("L6", OBJPROP_RAY, TRUE);
         ObjectSet("H0", OBJPROP_WIDTH, LineWidth);
         ObjectSet("H1", OBJPROP_WIDTH, LineWidth);
         ObjectSet("H2", OBJPROP_WIDTH, LineWidth);
         ObjectSet("H3", OBJPROP_WIDTH, LineWidth);
         ObjectSet("H4", OBJPROP_WIDTH, LineWidth);
         ObjectSet("H6", OBJPROP_WIDTH, LineWidth);
         ObjectSet("L0", OBJPROP_WIDTH, LineWidth);
         ObjectSet("L1", OBJPROP_WIDTH, LineWidth);
         ObjectSet("L2", OBJPROP_WIDTH, LineWidth);
         ObjectSet("L3", OBJPROP_WIDTH, LineWidth);
         ObjectSet("L4", OBJPROP_WIDTH, LineWidth);
         ObjectSet("L6", OBJPROP_WIDTH, LineWidth);
         ObjectSet("H7", OBJPROP_COLOR, Head_Low);
         ObjectSet("L7", OBJPROP_COLOR, Head_High);
         ObjectSet("H7", OBJPROP_RAY, TRUE);
         ObjectSet("L7", OBJPROP_RAY, TRUE);
         ObjectSet("H7", OBJPROP_WIDTH, LineWidth - 1);
         ObjectSet("L7", OBJPROP_WIDTH, LineWidth - 1);
         ObjectSet("LR1", OBJPROP_RAY, FALSE);
         ObjectSet("LR2", OBJPROP_RAY, FALSE);
         ObjectSet("LR1", OBJPROP_WIDTH, LineWidth);
         ObjectSet("LR2", OBJPROP_WIDTH, LineWidth);
         ObjectSet("HR1", OBJPROP_RAY, FALSE);
         ObjectSet("HR2", OBJPROP_RAY, FALSE);
         ObjectSet("HR1", OBJPROP_WIDTH, LineWidth);
         ObjectSet("HR2", OBJPROP_WIDTH, LineWidth);
         if (li_20 < 7) {
            ObjectDelete("H0" + li_20);
            ObjectDelete("H1" + li_20);
            ObjectDelete("H2" + li_20);
            ObjectDelete("H3" + li_20);
            ObjectDelete("H4" + li_20);
            ObjectDelete("H6" + li_20);
            ObjectDelete("L0" + li_20);
            ObjectDelete("L1" + li_20);
            ObjectDelete("L2" + li_20);
            ObjectDelete("L3" + li_20);
            ObjectDelete("L4" + li_20);
            ObjectDelete("L6" + li_20);
         }
         if (show_all == 0) {
            ObjectDelete("H0" + li_20);
            ObjectDelete("H1" + li_20);
            ObjectDelete("H2" + li_20);
            ObjectDelete("H3" + li_20);
            ObjectDelete("H4" + li_20);
            ObjectDelete("H6" + li_20);
            ObjectDelete("L0" + li_20);
            ObjectDelete("L1" + li_20);
            ObjectDelete("L2" + li_20);
            ObjectDelete("L3" + li_20);
            ObjectDelete("L4" + li_20);
            ObjectDelete("L6" + li_20);
         }
         if (High[li_20] > 0.0 || Low[li_20] > 0.0) li_20++;
      }
      if (gi_364 == 1 || gi_368 == 1 && gi_140 == 1 && Period() == PERIOD_M5 && Minute() == 0 || Minute() == 5 || Minute() == 10 || Minute() == 15 || Minute() == 20 || Minute() == 25 ||
         Minute() == 30 || Minute() == 35 || Minute() == 40 || Minute() == 45 || Minute() == 50 || Minute() == 55 && Seconds() >= 35) {
         Alarm_Message();
         if (gi_160 == 1) SendMail("Head and Shoulders", gs_784);
      }
      if (gi_364 == 1 || gi_368 == 1 && gi_144 == 1 && Period() == PERIOD_M15 && Minute() == 0 || Minute() == 15 || Minute() == 30 || Minute() == 45 && Seconds() >= 35) {
         Alarm_Message();
         if (gi_160 == 1) SendMail("Head and Shoulders", gs_784);
      }
      if (gi_364 == 1 || gi_368 == 1 && gi_148 == 1 && Period() == 45 && Minute() == 0 || Minute() == 30 && Seconds() >= 35) {
         Alarm_Message();
         if (gi_160 == 1) SendMail("Head and Shoulders", gs_784);
      }
      if (gi_364 == 1 || gi_368 == 1 && gi_152 == 1 && Period() >= PERIOD_H1 && Minute() == 0 && Seconds() >= 35) {
         Alarm_Message();
         if (gi_160 == 1) SendMail("Head and Shoulders", gs_784);
      }
      if (gi_364 == 1 || gi_368 == 1 && gi_156 == 1 && Minute() == 0 || Minute() == 5 || Minute() == 10 || Minute() == 15 || Minute() == 20 || Minute() == 25 || Minute() == 30 ||
         Minute() == 35 || Minute() == 40 || Minute() == 45 || Minute() == 50 || Minute() == 55) {
         Alarm_Message();
         g_count_372++;
         if (gi_160 == 1) SendMail("Head and Shoulders", gs_784);
      } else g_count_372 = 0;
   }
   
   return (0);
}