/*
   Generated by EX4-TO-MQ4 decompiler V4.0.427.1 [-]
   Website: https://purebeam.biz
   E-mail : purebeam@gmail.com
*/

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Red
#property indicator_color3 Red
#property indicator_color4 Blue
#property indicator_color5 Yellow
#property indicator_color6 Yellow

#import "Fire_Signal.dll"
   int _(int a0, int a1);
   void _Deinit();
   void _Window(int a0, string a1);
#import

//extern string PRODUCT_KEY = "";
extern bool Onscreen;Signals = TRUE;
extern bool Show;Full;Indication = TRUE;
extern bool Show;Diff = TRUE;
extern bool Show;Floaters = FALSE;
extern bool Show;Legend = TRUE;
extern bool Show;Trendlines = TRUE;
extern bool Show;Retracelines = TRUE;
extern bool Show;Targetlines = TRUE;
extern bool Show;Medianline = TRUE;
extern bool Show;TrendLines3 = TRUE;
extern bool Show;Fiblines = TRUE;
extern bool Show;Fiblines3 = TRUE;
extern bool Show;Bars = TRUE;
extern bool Show;Label = TRUE;
extern int ShiftLabel = 10;
extern bool Show;SupResLines3 = TRUE;
extern int mySRlevel = 1;
extern int NumSRLines = 5;
extern bool Show;Dates = FALSE;
extern bool Sound;Alert = FALSE;
extern int win = 0;
extern int price;x;offset = 500;
extern int price;y;offset = 10;
extern string myFont = "Times New Roman";
extern int myFontSize = 20;
extern int myBars = 100;
extern int myThreshold = 1;
extern int myRetracePips = 20;
extern int myTargetPips = 20;
extern int NumComments = 5;
extern int yIncLegend = 50;
extern color Buy_color = Lime;
extern color Wait_color = Yellow;
extern color Sell_color = Red;
extern color myUpperTrendLineColor = Red;
extern int myUpperTrendLineStyle = 0;
extern int myUpperTrendLineWidth = 2;
extern string myUpperSoundFile = ".";
extern color myLowerTrendLineColor = Blue;
extern int myLowerTrendLineStyle = 0;
extern int myLowerTrendLineWidth = 2;
extern string myLowerSoundFile = "siren.wav";
extern color myRetraceLineColor = White;
extern int myRetraceLineStyle = 0;
extern int myRetraceLineWidth = 1;
extern color myTargetLineColor = White;
extern int myTargetLineStyle = 0;
extern int myTargetLineWidth = 1;
extern color myMedianLineColor = White;
extern int myMedianLineStyle = 0;
extern int myMedianLineWidth = 1;
extern color myUpperTrendLine3Color = White;
extern int myUpperTrendLine3Style = 0;
extern int myUpperTrendLine3Width = 3;
extern color myLowerTrendLine3Color = White;
extern int myLowerTrendLine3Style = 0;
extern int myLowerTrendLine3Width = 3;
extern color myUpperSRColor = White;
extern int myUpperSRStyle = 0;
extern int myUpperSRWidth = 1;
extern color myLowerSRColor = White;
extern int myLowerSRStyle = 0;
extern int myLowerSRWidth = 1;
extern double iLevel1 = 0.24;
extern double iLevel2 = 0.382;
extern double iLevel3 = 0.5;
extern double iLevel4 = 0.618;
extern double iLevel5 = 0.76;
extern color Fibcolor1 = Yellow;
extern color Fibcolor2 = Yellow;
extern color Fibcolor3 = Yellow;
extern color Fibcolor4 = Yellow;
extern color Fibcolor5 = Yellow;
extern int myFibLineStyle = 4;
extern int myFibLineWidth = 1;
extern int myFibLine3Style = 3;
extern int myFibLine3Width = 1;
extern double Period1 = 5.0;
extern double Period2 = 13.0;
extern double Period3 = 34.0;
extern string Dev_Step_1 = "1,3";
extern string Dev_Step_2 = "8,5";
extern string Dev_Step_3 = "13,8";
extern int Symbol_1_Kod = 168;
extern int Symbol_2_Kod = 168;
extern int Symbol_3_Kod = 168;
extern int Symbol_1_Size = 1;
extern int Symbol_2_Size = 2;
extern int Symbol_3_Size = 4;
double g_ibuf_496[];
double g_ibuf_500[];
double g_ibuf_504[];
double g_ibuf_508[];
double g_ibuf_512[];
double g_ibuf_516[];
int gi_unused_520;
int gi_unused_524;
int gi_unused_528;
int gi_532;
int gi_536;
int gi_540;
int gi_544;
int gi_548;
int gi_552;
string g_symbol_556;
string gs_564;
string gs_572;
int gi_580;
int g_timeframe_584;
bool gi_588;
bool gi_592;
bool gi_596;
int g_bars_600 = -1;
int gi_unused_604 = 65535;
int g_index_608;
int g_index_612;
int gi_unused_616;
int g_index_620;
int g_index_624;
string gsa_628[26];
string gs_632;
string gs_dummy_640;
int gi_648;
double gd_652;
double gda_660[2];
double gda_664[2];
double gda_668[2];
double gda_672[2];
double gda_676[2];
double gda_680[2];
double gda_684[2];
double gda_688[2];
double gd_692;
double gd_700;
double gd_708;
double gd_716;
double gd_724;
double gd_732;
double gd_740;
double gd_748;
double gd_756;
double gd_764;
double gd_772;
double gd_780;
double gd_788;
int gia_unused_796[2];
int gia_unused_800[2];
int gia_unused_804[2];
int gia_unused_808[2];
int gia_unused_812[2];
int gia_unused_816[2];
int gia_820[2];
int gia_824[2];
string gs_3lzz_844 = "3lzz";
string g_name_852;
string g_name_860;
string gs_868;
string gs_876;
string gs_884;
string gs_892;
string gs_900;
string gs_908;
double gd_916;
double gd_924;
int gi_932;
int gia_936[2];
int gia_940[2];
int g_index_976;
int g_index_980;
int g_index_984;
int g_index_988;
int g_index_992;
int g_index_996;
double gd_1000;
double gd_1008;
double gd_1016;
double gda_1024[5];
double gda_1028[5];
double gda_1032[5];
double gda_1036[5];
int gi_1040;
int gi_1044;
string gs_1048;
int gia_1056[2];
int gia_1060[2];
int gia_1064[2];
int gia_1068[2];
int gia_1072[2];
int gia_1076[2];
int gia_unused_1080[2];
int gia_unused_1084[2];
double gd_1088;
double gd_1096;
double g_iopen_1120;
double g_iopen_1128;
double g_iclose_1136;
int gi_1144;
int gi_1148;
int gi_1152;
int gi_1156;
string g_text_1160;
color g_color_1168;
int gi_1172;

