/*
   Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
   Website: http://purebeam.biz
   E-mail : purebeam@gmail.com
*/
#property copyright "BPS Head and Shoulders      Copyright © 2010     Barry Stander              fx1@4africa.net"
#property link      "http://www.4Africa.net/4meta/"

#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

#import "shell32.dll"
   int ShellExecuteA(int a0, int a1, string a2, string a3, string a4, int a5);
#import "Tools4Meta.dll"
   double DataPass(int a0, int a1, int a2, double a3, double a4, double a5);
#import

string gs_76 = "BPS Head and Shoulders Version 3.8  31/11/2010     Copyright © 2010     Barry Stander        fx1@4africa.net";
int gi_unused_84 = 300;
extern int LineWidth = 2;
extern int Present_Retrace_Min = 60;
extern int Present_Retrace_Max = 140;
extern int Min_Target_Pips = 5;
extern bool Enable_Target = FALSE;
extern int High_Low_Mode = 1;
extern int Fibo_Mode = 1;
extern int use_no_of_Bars = 200;
extern bool show_all = FALSE;
extern bool Fibo_On = TRUE;
extern bool Neckline_On = TRUE;
int gi_136 = 1;
int gi_140 = 1;
int gi_144 = 1;
int gi_148 = 1;
int gi_152 = 1;
int gi_156 = 0;
int gi_160 = 0;
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 = 14;
int gi_unused_188 = 0;
double gda_192[9];
int gia_196[8];
double gda_200[9];
int gia_204[8];
double gda_208[5];
double gda_212[5];
double gd_216;
int g_highest_224;
double gd_228;
int g_lowest_236;
double gd_240;
int g_lowest_248;
double gd_252;
int g_highest_260;
double gd_264 = 0.0;
double gd_272 = 0.0;
double gd_280 = 0.0;
double gd_288 = 0.0;
string gs_296;
int gi_304;
int gi_308;
int gi_312;
int gi_316;
int gi_320;
int g_highest_324;
int gi_328;
int gi_332;
int gi_336;
int gi_340;
int gi_344;
int gi_348;
int g_lowest_352;
int gi_356;
int gi_360;
int gi_364;
int g_count_368;
double g_ibuf_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 gda_unused_404[];
double gda_unused_408[];
double gda_unused_412[];
double gda_unused_416[];
double g_irsi_420;
double g_irsi_428;
double g_irsi_436;
double g_irsi_444;
double g_irsi_452;
double g_irsi_460;
double g_irsi_468;
double g_irsi_476;
double g_irsi_484;
double g_irsi_492;
double g_irsi_500;
double g_irsi_508;
double g_irsi_516;
double g_irsi_524;
double g_irsi_532;
double g_irsi_540;
double g_irsi_548;
double g_irsi_556;
double g_irsi_564;
double g_irsi_572;
double g_irsi_580;
double g_irsi_588;
double g_irsi_596;
double g_irsi_604;
double g_irsi_612;
double g_irsi_620;
double g_irsi_628;
double g_irsi_636;
double g_irsi_644;
double g_irsi_652;
double g_irsi_660;
double g_irsi_668;
double g_irsi_676;
double g_irsi_684;
double g_irsi_692;
double g_irsi_700;
int gi_708;
int gi_712;
int gi_716;
int gi_720;
int gi_724;
int gi_728;
double gd_732;
double g_price_740;
double gd_748;
double gd_756;
double g_price_764;
double g_price_772;
string gs_780;

void TimeCheck(string as_0) {
   if (Hour() == Month() || Hour() == Month() + 12 || Hour() == Month() + 6) {
      Comment("\n\n" + as_0 + "Programmed by Barry Stander       fx@4africa.net , Pretoria ,  South Africa      Copyright © 2007 " 
         + "\n\n" + "If you like this Indicator / Expert and want to show me your appreciation why not send me a   E-mail gift certificate   from Amazon.com to fx1@4africa.net" 
      + "\n\n");
   }
}

int Web(int ai_0) {
   if (IsDllsAllowed() == FALSE) {
      Alert("DLL call is not allowed. Please switch on    Allow DDL import");
      Print("DLL call is not allowed. Please switch on    Allow DDL import");
      Comment("DLL call is not allowed. Please switch on    Allow DDL import");
   }
   MathSrand(TimeLocal());
   double ld_4 = MathMod(MathRand(), ai_0);
   if (ld_4 > -1.0 && ld_4 < 1.0) ShellExecuteA(0, 0, "http://www.4africa.net/4meta/Indicators/index.htm", 0, 0, 3);
   if (ld_4 > ai_0 - 1 && ld_4 < ai_0 + 1) ShellExecuteA(0, 0, "http://www.4africa.net/index3.htm", 0, 0, 3);
   return (0);
}