int init() {
   int lia_8[];
   g_timeframe_584 = Period();
   gs_564 = f0_10(g_timeframe_584);
   g_symbol_556 = Symbol();
   gi_580 = Digits;
   gd_652 = Point;
   Print(WindowHandle(Symbol(), Period()));
   if (gi_580 == 5 || gi_580 == 3) {
      gi_580--;
      gd_652 = 10.0 * gd_652;
   }
   gs_572 = "tbb" + g_symbol_556 + gs_564;
   gd_724 = myThreshold * gd_652;
   gd_748 = myRetracePips * gd_652;
   gd_788 = myTargetPips * gd_652;
   g_name_852 = gs_3lzz_844 + "001";
   g_name_860 = gs_3lzz_844 + "002";
   gs_868 = gs_3lzz_844 + "003";
   gs_876 = gs_3lzz_844 + "004";
   gs_884 = gs_3lzz_844 + "005";
   gs_892 = gs_3lzz_844 + "006";
   gs_900 = gs_3lzz_844 + "007";
   gs_908 = gs_3lzz_844 + "008";
   gda_1032[0] = iLevel1;
   gda_1032[1] = iLevel2;
   gda_1032[2] = iLevel3;
   gda_1032[3] = iLevel4;
   gda_1032[4] = iLevel5;
   gda_1036[0] = Fibcolor1;
   gda_1036[1] = Fibcolor2;
   gda_1036[2] = Fibcolor3;
   gda_1036[3] = Fibcolor4;
   gda_1036[4] = Fibcolor5;
   if (Period1 > 0.0) gi_unused_520 = MathCeil(Period1 * Period());
   else gi_unused_520 = 0;
   if (Period2 > 0.0) gi_unused_524 = MathCeil(Period2 * Period());
   else gi_unused_524 = 0;
   if (Period3 > 0.0) gi_unused_528 = MathCeil(Period3 * Period());
   else gi_unused_528 = 0;
   if (Period1 > 0.0) {
      SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, Symbol_1_Size);
      SetIndexArrow(0, Symbol_1_Kod);
      SetIndexBuffer(0, g_ibuf_496);
      SetIndexEmptyValue(0, 0.0);
      SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID, Symbol_1_Size);
      SetIndexArrow(1, Symbol_1_Kod);
      SetIndexBuffer(1, g_ibuf_500);
      SetIndexEmptyValue(1, 0.0);
   }
   if (Period2 > 0.0) {
      SetIndexStyle(2, DRAW_ARROW, STYLE_SOLID, Symbol_2_Size);
      SetIndexArrow(2, Symbol_2_Kod);
      SetIndexBuffer(2, g_ibuf_504);
      SetIndexEmptyValue(2, 0.0);
      SetIndexStyle(3, DRAW_ARROW, STYLE_SOLID, Symbol_2_Size);
      SetIndexArrow(3, Symbol_2_Kod);
      SetIndexBuffer(3, g_ibuf_508);
      SetIndexEmptyValue(3, 0.0);
   }
   if (Period3 > 0.0) {
      SetIndexStyle(4, DRAW_ARROW, STYLE_SOLID, Symbol_3_Size);
      SetIndexArrow(4, Symbol_3_Kod);
      SetIndexBuffer(4, g_ibuf_512);
      SetIndexEmptyValue(4, 0.0);
      SetIndexStyle(5, DRAW_ARROW, STYLE_SOLID, Symbol_3_Size);
      SetIndexArrow(5, Symbol_3_Kod);
      SetIndexBuffer(5, g_ibuf_516);
      SetIndexEmptyValue(5, 0.0);
   }
   int li_unused_0 = 0;
   int li_unused_4 = 0;
   int li_12 = 0;
   if (f0_0(Dev_Step_1, li_12, lia_8) == 1) {
      gi_536 = lia_8[1];
      gi_532 = lia_8[0];
   }
   if (f0_0(Dev_Step_2, li_12, lia_8) == 1) {
      gi_544 = lia_8[1];
      gi_540 = lia_8[0];
   }
   if (f0_0(Dev_Step_3, li_12, lia_8) == 1) {
      gi_552 = lia_8[1];
      gi_548 = lia_8[0];
   }
   f0_9();
   return (0);
}

void f0_1(string as_0) {
   string name_16;
   int str_len_8 = StringLen(as_0);
   int li_12 = 0;
   while (li_12 < ObjectsTotal()) {
      name_16 = ObjectName(li_12);
      if (StringSubstr(name_16, 0, str_len_8) != as_0) {
         li_12++;
         continue;
      }
      ObjectDelete(name_16);
   }
}

int deinit() {
   f0_1(gs_3lzz_844);
   f0_6();
   _Deinit();
   return (0);
}

int f0_9() {
   //_Window(WindowHandle(Symbol(), Period()), PRODUCT_KEY);
   f0_1(gs_3lzz_844);
   f0_6();
   if (Bars != g_bars_600) {
      gi_588 = _(0, 1);
      gi_592 = _(1, 0);
      gi_596 = _(1, 0);
   }
   if (_(_(_(_(_(0, 1), _(_(0, 0), _(_(0, 0), 0))), _(0, 0)), 0) == 1, _(1, 0) > _(1, 1)) == 0) return (0);
   if (Period1 > 0.0) f0_2(g_ibuf_496, g_ibuf_500, Period1, gi_532, gi_536);
   if (Period2 > 0.0) f0_2(g_ibuf_504, g_ibuf_508, Period2, gi_540, gi_544);
   if (Period3 > 0.0) f0_2(g_ibuf_512, g_ibuf_516, Period3, gi_548, gi_552);
   if (Onscreen.Signals) {
      g_iclose_1136 = iClose(g_symbol_556, PERIOD_D1, 0);
      g_iopen_1128 = iOpen(g_symbol_556, PERIOD_D1, 0);
      g_iopen_1120 = iOpen(g_symbol_556, PERIOD_W1, 0);
      if (g_iclose_1136 < g_iopen_1128) {
         gi_1156 = _(1, 0);
         gi_1148 = _(0, 0);
      } else {
         gi_1156 = _(0, 0);
         gi_1148 = _(0, 1);
      }
      if (g_iclose_1136 < g_iopen_1120) {
         gi_1152 = _(_(0, 0) == 1, _(0, 0) != 1);
         gi_1144 = _(0, _(0, 0));
      } else {
         gi_1152 = _(0, _(0, 0));
         gi_1144 = _(_(0, _(0, 0)) < 1, _(0, _(0, 0)) > 1);
      }
      if (_(_(0, _(0, 0)) < 1, _(0, _(0, 0)) >= 1)) {
         if (g_ibuf_512[0] != 0.0) {
            g_text_1160 = "Strength: VERY STRONG  -- BUY NEXT CANDLE --";
            g_color_1168 = Buy_color;
         } else {
            if (g_ibuf_504[0] != 0.0 && gi_1144) {
               g_text_1160 = "Strength: STRONG  -- BUY NEXT CANDLE --";
               g_color_1168 = Buy_color;
            } else {
               if (g_ibuf_496[0] != 0.0 && gi_1144 && gi_1148) {
                  g_text_1160 = "Strength: O.K  -- BUY NEXT CANDLE --";
                  g_color_1168 = Buy_color;
               } else {
                  if (g_ibuf_516[0] != 0.0) {
                     g_text_1160 = "Strength: VERY STRONG  -- SELL NEXT CANDLE --";
                     g_color_1168 = Sell_color;
                  } else {
                     if (g_ibuf_508[0] != 0.0 && gi_1152) {
                        g_text_1160 = "Strength: STRONG  -- SELL NEXT CANDLE --";
                        g_color_1168 = Sell_color;
                     } else {
                        if (g_ibuf_500[0] != 0.0 && gi_1152 && gi_1156) {
                           g_text_1160 = "Strength: O.K  -- SELL NEXT CANDLE --";
                           g_color_1168 = Sell_color;
                        } else {
                           g_text_1160 = "Get Ready!...";
                           g_color_1168 = Wait_color;
                        }
                     }
                  }
               }
            }
         }
      }
      ObjectCreate(gs_3lzz_844 + "tw", OBJ_LABEL, win, 0, 0);
      ObjectSetText(gs_3lzz_844 + "tw", g_text_1160, myFontSize, myFont, g_color_1168);
      ObjectSet(gs_3lzz_844 + "tw", OBJPROP_CORNER, 0);
      ObjectSet(gs_3lzz_844 + "tw", OBJPROP_XDISTANCE, price.x.offset);
      ObjectSet(gs_3lzz_844 + "tw", OBJPROP_YDISTANCE, price.y.offset);
      if (Sound.Alert && gi_1172 != Time[0] && g_text_1160 != "WAIT") {
         gi_1172 = Time[0];
         Alert(g_symbol_556, " " + g_text_1160);
      }
   }
   if (!Show.Full.Indication) return (0);
   if (gi_588) {
      if (g_ibuf_496[0] != 0.0) {
         gi_588 = _(0, _(0, 0));
         if (Sound.Alert) Alert(g_symbol_556, "  ", gs_564, " Level 1 Lower " + DoubleToStr(Close[0], gi_580));
      }
      if (g_ibuf_500[0] != 0.0) {
         gi_588 = _(0, _(0, 0));
         if (Sound.Alert) Alert(g_symbol_556, "  ", gs_564, " Level 1 Upper " + DoubleToStr(Close[0], gi_580));
      }
   }
   if (gi_592) {
      if (g_ibuf_504[0] != 0.0) {
         gi_592 = _(0, _(0, 0));
         if (Sound.Alert) Alert(g_symbol_556, "  ", gs_564, " Level 2 Lower " + DoubleToStr(Close[0], gi_580));
      }
      if (g_ibuf_508[0] != 0.0) {
         gi_592 = _(0, _(0, 0));
         if (Sound.Alert) Alert(g_symbol_556, "  ", gs_564, " Level 2 Upper " + DoubleToStr(Close[0], gi_580));
      }
   }
   if (gi_596) {
      if (g_ibuf_512[0] != 0.0) {
         gi_596 = _(0, _(0, 0));
         if (Sound.Alert) Alert(g_symbol_556, "  ", gs_564, " Level 3 Lower " + DoubleToStr(Close[0], gi_580));
      }
      if (g_ibuf_516[0] != 0.0) {
         gi_596 = _(0, 0);
         if (Sound.Alert) Alert(g_symbol_556, "  ", gs_564, " Level 3 Upper " + DoubleToStr(Close[0], gi_580));
      }
   }
   g_index_992 = 0;
   g_index_996 = 0;
   g_index_984 = 0;
   g_index_988 = 0;
   g_index_976 = 0;
   g_index_980 = 0;
   for (g_index_612 = 0; g_index_612 < 1000; g_index_612++) {
      if (_(_(0, 0) <= 1, _(0, 0) >= 1)) {
         if (g_ibuf_512[g_index_612] != 0.0 && g_index_996 < 2) {
            gia_1076[g_index_996] = g_index_612;
            gda_680[g_index_996] = g_ibuf_512[g_index_612];
            g_index_996++;
         } else {
            if (g_ibuf_516[g_index_612] != 0.0 && g_index_992 < 2) {
               gia_1072[g_index_992] = g_index_612;
               gda_676[g_index_992] = g_ibuf_516[g_index_612];
               g_index_992++;
            } else {
               if (g_ibuf_504[g_index_612] != 0.0 && g_index_988 < 2) {
                  gia_1068[g_index_988] = g_index_612;
                  gda_672[g_index_988] = g_ibuf_504[g_index_612];
                  g_index_988++;
               } else {
                  if (g_ibuf_508[g_index_612] != 0.0 && g_index_984 < 2) {
                     gia_1064[g_index_984] = g_index_612;
                     gda_668[g_index_984] = g_ibuf_508[g_index_612];
                     g_index_984++;
                  } else {
                     if (g_ibuf_496[g_index_612] != 0.0 && g_index_980 < 2) {
                        gia_1060[g_index_980] = g_index_612;
                        gda_664[g_index_980] = g_ibuf_496[g_index_612];
                        g_index_980++;
                     } else {
                        if (g_ibuf_500[g_index_612] != 0.0 && g_index_976 < 2) {
                           gia_1056[g_index_976] = g_index_612;
                           gda_660[g_index_976] = g_ibuf_500[g_index_612];
                           g_index_976++;
                        }
                     }
                  }
               }
            }
         }
      }
      if (g_index_996 >= 2 && g_index_992 >= 2 && g_index_988 >= 2 && g_index_984 >= 2 && g_index_980 >= 2 && g_index_976 >= 2) break;
   }
   if (Show.Dates) {
      gi_unused_616 = 0;
      gs_632 = "";
      for (g_index_608 = 0; g_index_608 < 26; g_index_608++) gsa_628[g_index_608] = "";
      for (g_index_612 = myBars; g_index_612 >= 0; g_index_612--) {
         if (_(_(0, 0) <= 1, _(0, 0) >= 1)) {
            if (g_ibuf_512[g_index_612] != 0.0) {
               f0_8(TimeToStr(Time[g_index_612]) + " bot 3 ");
               continue;
            }
            if (g_ibuf_516[g_index_612] != 0.0) {
               f0_8(TimeToStr(Time[g_index_612]) + " top 3 ");
               continue;
            }
            if (g_ibuf_504[g_index_612] != 0.0) {
               f0_8(TimeToStr(Time[g_index_612]) + " bot 2 ");
               continue;
            }
            if (g_ibuf_508[g_index_612] != 0.0) {
               f0_8(TimeToStr(Time[g_index_612]) + " top 2 ");
               continue;
            }
            if (g_ibuf_496[g_index_612] != 0.0) {
               f0_8(TimeToStr(Time[g_index_612]) + " bot 1 ");
               continue;
            }
            if (g_ibuf_500[g_index_612] != 0.0) f0_8(TimeToStr(Time[g_index_612]) + " top 1 ");
         }
      }
      for (g_index_608 = 0; g_index_608 < NumComments; g_index_608++) {
         if (gsa_628[g_index_608] == "") break;
         gs_632 = gs_632 
            + "\n" 
         + gsa_628[g_index_608];
      }
      Comment(gs_632);
   }
   if (Show.TrendLines3) {
      g_index_992 = 0;
      g_index_996 = 0;
      for (g_index_612 = 0; g_index_612 < 1000; g_index_612++) {
         if (_(1, 0)) {
            if (g_ibuf_512[g_index_612] != 0.0 && g_index_996 < _(1, 1)) {
               gia_940[g_index_996] = Time[g_index_612];
               gda_680[g_index_996] = g_ibuf_512[g_index_612];
               g_index_996++;
            } else {
               if (g_ibuf_516[g_index_612] != 0.0 && g_index_992 < _(1, 1)) {
                  gia_936[g_index_992] = Time[g_index_612];
                  gda_676[g_index_992] = g_ibuf_516[g_index_612];
                  g_index_992++;
               }
            }
         }
         if (g_index_996 >= _(1, 1) && g_index_992 >= _(1, 1)) break;
      }
      f0_4(g_name_852 + "3", gia_936[1], gia_936[0], gda_676[1], gda_676[0], myUpperTrendLine3Color, myUpperTrendLine3Style, myUpperTrendLine3Width);
      f0_4(g_name_860 + "3", gia_940[1], gia_940[0], gda_680[1], gda_680[0], myLowerTrendLine3Color, myLowerTrendLine3Style, myLowerTrendLine3Width);
      f0_4(gs_868 + "3", gia_936[0], Time[0], gda_676[0], gda_676[0], myUpperTrendLine3Color, myUpperTrendLine3Style, myUpperTrendLine3Width);
      f0_4(gs_876 + "3", gia_940[0], Time[0], gda_680[0], gda_680[0], myLowerTrendLine3Color, myLowerTrendLine3Style, myLowerTrendLine3Width);
      if (gia_940[0] < gia_936[0]) gd_1096 = gda_676[0] - Close[0];
      else gd_1096 = Close[0] - gda_680[0];
      gd_1088 = gda_676[0] - gda_680[0];
   }
   if (Show.Trendlines) {
      g_index_620 = 0;
      g_index_624 = 0;
      for (g_index_612 = 0; g_index_612 < 1000; g_index_612++) {
         if (_(1, 0)) {
            if (g_ibuf_512[g_index_612] != 0.0 && g_index_624 < _(1, 1)) {
               gia_824[g_index_624] = Time[g_index_612];
               gda_688[g_index_624] = g_ibuf_512[g_index_612];
               g_index_624++;
            } else {
               if (g_ibuf_516[g_index_612] != 0.0 && g_index_620 < _(1, 1)) {
                  gia_820[g_index_620] = Time[g_index_612];
                  gda_684[g_index_620] = g_ibuf_516[g_index_612];
                  g_index_620++;
               } else {
                  if (g_ibuf_504[g_index_612] != 0.0 && g_index_624 < _(_(1, 1), _(1, 1))) {
                     gia_824[g_index_624] = Time[g_index_612];
                     gda_688[g_index_624] = g_ibuf_504[g_index_612];
                     g_index_624++;
                  } else {
                     if (g_ibuf_508[g_index_612] != 0.0 && g_index_620 < 2) {
                        gia_820[g_index_620] = Time[g_index_612];
                        gda_684[g_index_620] = g_ibuf_508[g_index_612];
                        g_index_620++;
                     } else {
                        if (g_ibuf_496[g_index_612] != 0.0 && g_index_624 < 2) {
                           gia_824[g_index_624] = Time[g_index_612];
                           gda_688[g_index_624] = g_ibuf_496[g_index_612];
                           g_index_624++;
                        } else {
                           if (g_ibuf_500[g_index_612] != 0.0 && g_index_620 < 2) {
                              gia_820[g_index_620] = Time[g_index_612];
                              gda_684[g_index_620] = g_ibuf_500[g_index_612];
                              g_index_620++;
                           }
                        }
                     }
                  }
               }
            }
         }
         if (g_index_624 >= 2 && g_index_620 >= 2) break;
      }
      f0_4(g_name_852, gia_820[1], gia_820[0], gda_684[1], gda_684[0], myUpperTrendLineColor, myUpperTrendLineStyle, myUpperTrendLineWidth);
      f0_4(g_name_860, gia_824[1], gia_824[0], gda_688[1], gda_688[0], myLowerTrendLineColor, myLowerTrendLineStyle, myLowerTrendLineWidth);
      f0_4(gs_868, gia_820[0], Time[0], gda_684[0], gda_684[0], myUpperTrendLineColor, myUpperTrendLineStyle, myUpperTrendLineWidth);
      f0_4(gs_876, gia_824[0], Time[0], gda_688[0], gda_688[0], myLowerTrendLineColor, myLowerTrendLineStyle, myLowerTrendLineWidth);
      if (Show.Medianline) {
         gd_916 = MathAbs(gda_684[0] + gda_688[0]) / 2.0;
         for (g_index_612 = 0; g_index_612 < 1000; g_index_612++) {
            if (Time[g_index_612] > gia_820[0] && Time[g_index_612] > gia_824[0]) continue;
            if (gd_916 < High[g_index_612] && gd_916 > Low[g_index_612]) break;
         }
         if (gia_824[1] > gia_820[1]) {
            gi_932 = gia_824[1];
            gd_924 = gda_688[1];
         } else {
            gi_932 = gia_820[1];
            gd_924 = gda_684[1];
         }
         f0_4(gs_876 + "pf", gi_932, Time[g_index_612], gd_924, gd_916, myMedianLineColor, myMedianLineStyle, myMedianLineWidth);
      }
      if (Show.Retracelines) {
         gd_732 = gda_684[0] - gd_748;
         gd_740 = gda_688[0] + gd_748;
         f0_4(gs_884, gia_820[0], Time[0], gd_732, gd_732, myRetraceLineColor, myRetraceLineStyle, myRetraceLineWidth);
         f0_4(gs_892, gia_824[0], Time[0], gd_740, gd_740, myRetraceLineColor, myRetraceLineStyle, myRetraceLineWidth);
      }
      if (Show.Targetlines) {
         gd_756 = gd_772;
         gd_764 = gd_780;
         gd_772 = gda_684[0] + gd_788;
         gd_780 = gda_688[0] - gd_788;
         f0_4(gs_900, gia_820[0], Time[0], gd_756, gd_756, myTargetLineColor, myTargetLineStyle, myTargetLineWidth);
         f0_4(gs_908, gia_824[0], Time[0], gd_764, gd_764, myTargetLineColor, myTargetLineStyle, myTargetLineWidth);
      }
      gd_692 = ObjectGetValueByShift(g_name_852, 0);
      gd_700 = ObjectGetValueByShift(g_name_860, 0);
      gd_708 = Ask + gd_724;
      gd_716 = Bid - gd_724;
      if (Sound.Alert) {
         if (gd_692 >= gd_716 && gd_692 <= gd_708) PlaySound(myUpperSoundFile);
         if (gd_700 >= gd_716 && gd_700 <= gd_708) PlaySound(myLowerSoundFile);
         if (gda_684[0] >= gd_716 && gda_684[0] <= gd_708) PlaySound(myUpperSoundFile);
         if (gda_688[0] >= gd_716 && gda_688[0] <= gd_708) PlaySound(myLowerSoundFile);
      }
   }
   if (Show.SupResLines3) {
      g_index_992 = 0;
      g_index_996 = 0;
      for (g_index_612 = 0; g_index_612 < 1000; g_index_612++) {
         if (mySRlevel == 3) {
            gd_1000 = g_ibuf_512[g_index_612];
            gd_1008 = g_ibuf_516[g_index_612];
         } else {
            if (mySRlevel == 2) {
               gd_1000 = g_ibuf_504[g_index_612];
               gd_1008 = g_ibuf_508[g_index_612];
            } else {
               gd_1000 = g_ibuf_496[g_index_612];
               gd_1008 = g_ibuf_500[g_index_612];
            }
         }
         if (gd_1000 != 0.0 && g_index_996 < NumSRLines) {
            g_index_996++;
            f0_4(gs_868 + "SR" + g_index_612, Time[g_index_612], Time[0], gd_1000, gd_1000, myLowerSRColor, myLowerSRStyle, myLowerSRWidth);
         }
         if (gd_1008 != 0.0 && g_index_992 < NumSRLines) {
            g_index_992++;
            f0_4(gs_876 + "SR" + g_index_612, Time[g_index_612], Time[0], gd_1008, gd_1008, myUpperSRColor, myUpperSRStyle, myUpperSRWidth);
         }
         if (g_index_996 >= NumSRLines && g_index_992 >= NumSRLines) break;
      }
   }
   if (Show.Fiblines) {
      g_index_620 = 0;
      g_index_624 = 0;
      for (g_index_612 = 0; g_index_612 < 1000; g_index_612++) {
         if (_(1, 0)) {
            if (g_ibuf_512[g_index_612] != 0.0 && g_index_624 < 1) {
               gia_824[g_index_624] = Time[g_index_612];
               gda_688[g_index_624] = g_ibuf_512[g_index_612];
               g_index_624++;
            } else {
               if (g_ibuf_516[g_index_612] != 0.0 && g_index_620 < 1) {
                  gia_820[g_index_620] = Time[g_index_612];
                  gda_684[g_index_620] = g_ibuf_516[g_index_612];
                  g_index_620++;
               } else {
                  if (g_ibuf_504[g_index_612] != 0.0 && g_index_624 < 1) {
                     gia_824[g_index_624] = Time[g_index_612];
                     gda_688[g_index_624] = g_ibuf_504[g_index_612];
                     g_index_624++;
                  } else {
                     if (g_ibuf_508[g_index_612] != 0.0 && g_index_620 < 1) {
                        gia_820[g_index_620] = Time[g_index_612];
                        gda_684[g_index_620] = g_ibuf_508[g_index_612];
                        g_index_620++;
                     } else {
                        if (g_ibuf_496[g_index_612] != 0.0 && g_index_624 < 1) {
                           gia_824[g_index_624] = Time[g_index_612];
                           gda_688[g_index_624] = g_ibuf_496[g_index_612];
                           g_index_624++;
                        } else {
                           if (g_ibuf_500[g_index_612] != 0.0 && g_index_620 < 1) {
                              gia_820[g_index_620] = Time[g_index_612];
                              gda_684[g_index_620] = g_ibuf_500[g_index_612];
                              g_index_620++;
                           }
                        }
                     }
                  }
               }
            }
         }
         if (g_index_624 >= 1 && g_index_620 >= 1) break;
      }
      gi_1040 = MathMin(gia_820[0], gia_824[0]);
      gd_1016 = gda_684[0] - gda_688[0];
      for (g_index_612 = 0; g_index_612 < 5; g_index_612++) {
         gda_1024[g_index_612] = gda_688[0] + gd_1016 * gda_1032[g_index_612];
         gda_1024[g_index_612] = NormalizeDouble(gda_1024[g_index_612], Digits);
         f0_4(gs_868 + "" + g_index_612, gi_1040, Time[0], gda_1024[g_index_612], gda_1024[g_index_612], gda_1036[g_index_612], myFibLineStyle, myFibLineWidth);
      }
   }
   if (Show.Fiblines3) {
      g_index_620 = 0;
      g_index_624 = 0;
      for (g_index_612 = 0; g_index_612 < 1000; g_index_612++) {
         if (_(1, 0)) {
            if (g_ibuf_512[g_index_612] != 0.0 && g_index_624 < 1) {
               gia_824[g_index_624] = Time[g_index_612];
               gda_688[g_index_624] = g_ibuf_512[g_index_612];
               g_index_624++;
            } else {
               if (g_ibuf_516[g_index_612] != 0.0 && g_index_620 < 1) {
                  gia_820[g_index_620] = Time[g_index_612];
                  gda_684[g_index_620] = g_ibuf_516[g_index_612];
                  g_index_620++;
               }
            }
         }
         if (g_index_624 >= 1 && g_index_620 >= 1) break;
      }
      gi_1040 = MathMin(gia_820[0], gia_824[0]);
      gd_1016 = gda_684[0] - gda_688[0];
      for (g_index_612 = 0; g_index_612 < 5; g_index_612++) {
         gda_1028[g_index_612] = gda_688[0] + gd_1016 * gda_1032[g_index_612];
         gda_1028[g_index_612] = NormalizeDouble(gda_1028[g_index_612], Digits);
         f0_4(gs_868 + "" + g_index_612, gi_1040, Time[0], gda_1028[g_index_612], gda_1028[g_index_612], gda_1036[g_index_612], myFibLine3Style, myFibLine3Width);
      }
   }
   if (Show.Legend) f0_3();
   g_bars_600 = Bars;
   return (0);
}