int init() {
   Comment(gs_76);
   Web(21);
   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_296 = "Kings Crown - Head and Shoulders";
   IndicatorShortName(gs_296);
   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_372);
   SetIndexBuffer(1, g_ibuf_376);
   SetIndexBuffer(2, g_ibuf_380);
   SetIndexBuffer(3, g_ibuf_384);
   SetIndexBuffer(4, g_ibuf_388);
   SetIndexBuffer(5, g_ibuf_392);
   SetIndexBuffer(6, g_ibuf_396);
   SetIndexBuffer(7, g_ibuf_400);
   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_780);
   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() {
   int li_20;
   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;
   Comment(gs_76);
   if (IsDllsAllowed() == FALSE) {
      Alert("DLL call is not allowed. Please switch on    Allow DDL import");
      Print("DLL call is not allowed. Please switch on    Allow DDL import");
      Comment("DLL call is not allowed. Please switch on    Allow DDL import");
   }
   double ld_0 = MarketInfo(Symbol(), MODE_SPREAD);
   if (ld_0 == 0.0) ld_0 = (Ask - Bid) / Point;
   gs_780 = "Possible   Head and Shoulders on " + Symbol() + "  " + Period() + " " + Hour() + ":" + Minute() + " " + Day() + "-" + Month() + "-" + Year();
   string ls_8 = "RSI Price Divergence (" + RSIPeriod + ")";
   if (WindowFind(ls_8) < 0) gi_136 = FALSE;
   int 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_360 = 0;
      gi_364 = 0;
      g_ibuf_380[li_16] = 0;
      g_ibuf_392[li_16] = 0;
      l_ifractals_28 = iFractals(NULL, 0, MODE_UPPER, li_16);
      if (l_ifractals_28 > 0.0 && High_Low_Mode == 1) {
         gda_208[1] = gda_208[2];
         gda_208[2] = gda_208[3];
         gda_208[3] = gda_208[4];
         gda_208[4] = gda_192[1];
         gda_192[0] = gda_192[1];
         gda_192[1] = gda_192[3];
         gda_192[3] = gda_192[5];
         gda_192[5] = l_ifractals_28;
         gia_196[0] = gia_196[1];
         gia_196[1] = gia_196[3];
         gia_196[3] = gia_196[5];
         gia_196[5] = li_16;
         if (MathAbs(gia_196[0] - gia_196[1]) + 1.0 > 0.0) {
            gia_196[6] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_196[0] - gia_196[1] - 1), gia_196[1] + 1);
            gda_192[6] = Low[gia_196[6]];
         } else {
            gia_196[6] = iLowest(NULL, 0, MODE_LOW, 5, gia_196[1] + 1);
            gda_192[6] = Low[gia_196[6]];
         }
         gia_196[2] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_196[1] - gia_196[3]) - 1.0, gia_196[3] + 1);
         gda_192[2] = Low[gia_196[2]];
         gia_196[4] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_196[3] - gia_196[5]) - 1.0, gia_196[5] + 1);
         gda_192[4] = Low[gia_196[4]];
         gia_196[7] = gia_196[5] - (gia_196[3] - gia_196[4]);
         if (gia_196[7] < 0) gia_196[7] = 0;
         gda_192[7] = gda_192[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_208[1] = gda_208[2];
         gda_208[2] = gda_208[3];
         gda_208[3] = gda_208[4];
         gda_208[4] = gda_192[1];
         gda_192[0] = gda_192[1];
         gda_192[1] = gda_192[3];
         gda_192[3] = gda_192[5];
         gda_192[5] = High[li_16];
         gia_196[0] = gia_196[1];
         gia_196[1] = gia_196[3];
         gia_196[3] = gia_196[5];
         gia_196[5] = li_16;
         if (MathAbs(gia_196[0] - gia_196[1]) + 1.0 > 0.0) {
            gia_196[6] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_196[0] - gia_196[1] - 1), gia_196[1] + 1);
            gda_192[6] = Low[gia_196[6]];
         } else {
            gia_196[6] = iLowest(NULL, 0, MODE_LOW, 5, gia_196[1] + 1);
            gda_192[6] = Low[gia_196[6]];
         }
         gia_196[2] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_196[1] - gia_196[3]) - 1.0, gia_196[3] + 1);
         gda_192[2] = Low[gia_196[2]];
         gia_196[4] = iLowest(NULL, 0, MODE_LOW, MathAbs(gia_196[3] - gia_196[5]) - 1.0, gia_196[5] + 1);
         gda_192[4] = Low[gia_196[4]];
         gia_196[7] = gia_196[5] - (gia_196[3] - gia_196[4]);
         if (gia_196[7] < 0) gia_196[7] = 0;
         gda_192[7] = gda_192[4];
      }
      l_ifractals_36 = iFractals(NULL, 0, MODE_LOWER, li_16);
      if (l_ifractals_36 > 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_200[1];
         gda_200[0] = gda_200[1];
         gda_200[1] = gda_200[3];
         gda_200[3] = gda_200[5];
         gda_200[5] = l_ifractals_36;
         gia_204[0] = gia_204[1];
         gia_204[1] = gia_204[3];
         gia_204[3] = gia_204[5];
         gia_204[5] = li_16;
         if (MathAbs(gia_204[0] - gia_204[1] - 1) > 0.0) {
            gia_204[6] = iHighest(NULL, 0, MODE_HIGH, MathAbs(gia_204[0] - gia_204[1] - 1), gia_204[1] + 1);
            gda_200[6] = High[gia_204[6]];
         } else {
            gia_204[6] = iHighest(NULL, 0, MODE_HIGH, 5, gia_204[1] + 1);
            gda_200[6] = High[gia_204[6]];
         }
         gia_204[2] = iHighest(NULL, 0, MODE_HIGH, gia_204[1] - gia_204[3] - 1, gia_204[3] + 1);
         gda_200[2] = High[gia_204[2]];
         gia_204[4] = iHighest(NULL, 0, MODE_HIGH, gia_204[3] - gia_204[5] - 1, gia_204[5] + 1);
         gda_200[4] = High[gia_204[4]];
         gia_204[7] = gia_204[5] - (gia_204[3] - gia_204[4]);
         if (gia_204[7] < 0) gia_204[7] = 0;
         gda_200[7] = gda_200[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_212[1] = gda_212[2];
         gda_212[2] = gda_212[3];
         gda_212[3] = gda_212[4];
         gda_212[4] = gda_200[1];
         gda_200[0] = gda_200[1];
         gda_200[1] = gda_200[3];
         gda_200[3] = gda_200[5];
         gda_200[5] = Low[li_16];
         gia_204[0] = gia_204[1];
         gia_204[1] = gia_204[3];
         gia_204[3] = gia_204[5];
         gia_204[5] = li_16;
         if (MathAbs(gia_204[0] - gia_204[1] - 1) > 0.0) {
            gia_204[6] = iHighest(NULL, 0, MODE_HIGH, MathAbs(gia_204[0] - gia_204[1] - 1), gia_204[1] + 1);
            gda_200[6] = High[gia_204[6]];
         } else {
            gia_204[6] = iHighest(NULL, 0, MODE_HIGH, 5, gia_204[1] + 1);
            gda_200[6] = High[gia_204[6]];
         }
         gia_204[2] = iHighest(NULL, 0, MODE_HIGH, gia_204[1] - gia_204[3] - 1, gia_204[3] + 1);
         gda_200[2] = High[gia_204[2]];
         gia_204[4] = iHighest(NULL, 0, MODE_HIGH, gia_204[3] - gia_204[5] - 1, gia_204[5] + 1);
         gda_200[4] = High[gia_204[4]];
         gia_204[7] = gia_204[5] - (gia_204[3] - gia_204[4]);
         if (gia_204[7] < 0) gia_204[7] = 0;
         gda_200[7] = gda_200[4];
      }
      gi_304 = gia_196[6];
      gi_308 = gia_196[1];
      gi_312 = gia_196[2];
      gi_316 = gia_196[3];
      gi_320 = gia_196[4];
      g_highest_324 = gia_196[5];
      gi_328 = gia_196[7];
      gi_332 = gia_204[6];
      gi_336 = gia_204[1];
      gi_340 = gia_204[2];
      gi_344 = gia_204[3];
      gi_348 = gia_204[4];
      g_lowest_352 = gia_204[5];
      gi_356 = gia_204[7];
      if (gda_192[1] < gda_192[3] && gda_192[5] < gda_192[3] && gda_192[2] < gda_192[1] && gda_192[4] < gda_192[5] && gia_196[1] > gia_196[2] && gda_192[2] + (gda_192[3] - gda_192[2]) / 100.0 * MathAbs(100 - Present_Retrace_Min) > gda_192[4] &&
         gda_192[2] - (gda_192[3] - gda_192[2]) / 100.0 * MathAbs(100 - Present_Retrace_Max) < gda_192[4]) {
         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_304], gda_192[6], Time[gi_308], gda_192[1]);
         ObjectCreate("H1" + li_20, OBJ_TREND, 0, Time[gi_308], gda_192[1], Time[gi_312], gda_192[2]);
         ObjectCreate("H2" + li_20, OBJ_TREND, 0, Time[gi_312], gda_192[2], Time[gi_316], gda_192[3]);
         ObjectCreate("H3" + li_20, OBJ_TREND, 0, Time[gi_316], gda_192[3], Time[gi_320], gda_192[4]);
         ObjectCreate("H4" + li_20, OBJ_TREND, 0, Time[gi_320], gda_192[4], Time[g_highest_324], gda_192[5]);
         ObjectCreate("H6" + li_20, OBJ_TREND, 0, Time[g_highest_324], gda_192[5], Time[gi_328], gda_192[7]);
         if (gda_192[3] > High[iHighest(NULL, 0, MODE_HIGH, gia_196[3] - gia_196[5] - 1, 1)]) {
            ObjectDelete("L5");
            ObjectDelete("L7");
            ObjectDelete("L8");
            ObjectDelete("L9");
            ObjectDelete("Target");
            if (Fibo_On == TRUE) {
               if (Fibo_Mode == 1) ObjectCreate("H5", OBJ_FIBO, 0, Time[gi_320], gda_192[4], Time[gi_316], gda_192[3]);
               if (Fibo_Mode == 2) ObjectCreate("H5", OBJ_EXPANSION, 0, Time[gi_316], gda_192[3], Time[gi_320], gda_192[4], Time[g_highest_324], gda_192[5]);
            }
            if (Neckline_On == TRUE) ObjectCreate("H7", OBJ_TREND, 0, Time[gi_312], gda_192[2], Time[gi_320], gda_192[4]);
            if (Enable_Target == TRUE) {
               gd_748 = (gda_192[3] - gda_192[4]) / 100.0;
               if (Fibo_Mode == 1) {
                  if (gda_192[5] > NormalizeDouble(gda_192[4] + 76.4 * gd_748, 4)) gd_732 = NormalizeDouble(gda_192[4] - 0.0 * gd_748, 4);
                  if (gda_192[5] <= NormalizeDouble(gda_192[4] + 76.4 * gd_748, 4) && gda_192[5] >= NormalizeDouble(gda_192[4] + 61.9 * gd_748, 4)) gd_732 = NormalizeDouble(gda_192[4] - 27.0 * gd_748, 4);
                  if (gda_192[5] <= NormalizeDouble(gda_192[4] + 61.8 * gd_748, 4)) gd_732 = NormalizeDouble(gda_192[4] - 61.8 * gd_748, 4);
               }
               if (Fibo_Mode == 2) gd_732 = MathAbs(1.618 * (gda_192[3] - gda_192[4]) - gda_192[5]);
               g_price_764 = gd_732 + (ld_0 + 4.0) * Point;
               if (gd_732 < gda_192[4] && gda_192[4] - g_price_764 >= Min_Target_Pips * Point && Enable_Target == TRUE) {
                  ObjectCreate("H8", OBJ_HLINE, 0, 0, gda_192[4] - 1.0 * Point);
                  ObjectCreate("H9", OBJ_HLINE, 0, 0, g_price_764);
                  ObjectCreate("Target", OBJ_TEXT, 0, TimeCurrent() + 100, 0);
                  ObjectSetText("Target", DoubleToStr((gda_192[4] - 1.0 * Point - g_price_764) / Point, 0), 10, "Arial", Blue);
                  ObjectMove("Target", 0, TimeCurrent() + 100 * Period(), g_price_764);
               } else {
                  ObjectDelete("H8");
                  ObjectDelete("H9");
               }
            }
            g_highest_224 = iHighest(NULL, 0, MODE_HIGH, gia_196[4] - 1, 0);
            gd_216 = High[g_highest_224];
            g_lowest_248 = iLowest(NULL, 0, MODE_LOW, gia_196[4] - 1, 0);
            gd_240 = Low[g_lowest_248];
            if (gd_216 > gda_192[5] && g_highest_224 < gia_196[4] && g_highest_224 < gia_196[5] && gd_216 < gda_192[3] && gd_240 > gda_192[4]) {
               gda_192[5] = gd_216;
               gia_196[5] = g_highest_224;
               gia_196[7] = 0;
               g_highest_324 = g_highest_224;
            }
            ObjectCreate("H0", OBJ_TREND, 0, Time[gi_304], gda_192[6], Time[gi_308], gda_192[1]);
            ObjectCreate("H1", OBJ_TREND, 0, Time[gi_308], gda_192[1], Time[gi_312], gda_192[2]);
            ObjectCreate("H2", OBJ_TREND, 0, Time[gi_312], gda_192[2], Time[gi_316], gda_192[3]);
            ObjectCreate("H3", OBJ_TREND, 0, Time[gi_316], gda_192[3], Time[gi_320], gda_192[4]);
            ObjectCreate("H4", OBJ_TREND, 0, Time[gi_320], gda_192[4], Time[g_highest_324], gda_192[5]);
            ObjectCreate("H6", OBJ_TREND, 0, Time[g_highest_324], gda_192[5], Time[gi_328], gda_192[7]);
            if (gi_136 == TRUE && Time[gi_308] < Time[gi_316] && Time[gi_316] < Time[g_highest_324]) {
               g_irsi_468 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_308 - 2);
               g_irsi_476 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_308 - 1);
               g_irsi_484 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_308);
               g_irsi_492 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_308 + 1);
               g_irsi_500 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_308 + 2);
               if (g_irsi_468 >= g_irsi_476 && g_irsi_468 >= g_irsi_484 && g_irsi_468 >= g_irsi_492 && g_irsi_468 >= g_irsi_500) {
                  g_irsi_420 = g_irsi_468;
                  gi_708 = gi_308 - 2;
               }
               if (g_irsi_476 >= g_irsi_468 && g_irsi_476 >= g_irsi_484 && g_irsi_476 >= g_irsi_492 && g_irsi_476 >= g_irsi_500) {
                  g_irsi_420 = g_irsi_476;
                  gi_708 = gi_308 - 1;
               }
               if (g_irsi_484 >= g_irsi_476 && g_irsi_484 >= g_irsi_468 && g_irsi_484 >= g_irsi_492 && g_irsi_484 >= g_irsi_500) {
                  g_irsi_420 = g_irsi_484;
                  gi_708 = gi_308;
               }
               if (g_irsi_492 >= g_irsi_468 && g_irsi_492 >= g_irsi_476 && g_irsi_492 >= g_irsi_484 && g_irsi_492 >= g_irsi_500) {
                  g_irsi_420 = g_irsi_492;
                  gi_708 = gi_308 + 1;
               }
               if (g_irsi_500 >= g_irsi_468 && g_irsi_500 >= g_irsi_476 && g_irsi_500 >= g_irsi_484 && g_irsi_500 >= g_irsi_492) {
                  g_irsi_420 = g_irsi_500;
                  gi_708 = gi_308 + 2;
               }
               g_irsi_508 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_316 - 2);
               g_irsi_516 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_316 - 1);
               g_irsi_524 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_316);
               g_irsi_532 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_316 + 1);
               g_irsi_540 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_316 + 2);
               if (g_irsi_508 >= g_irsi_516 && g_irsi_508 >= g_irsi_524 && g_irsi_508 >= g_irsi_532 && g_irsi_508 >= g_irsi_540) {
                  g_irsi_428 = g_irsi_508;
                  gi_712 = gi_316 - 2;
               }
               if (g_irsi_516 >= g_irsi_508 && g_irsi_516 >= g_irsi_524 && g_irsi_516 >= g_irsi_532 && g_irsi_516 >= g_irsi_540) {
                  g_irsi_428 = g_irsi_516;
                  gi_712 = gi_316 - 1;
               }
               if (g_irsi_524 >= g_irsi_516 && g_irsi_524 >= g_irsi_508 && g_irsi_524 >= g_irsi_532 && g_irsi_524 >= g_irsi_540) {
                  g_irsi_428 = g_irsi_524;
                  gi_712 = gi_316;
               }
               if (g_irsi_532 >= g_irsi_508 && g_irsi_532 >= g_irsi_516 && g_irsi_532 >= g_irsi_524 && g_irsi_532 >= g_irsi_540) {
                  g_irsi_428 = g_irsi_532;
                  gi_712 = gi_316 + 1;
               }
               if (g_irsi_540 >= g_irsi_508 && g_irsi_540 >= g_irsi_516 && g_irsi_540 >= g_irsi_524 && g_irsi_540 >= g_irsi_532) {
                  g_irsi_428 = g_irsi_540;
                  gi_712 = gi_316 + 2;
               }
               if (g_highest_324 < 2) g_highest_324 = 2;
               g_irsi_548 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, g_highest_324 - 2);
               g_irsi_556 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, g_highest_324 - 1);
               g_irsi_564 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, g_highest_324);
               g_irsi_572 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, g_highest_324 + 1);
               g_irsi_580 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, g_highest_324 + 2);
               if (g_irsi_548 >= g_irsi_556 && g_irsi_548 >= g_irsi_564 && g_irsi_548 >= g_irsi_572 && g_irsi_548 >= g_irsi_580) {
                  g_irsi_436 = g_irsi_548;
                  gi_716 = g_highest_324 - 2;
               }
               if (g_irsi_556 >= g_irsi_548 && g_irsi_556 >= g_irsi_564 && g_irsi_556 >= g_irsi_572 && g_irsi_556 >= g_irsi_580) {
                  g_irsi_436 = g_irsi_556;
                  gi_716 = g_highest_324 - 1;
               }
               if (g_irsi_564 >= g_irsi_556 && g_irsi_564 >= g_irsi_548 && g_irsi_564 >= g_irsi_572 && g_irsi_564 >= g_irsi_580) {
                  g_irsi_436 = g_irsi_564;
                  gi_716 = g_highest_324;
               }
               if (g_irsi_572 >= g_irsi_548 && g_irsi_572 >= g_irsi_556 && g_irsi_572 >= g_irsi_564 && g_irsi_572 >= g_irsi_580) {
                  g_irsi_436 = g_irsi_572;
                  gi_716 = g_highest_324 + 1;
               }
               if (g_irsi_580 >= g_irsi_548 && g_irsi_580 >= g_irsi_556 && g_irsi_580 >= g_irsi_564 && g_irsi_580 >= g_irsi_572) {
                  g_irsi_436 = g_irsi_580;
                  gi_716 = g_highest_324 + 2;
               }
               ObjectCreate("HR1", OBJ_TREND, WindowFind(ls_8), Time[gi_708], g_irsi_420, Time[gi_712], g_irsi_428);
               ObjectCreate("HR2", OBJ_TREND, WindowFind(ls_8), Time[gi_712], g_irsi_428, Time[gi_716], g_irsi_436);
            }
         }
      }
      if (gda_200[1] > gda_200[3] && gda_200[5] > gda_200[3] && gda_200[2] > gda_200[1] && gda_200[4] > gda_200[5] && gia_204[1] > gia_204[2] && gda_200[2] + (gda_200[2] - gda_200[3]) / 100.0 * MathAbs(100 - Present_Retrace_Max) > gda_200[4] &&
         gda_200[2] - (gda_200[2] - gda_200[3]) / 100.0 * MathAbs(100 - Present_Retrace_Min) < gda_200[4]) {
         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_332], gda_200[6], Time[gi_336], gda_200[1]);
         ObjectCreate("L1" + li_20, OBJ_TREND, 0, Time[gi_336], gda_200[1], Time[gi_340], gda_200[2]);
         ObjectCreate("L2" + li_20, OBJ_TREND, 0, Time[gi_340], gda_200[2], Time[gi_344], gda_200[3]);
         ObjectCreate("L3" + li_20, OBJ_TREND, 0, Time[gi_344], gda_200[3], Time[gi_348], gda_200[4]);
         ObjectCreate("L4" + li_20, OBJ_TREND, 0, Time[gi_348], gda_200[4], Time[g_lowest_352], gda_200[5]);
         ObjectCreate("L6" + li_20, OBJ_TREND, 0, Time[g_lowest_352], gda_200[5], Time[gi_356], gda_200[7]);
         if (gda_200[3] < Low[iLowest(NULL, 0, MODE_LOW, gia_204[3] - gia_204[5] - 1, 1)]) {
            ObjectDelete("H5");
            ObjectDelete("H7");
            ObjectDelete("H8");
            ObjectDelete("H9");
            ObjectDelete("Target");
            if (Fibo_On == TRUE) {
               if (Fibo_Mode == 1) ObjectCreate("L5", OBJ_FIBO, 0, Time[gi_348], gda_200[4], Time[gi_344], gda_200[3]);
               if (Fibo_Mode == 2) ObjectCreate("L5", OBJ_EXPANSION, 0, Time[gi_344], gda_200[3], Time[gi_348], gda_200[4], Time[g_lowest_352], gda_200[5]);
            }
            if (Neckline_On == TRUE) ObjectCreate("L7", OBJ_TREND, 0, Time[gi_340], gda_200[2], Time[gi_348], gda_200[4]);
            if (Enable_Target == TRUE) {
               if (Fibo_Mode == 1) {
                  gd_756 = (gda_200[4] - gda_200[3]) / 100.0;
                  if (gda_200[5] < NormalizeDouble(gda_200[4] - 76.4 * gd_756, 4)) g_price_740 = NormalizeDouble(gda_200[4] + 0.0 * gd_756, 4);
                  if (gda_200[5] >= NormalizeDouble(gda_200[4] - 76.4 * gd_756, 4) && gda_200[5] <= NormalizeDouble(gda_200[4] - 61.8 * gd_756, 4)) g_price_740 = NormalizeDouble(gda_200[4] + 27.0 * gd_756, 4);
                  if (gda_200[5] >= NormalizeDouble(gda_200[4] - 61.8 * gd_756, 4)) g_price_740 = NormalizeDouble(gda_200[4] + 61.8 * gd_756, 4);
                  g_price_740 -= 4.0 * Point;
               }
               if (Fibo_Mode == 2) g_price_740 = MathAbs(1.618 * (gda_200[4] - gda_200[3]) + gda_200[5]) - (ld_0 + 1.0) * Point;
               g_price_772 = gda_200[4] + (ld_0 + 1.0) * Point;
               if (g_price_740 > g_price_772 && g_price_740 - gda_200[4] >= Min_Target_Pips * Point && Enable_Target == TRUE) {
                  ObjectCreate("L8", OBJ_HLINE, 0, 0, g_price_772);
                  ObjectCreate("L9", OBJ_HLINE, 0, 0, g_price_740);
                  ObjectCreate("Target", OBJ_TEXT, 0, TimeCurrent() + 100, 0);
                  ObjectSetText("Target", DoubleToStr((g_price_740 - g_price_772) / Point, 0), 10, "Arial", Red);
                  ObjectMove("Target", 0, TimeCurrent() + 100 * Period(), g_price_740);
               } else {
                  ObjectDelete("L8");
                  ObjectDelete("L9");
               }
            }
            g_lowest_236 = iLowest(NULL, 0, MODE_LOW, gia_204[4] - 1, 0);
            gd_228 = Low[g_lowest_236];
            g_highest_260 = iHighest(NULL, 0, MODE_HIGH, gia_204[4] - 1, 0);
            gd_252 = High[g_highest_260];
            if (gd_228 < gda_200[5] && g_lowest_236 < gia_204[4] && g_lowest_236 < gia_204[5] && gd_228 > gda_200[3] && gd_252 < gda_200[4]) {
               gda_200[5] = gd_228;
               gia_204[5] = g_lowest_236;
               gia_204[7] = 0;
               g_lowest_352 = g_lowest_236;
            }
            ObjectCreate("L0", OBJ_TREND, 0, Time[gi_332], gda_200[6], Time[gi_336], gda_200[1]);
            ObjectCreate("L1", OBJ_TREND, 0, Time[gi_336], gda_200[1], Time[gi_340], gda_200[2]);
            ObjectCreate("L2", OBJ_TREND, 0, Time[gi_340], gda_200[2], Time[gi_344], gda_200[3]);
            ObjectCreate("L3", OBJ_TREND, 0, Time[gi_344], gda_200[3], Time[gi_348], gda_200[4]);
            ObjectCreate("L4", OBJ_TREND, 0, Time[gi_348], gda_200[4], Time[g_lowest_352], gda_200[5]);
            ObjectCreate("L6", OBJ_TREND, 0, Time[g_lowest_352], gda_200[5], Time[gi_356], gda_200[7]);
            if (gi_136 == TRUE && Time[gi_336] < Time[gi_344] && Time[gi_344] < Time[g_lowest_352]) {
               g_irsi_588 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_336 - 2);
               g_irsi_596 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_336 - 1);
               g_irsi_604 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_336);
               g_irsi_612 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_336 + 1);
               g_irsi_620 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_336 + 2);
               if (g_irsi_588 <= g_irsi_596 && g_irsi_588 <= g_irsi_604 && g_irsi_588 <= g_irsi_612 && g_irsi_588 <= g_irsi_620) {
                  g_irsi_444 = g_irsi_588;
                  gi_720 = gi_336 - 2;
               }
               if (g_irsi_596 <= g_irsi_588 && g_irsi_596 <= g_irsi_604 && g_irsi_596 <= g_irsi_612 && g_irsi_596 <= g_irsi_620) {
                  g_irsi_444 = g_irsi_596;
                  gi_720 = gi_336 - 1;
               }
               if (g_irsi_604 <= g_irsi_596 && g_irsi_604 <= g_irsi_588 && g_irsi_604 <= g_irsi_612 && g_irsi_604 <= g_irsi_620) {
                  g_irsi_444 = g_irsi_604;
                  gi_720 = gi_336;
               }
               if (g_irsi_612 <= g_irsi_588 && g_irsi_612 <= g_irsi_596 && g_irsi_612 <= g_irsi_604 && g_irsi_612 <= g_irsi_620) {
                  g_irsi_444 = g_irsi_612;
                  gi_720 = gi_336 + 1;
               }
               if (g_irsi_620 <= g_irsi_588 && g_irsi_620 <= g_irsi_596 && g_irsi_620 <= g_irsi_604 && g_irsi_620 <= g_irsi_612) {
                  g_irsi_444 = g_irsi_620;
                  gi_720 = gi_336 + 2;
               }
               g_irsi_628 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_344 - 2);
               g_irsi_636 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_344 - 1);
               g_irsi_644 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_344);
               g_irsi_652 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_344 + 1);
               g_irsi_660 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, gi_344 + 2);
               if (g_irsi_628 <= g_irsi_636 && g_irsi_628 <= g_irsi_644 && g_irsi_628 <= g_irsi_652 && g_irsi_628 <= g_irsi_660) {
                  g_irsi_452 = g_irsi_628;
                  gi_724 = gi_344 - 2;
               }
               if (g_irsi_636 <= g_irsi_628 && g_irsi_636 <= g_irsi_644 && g_irsi_636 <= g_irsi_652 && g_irsi_636 <= g_irsi_660) {
                  g_irsi_452 = g_irsi_636;
                  gi_724 = gi_344 - 1;
               }
               if (g_irsi_644 <= g_irsi_636 && g_irsi_644 <= g_irsi_628 && g_irsi_644 <= g_irsi_652 && g_irsi_644 <= g_irsi_660) {
                  g_irsi_452 = g_irsi_644;
                  gi_724 = gi_344;
               }
               if (g_irsi_652 <= g_irsi_628 && g_irsi_652 <= g_irsi_636 && g_irsi_652 <= g_irsi_644 && g_irsi_652 <= g_irsi_660) {
                  g_irsi_452 = g_irsi_652;
                  gi_724 = gi_344 + 1;
               }
               if (g_irsi_660 <= g_irsi_628 && g_irsi_660 <= g_irsi_636 && g_irsi_660 <= g_irsi_644 && g_irsi_660 <= g_irsi_652) {
                  g_irsi_452 = g_irsi_660;
                  gi_724 = gi_344 + 2;
               }
               if (g_lowest_352 < 2) g_lowest_352 = 2;
               g_irsi_668 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, g_lowest_352 - 2);
               g_irsi_676 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, g_lowest_352 - 1);
               g_irsi_684 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, g_lowest_352);
               g_irsi_692 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, g_lowest_352 + 1);
               g_irsi_700 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, g_lowest_352 + 2);
               if (g_irsi_668 <= g_irsi_676 && g_irsi_668 <= g_irsi_684 && g_irsi_668 <= g_irsi_692 && g_irsi_668 <= g_irsi_700) {
                  g_irsi_460 = g_irsi_668;
                  gi_728 = g_lowest_352 - 2;
               }
               if (g_irsi_676 <= g_irsi_668 && g_irsi_676 <= g_irsi_684 && g_irsi_676 <= g_irsi_692 && g_irsi_676 <= g_irsi_700) {
                  g_irsi_460 = g_irsi_676;
                  gi_728 = g_lowest_352 - 1;
               }
               if (g_irsi_684 <= g_irsi_676 && g_irsi_684 <= g_irsi_668 && g_irsi_684 <= g_irsi_692 && g_irsi_684 <= g_irsi_700) {
                  g_irsi_460 = g_irsi_684;
                  gi_728 = g_lowest_352;
               }
               if (g_irsi_692 <= g_irsi_668 && g_irsi_692 <= g_irsi_676 && g_irsi_692 <= g_irsi_684 && g_irsi_692 <= g_irsi_700) {
                  g_irsi_460 = g_irsi_692;
                  gi_728 = g_lowest_352 + 1;
               }
               if (g_irsi_700 <= g_irsi_668 && g_irsi_700 <= g_irsi_676 && g_irsi_700 <= g_irsi_684 && g_irsi_700 <= g_irsi_692) {
                  g_irsi_460 = g_irsi_700;
                  gi_728 = g_lowest_352 + 2;
               }
               ObjectCreate("LR1", OBJ_TREND, WindowFind(ls_8), Time[gi_720], g_irsi_444, Time[gi_724], g_irsi_452);
               ObjectCreate("LR2", OBJ_TREND, WindowFind(ls_8), Time[gi_724], g_irsi_452, Time[gi_728], g_irsi_460);
            }
         }
      }
      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_372[li_16] = ld_44;
      g_ibuf_376[li_16] = ld_56;
      g_ibuf_384[li_16] = ld_68;
      g_ibuf_388[li_16] = ld_80;
      g_ibuf_396[li_16] = ld_92;
      g_ibuf_400[li_16] = ld_100;
      if (li_52 > 0 && li_64 > 0) {
         ld_108 = (TimeCurrent() - li_52) / 60 / Period();
         ld_116 = g_ibuf_376[li_16] + (g_ibuf_376[li_16] - g_ibuf_372[li_16]) / 2.0;
         if (ld_108 < 1.0) ld_108 = 1;
         gd_272 = High[iHighest(NULL, 0, MODE_HIGH, ld_108, 0)];
         gd_264 = Low[iLowest(NULL, 0, MODE_LOW, ld_108, 0)] + ld_0 * Point;
      } else {
         gd_264 = 0;
         gd_272 = 0;
      }
      if (li_76 > 0 && li_88 > 0) {
         ld_124 = (TimeCurrent() - li_76) / 60 / Period();
         ld_132 = g_ibuf_388[li_16] + (g_ibuf_388[li_16] - g_ibuf_384[li_16]) / 2.0;
         if (ld_124 < 1.0) ld_124 = 1;
         gd_288 = High[iHighest(NULL, 0, MODE_HIGH, ld_124, 0)];
         gd_280 = Low[iLowest(NULL, 0, MODE_LOW, ld_124, 0)] - ld_0 * Point;
      } else {
         gd_280 = 0;
         gd_288 = 0;
      }
      if (gd_264 >= g_ibuf_376[li_16] && gd_272 <= g_ibuf_372[li_16] && g_ibuf_372[li_16] > 0.0 && g_ibuf_376[li_16] > 0.0 && gd_264 > ld_116) {
         g_ibuf_380[li_16] = 2;
         gi_360 = 2;
         ObjectSet("HR1", OBJPROP_COLOR, Shoulder_High);
         ObjectSet("HR2", OBJPROP_COLOR, Shoulder_High);
      } else {
         g_ibuf_380[li_16] = 0;
         gi_360 = 0;
         ObjectSet("HR1", OBJPROP_COLOR, Head_Low);
         ObjectSet("HR2", OBJPROP_COLOR, Head_Low);
      }
      if (gd_264 >= g_ibuf_376[li_16] && gd_272 <= g_ibuf_372[li_16] && g_ibuf_372[li_16] > 0.0 && g_ibuf_376[li_16] > 0.0 && gd_264 > ld_116 && g_irsi_428 <= g_irsi_420 &&
         g_irsi_436 < g_irsi_428) {
         g_ibuf_380[li_16] = 1;
         gi_360 = 1;
         ObjectSet("HR1", OBJPROP_COLOR, Head_High);
         ObjectSet("HR2", OBJPROP_COLOR, Head_High);
      }
      if (gd_264 >= g_ibuf_376[li_16] && gd_272 <= g_ibuf_372[li_16] && g_ibuf_372[li_16] > 0.0 && g_ibuf_376[li_16] > 0.0 && gd_264 > ld_116 && g_irsi_428 <= g_irsi_420 &&
         g_irsi_436 < g_irsi_428 && g_irsi_444 >= 70.0 && g_irsi_452 <= 60.0 && g_irsi_460 >= 50.0) {
         g_ibuf_380[li_16] = 3;
         gi_360 = 1;
         ObjectSet("HR1", OBJPROP_COLOR, Head_High);
         ObjectSet("HR2", OBJPROP_COLOR, Head_High);
      }
      if (gd_264 >= g_ibuf_376[li_16] && gd_272 <= g_ibuf_372[li_16] && g_ibuf_372[li_16] > 0.0 && g_ibuf_376[li_16] > 0.0 && gd_264 > ld_116 && g_irsi_444 >= 70.0 && g_irsi_452 <= 60.0 &&
         g_irsi_460 >= 50.0) {
         g_ibuf_380[li_16] = 4;
         gi_360 = 1;
         ObjectSet("HR1", OBJPROP_COLOR, Head_High);
         ObjectSet("HR2", OBJPROP_COLOR, Head_High);
      }
      if (gd_288 <= g_ibuf_388[li_16] && gd_280 >= g_ibuf_384[li_16] && g_ibuf_384[li_16] > 0.0 && g_ibuf_388[li_16] > 0.0 && gd_280 < ld_132) {
         g_ibuf_392[li_16] = 2;
         gi_364 = 2;
         ObjectSet("LR1", OBJPROP_COLOR, Shoulder_High);
         ObjectSet("LR2", OBJPROP_COLOR, Shoulder_High);
      } else {
         g_ibuf_392[li_16] = 0;
         gi_364 = 0;
         ObjectSet("LR1", OBJPROP_COLOR, Head_Low);
         ObjectSet("LR2", OBJPROP_COLOR, Head_Low);
      }
      if (gd_288 <= g_ibuf_388[li_16] && gd_280 >= g_ibuf_384[li_16] && g_ibuf_384[li_16] > 0.0 && g_ibuf_388[li_16] > 0.0 && gd_280 < ld_132 && g_irsi_452 >= g_irsi_444 &&
         g_irsi_460 > g_irsi_452) {
         g_ibuf_392[li_16] = 1;
         gi_364 = 1;
         ObjectSet("LR1", OBJPROP_COLOR, Head_High);
         ObjectSet("LR2", OBJPROP_COLOR, Head_High);
      }
      if (gd_288 <= g_ibuf_388[li_16] && gd_280 >= g_ibuf_384[li_16] && g_ibuf_384[li_16] > 0.0 && g_ibuf_388[li_16] > 0.0 && gd_280 < ld_132 && g_irsi_452 >= g_irsi_444 &&
         g_irsi_460 > g_irsi_452 && g_irsi_444 <= 30.0 && g_irsi_452 <= 40.0 && g_irsi_460 <= 50.0) {
         g_ibuf_392[li_16] = 3;
         gi_364 = 1;
         ObjectSet("LR1", OBJPROP_COLOR, Head_High);
         ObjectSet("LR2", OBJPROP_COLOR, Head_High);
      }
      if (gd_288 <= g_ibuf_388[li_16] && gd_280 >= g_ibuf_384[li_16] && g_ibuf_384[li_16] > 0.0 && g_ibuf_388[li_16] > 0.0 && gd_280 < ld_132 && g_irsi_444 <= 30.0 && g_irsi_452 <= 40.0 &&
         g_irsi_460 <= 50.0) {
         g_ibuf_392[li_16] = 4;
         gi_364 = 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_LEVELCOLOR, Fibo);
      ObjectSet("L5", OBJPROP_LEVELCOLOR, Fibo);
      ObjectSet("H5", OBJPROP_LEVELSTYLE, STYLE_DASHDOTDOT);
      ObjectSet("L5", OBJPROP_LEVELSTYLE, STYLE_DASHDOTDOT);
      ObjectSet("H5", OBJPROP_LEVELWIDTH, 0);
      ObjectSet("L5", OBJPROP_LEVELWIDTH, 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 == FALSE) {
         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_360 == 1 || gi_364 == 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() >= 15) {
      Alarm_Message();
      if (gi_160 == 1) SendMail("Head and Shoulders", gs_780);
   }
   if (gi_360 == 1 || gi_364 == 1 && gi_144 == 1 && Period() == PERIOD_M15 && Minute() == 0 || Minute() == 15 || Minute() == 30 || Minute() == 45 && Seconds() >= 15) {
      Alarm_Message();
      if (gi_160 == 1) SendMail("Head and Shoulders", gs_780);
   }
   if (gi_360 == 1 || gi_364 == 1 && gi_148 == 1 && Period() == 45 && Minute() == 0 || Minute() == 30 && Seconds() >= 15) {
      Alarm_Message();
      if (gi_160 == 1) SendMail("Head and Shoulders", gs_780);
   }
   if (gi_360 == 1 || gi_364 == 1 && gi_152 == 1 && Period() >= PERIOD_H1 && Minute() == 0 && Seconds() >= 15) {
      Alarm_Message();
      if (gi_160 == 1) SendMail("Head and Shoulders", gs_780);
   }
   if (gi_360 == 1 || gi_364 == 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_368++;
      if (gi_160 == 1) SendMail("Head and Shoulders", gs_780);
   } else g_count_368 = 0;
   TimeCheck(gs_76);
   return (0);
}