int start() {
   f0_9();
   return (0);
}

string f0_10(int ai_0) {
   string ls_ret_4;
   switch (ai_0) {
   case 1:
      ls_ret_4 = "M1";
      break;
   case 5:
      ls_ret_4 = "M5";
      break;
   case 15:
      ls_ret_4 = "M15";
      break;
   case 30:
      ls_ret_4 = "M30";
      break;
   case 60:
      ls_ret_4 = "H1";
      break;
   case 240:
      ls_ret_4 = "H4";
      break;
   case 1440:
      ls_ret_4 = "D1";
      break;
   case 10080:
      ls_ret_4 = "W1";
      break;
   case 43200:
      ls_ret_4 = "MN";
   }
   return (ls_ret_4);
}

int f0_2(double &ada_0[], double &ada_4[], int ai_8, int ai_12, int ai_16) {
   double ld_36;
   double ld_44;
   double ld_52;
   double ld_60;
   double ld_68;
   double ld_76;
   for (int li_20 = Bars - ai_8; li_20 >= 0; li_20--) {
      ld_36 = Low[iLowest(NULL, 0, MODE_LOW, ai_8, li_20)];
      if (ld_36 == ld_76) ld_36 = 0.0;
      else {
         ld_76 = ld_36;
         if (Low[li_20] - ld_36 > ai_12 * Point) ld_36 = 0.0;
         else {
            for (int li_24 = 1; li_24 <= ai_16; li_24++) {
               ld_44 = ada_0[li_20 + li_24];
               if (ld_44 != 0.0 && ld_44 > ld_36) ada_0[li_20 + li_24] = 0.0;
            }
         }
      }
      ada_0[li_20] = ld_36;
      ld_36 = High[iHighest(NULL, 0, MODE_HIGH, ai_8, li_20)];
      if (ld_36 == ld_68) ld_36 = 0.0;
      else {
         ld_68 = ld_36;
         if (ld_36 - High[li_20] > ai_12 * Point) ld_36 = 0.0;
         else {
            for (li_24 = 1; li_24 <= ai_16; li_24++) {
               ld_44 = ada_4[li_20 + li_24];
               if (ld_44 != 0.0 && ld_44 < ld_36) ada_4[li_20 + li_24] = 0.0;
            }
         }
      }
      ada_4[li_20] = ld_36;
   }
   ld_68 = -1;
   int li_28 = -1;
   ld_76 = -1;
   int li_32 = -1;
   for (li_20 = Bars - ai_8; li_20 >= 0; li_20--) {
      ld_52 = ada_0[li_20];
      ld_60 = ada_4[li_20];
      if (ld_52 == 0.0 && ld_60 == 0.0) continue;
      if (ld_60 != 0.0) {
         if (ld_68 > 0.0) {
            if (ld_68 < ld_60) ada_4[li_28] = 0;
            else ada_4[li_20] = 0;
         }
         if (ld_68 < ld_60 || ld_68 < 0.0) {
            ld_68 = ld_60;
            li_28 = li_20;
         }
         ld_76 = -1;
      }
      if (ld_52 != 0.0) {
         if (ld_76 > 0.0) {
            if (ld_76 > ld_52) ada_0[li_32] = 0;
            else ada_0[li_20] = 0;
         }
         if (ld_52 < ld_76 || ld_76 < 0.0) {
            ld_76 = ld_52;
            li_32 = li_20;
         }
         ld_68 = -1;
      }
   }
   for (li_20 = Bars - 1; li_20 >= 0; li_20--) {
      if (li_20 >= Bars - ai_8) ada_0[li_20] = 0.0;
      else {
         ld_44 = ada_4[li_20];
         if (ld_44 != 0.0) ada_4[li_20] = ld_44;
      }
   }
   if (!Show.Floaters) {
      for (li_20 = Bars - 1; li_20 >= 0; li_20--) {
         if (ada_4[li_20] > High[li_20]) ada_4[li_20] = 0.0;
         if (ada_0[li_20] < Low[li_20]) ada_0[li_20] = 0.0;
      }
   }
   return (0);
}

int f0_7(string as_0, int &ai_8, int &aia_12[]) {
   int li_20;
   int str2int_16 = StrToInteger(as_0);
   if (str2int_16 > 0) {
      ai_8++;
      li_20 = ArrayResize(aia_12, ai_8);
      if (li_20 == 0) return (-1);
      aia_12[ai_8 - 1] = str2int_16;
      return (1);
   }
   return (0);
}

int f0_0(string as_0, int &ai_8, int aia_12[]) {
   string ls_28;
   if (StringLen(as_0) == 0) return (-1);
   string ls_16 = as_0;
   int li_24 = 0;
   ai_8 = 0;
   ArrayResize(aia_12, ai_8);
   while (StringLen(ls_16) > 0) {
      li_24 = StringFind(ls_16, ",");
      if (li_24 > 0) {
         ls_28 = StringSubstr(ls_16, 0, li_24);
         ls_16 = StringSubstr(ls_16, li_24 + 1, StringLen(ls_16));
      } else {
         if (StringLen(ls_16) > 0) {
            ls_28 = ls_16;
            ls_16 = "";
         }
      }
      if (f0_7(ls_28, ai_8, aia_12) == 0) return (-2);
   }
   return (1);
}

string f0_11(string as_0, int ai_8) {
   string ls_unused_12;
   return (StringSubstr(as_0 + "                                         ", 0, ai_8));
}

void f0_8(string as_0) {
   if (as_0 != "") {
      gi_648 = _(_(1, 1) > 0, 0);
      for (int li_8 = 23; li_8 >= 0; li_8--) gsa_628[li_8 + 1] = gsa_628[li_8];
      gsa_628[0] = f0_11(as_0, 30);
   }
}

void f0_4(string a_name_0, int a_datetime_8, int a_datetime_12, double a_price_16, double a_price_24, color a_color_32, int a_style_36, int a_width_40) {
   string name_44;
   ObjectDelete(a_name_0);
   ObjectCreate(a_name_0, OBJ_TREND, 0, a_datetime_8, a_price_16, a_datetime_12, a_price_24, 0, 0);
   ObjectSet(a_name_0, OBJPROP_RAY, _(_(1, 1) > 0, 0));
   ObjectSet(a_name_0, OBJPROP_COLOR, a_color_32);
   ObjectSet(a_name_0, OBJPROP_STYLE, a_style_36);
   ObjectSet(a_name_0, OBJPROP_WIDTH, a_width_40);
   if (Show.Label && a_price_16 == a_price_24) {
      name_44 = a_name_0 + "linelbl";
      ObjectDelete(name_44);
      if (ObjectFind(name_44) != 0) {
         ObjectCreate(name_44, OBJ_TEXT, 0, Time[0] + 60 * g_timeframe_584, a_price_16);
         ObjectSetText(name_44, DoubleToStr(a_price_16, gi_580), 8, "Arial", a_color_32);
      } else ObjectMove(name_44, 0, Time[0] + 60 * g_timeframe_584, a_price_16);
   }
}

void f0_3() {
   gi_1044 = 0;
   if (Show.Trendlines) {
      f0_5(gs_3lzz_844 + "ut", "" + DoubleToStr(gd_756, gi_580), 30, yIncLegend, myTargetLineColor);
      f0_5(gs_3lzz_844 + "ut1", "a", 10, yIncLegend, myTargetLineColor, "Wingdings");
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "us", "" + DoubleToStr(gda_684[0], gi_580), 30, yIncLegend + gi_1044, myUpperTrendLineColor);
      f0_5(gs_3lzz_844 + "us1", "a", 10, yIncLegend + gi_1044, myUpperTrendLineColor, "Wingdings");
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "ur", "" + DoubleToStr(gd_732, gi_580), 30, yIncLegend + gi_1044, myRetraceLineColor);
      f0_5(gs_3lzz_844 + "ur1", "a", 10, yIncLegend + gi_1044, myRetraceLineColor, "Wingdings");
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "lr", "" + DoubleToStr(gd_740, gi_580), 30, yIncLegend + gi_1044, myRetraceLineColor);
      f0_5(gs_3lzz_844 + "lr1", "a", 10, yIncLegend + gi_1044, myRetraceLineColor, "Wingdings");
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "ls", "" + DoubleToStr(gda_688[0], gi_580), 30, yIncLegend + gi_1044, myLowerTrendLineColor);
      f0_5(gs_3lzz_844 + "ls1", "a", 10, yIncLegend + gi_1044, myLowerTrendLineColor, "Wingdings");
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "lt", "" + DoubleToStr(gd_764, gi_580), 30, yIncLegend + gi_1044, myTargetLineColor);
      f0_5(gs_3lzz_844 + "lt1", "a", 10, yIncLegend + gi_1044, myTargetLineColor, "Wingdings");
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "ml", "" + DoubleToStr(gd_916, gi_580), 30, yIncLegend + gi_1044, myMedianLineColor);
      f0_5(gs_3lzz_844 + "ml1", "a", 10, yIncLegend + gi_1044, myMedianLineColor, "Wingdings");
   }
   if (Show.Fiblines3) {
      gi_1044 += 20;
      for (g_index_612 = 4; g_index_612 >= 0; g_index_612--) {
         gi_1044 += 20;
         gs_1048 = DoubleToStr(100.0 * gda_1032[g_index_612], 1) + "%    ";
         f0_5(gs_3lzz_844 + "" + g_index_612, " " + gs_1048 + DoubleToStr(gda_1028[g_index_612], gi_580), 30, yIncLegend + gi_1044, gda_1036[g_index_612]);
         f0_5(gs_3lzz_844 + "fib31." + g_index_612, "a", 10, yIncLegend + gi_1044, gda_1036[g_index_612], "Wingdings");
      }
   }
   if (Show.Fiblines) {
      gi_1044 += 20;
      for (g_index_612 = 4; g_index_612 >= 0; g_index_612--) {
         gi_1044 += 20;
         gs_1048 = DoubleToStr(100.0 * gda_1032[g_index_612], 1) + "%     ";
         f0_5(gs_3lzz_844 + "Fib" + g_index_612, " " + gs_1048 + DoubleToStr(gda_1024[g_index_612], gi_580), 30, yIncLegend + gi_1044, gda_1036[g_index_612]);
         f0_5(gs_3lzz_844 + "fib1" + g_index_612, "a", 10, yIncLegend + gi_1044, gda_1036[g_index_612], "Wingdings");
      }
   }
   if (Show.Bars) {
      gi_1044 += 40;
      f0_5(gs_3lzz_844 + "sem3u", "Upper Level " + DoubleToStr(gda_676[0], gi_580) + "[" + gia_1072[0] + "]", 30, yIncLegend + gi_1044, Yellow);
      f0_5(gs_3lzz_844 + "sem3u1", CharToStr(Symbol_3_Kod), 10, yIncLegend + gi_1044, Yellow, "Wingdings");
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "sem3l", "Lower Level " + DoubleToStr(gda_680[0], gi_580) + "[" + gia_1076[0] + "]", 30, yIncLegend + gi_1044, Yellow);
      f0_5(gs_3lzz_844 + "sem3l1", CharToStr(Symbol_3_Kod), 10, yIncLegend + gi_1044, Yellow, "Wingdings");
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "sem2u", "Upper Level " + DoubleToStr(gda_668[0], gi_580) + "[" + gia_1064[0] + "]", 30, yIncLegend + gi_1044, Blue);
      f0_5(gs_3lzz_844 + "sem2u1", CharToStr(Symbol_2_Kod), 10, yIncLegend + gi_1044, Blue, "Wingdings");
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "sem2l", "Lower Level " + DoubleToStr(gda_672[0], gi_580) + "[" + gia_1068[0] + "]", 30, yIncLegend + gi_1044, Blue);
      f0_5(gs_3lzz_844 + "sem2l1", CharToStr(Symbol_2_Kod), 10, yIncLegend + gi_1044, Blue, "Wingdings");
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "sem1u", "Upper Level " + DoubleToStr(gda_660[0], gi_580) + "[" + gia_1056[0] + "]", 30, yIncLegend + gi_1044, Red);
      f0_5(gs_3lzz_844 + "sem1u1", CharToStr(Symbol_1_Kod), 10, yIncLegend + gi_1044, Red, "Wingdings");
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "sem1l", "Lower Level " + DoubleToStr(gda_664[0], gi_580) + "[" + gia_1060[0] + "]", 30, yIncLegend + gi_1044, Red);
      f0_5(gs_3lzz_844 + "sem1l1", CharToStr(Symbol_1_Kod), 10, yIncLegend + gi_1044, Red, "Wingdings");
   }
   if (Show.Diff) {
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "s3ra", " Range    " + DoubleToStr(gd_1088 / gd_652, 0), 30, yIncLegend + gi_1044, Yellow);
      gi_1044 += 20;
      f0_5(gs_3lzz_844 + "S3Rb", " Retrace  " + DoubleToStr(gd_1096 / gd_652, 0), 30, yIncLegend + gi_1044, Yellow);
   }
}

void f0_5(string a_name_0, string a_text_8, int a_x_16, int a_y_20, color a_color_24, string a_fontname_28 = "Arial", int a_fontsize_36 = 10, int a_angle_40 = 0) {
   if (ObjectFind(a_name_0) == -1) {
      ObjectCreate(a_name_0, OBJ_LABEL, 0, 0, 0);
      ObjectSet(a_name_0, OBJPROP_CORNER, 0);
      if (a_angle_40 != 0) ObjectSet(a_name_0, OBJPROP_ANGLE, a_angle_40);
   }
   ObjectSet(a_name_0, OBJPROP_XDISTANCE, a_x_16);
   ObjectSet(a_name_0, OBJPROP_YDISTANCE, a_y_20);
   ObjectSetText(a_name_0, a_text_8, a_fontsize_36, a_fontname_28, a_color_24);
}

void f0_6() {
   string name_0 = "";
   ObjectCreate(name_0, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(name_0, CharToStr(78), 5, "arial", DimGray);
   ObjectSet(name_0, OBJPROP_CORNER, 3);
   ObjectSet(name_0, OBJPROP_XDISTANCE, 5);
   ObjectSet(name_0, OBJPROP_YDISTANCE, 5);
}