/*
   Generated by EX4-TO-MQ4 decompiler V4.0.427.4 [-]
   Website: https://purebeam.biz
   E-mail : purebeam@gmail.com
*/
#property copyright "Copyright © 2012, Dean Malone"
#property link      "http://www.compassfx.com"

#property indicator_chart_window

#import "CompassFX.dll"
   string gGrab(string a0, string a1);
#import "synergy_pro.dll"
   string returnReg(string a0, string a1);
#import

int g_file_76;
bool gi_80 = FALSE;
string gs_unused_84;
double gd_unused_92 = 1.1;
bool gi_100 = TRUE;
bool gi_104 = FALSE;
bool gi_108 = FALSE;
string gs_tahoma_112 = "Tahoma";
int g_fontsize_120 = 9;
int gi_124 = 5;
int gi_128 = 0;
int g_width_132 = 2;
int gi_136 = 6;
int gi_140;
int gi_144 = 0;
int gi_148 = 10;
int gi_unused_152;
double gda_156[10];
double gd_unused_160;
extern string Custom_Indicator = "Synergy Pro Trade Alert v1.0";
extern string Copyright = "© 2012, Dean Malone";
extern string Web_Address = "www.synergyprotrader.com";
extern string Mode = "=== Alert Mode settings ===";
extern string Conservative_Mode = "N";
extern string Potential_Exits_Display = "Y";
extern string Potential_Exits_Alert = "Y";
extern int Expire_Alert_Time = 5;
extern string Color = "=== Alert Color settings ===";
extern color Alert_Long_Color = Green;
extern color Alert_Short_Color = Crimson;
extern color Alert_Expired_Color = DarkOrange;
extern color Potential_Exits_Color = Yellow;
extern color Initial_StopLoss_Color = OrangeRed;
extern color Potential_Target_Color = SeaGreen;
extern string Font = "=== Alert Font settings ===";
extern string Font_Selection_1 = "1 = Arial          2 = Arial Black ";
extern string Font_Selection_2 = "3 = Tahoma    4 = Verdana ";
extern int Font_Type = 2;
extern int Font_Size = 9;
extern string Corner = "=== Alert Corner settings ===";
extern string Corner_Selection = "U = Upper left    L = Lower left";
extern string Alert_Corner = "U";
int gi_316 = 0;
int gi_320 = 10;
int gi_324 = 5;
int gi_328 = 4;
string gs_332 = "Synergy_Pro_APB_Arrows";
double gd_340 = 0.25;
bool gi_348 = TRUE;
bool gi_352 = TRUE;
string gs_356 = "Arial Black";
int gi_364 = 6;
int gi_368 = 17;
bool gi_372 = TRUE;
bool gi_unused_376 = TRUE;
bool gi_380 = FALSE;
bool gi_unused_384 = FALSE;
int g_digits_388;
bool gi_392;
int gi_396 = 800;
int gi_400;
bool gi_404;
bool gi_408;
int gi_412;
int gi_416;
int gi_unused_420 = 0;
int gi_unused_424 = 0;
int g_period_428 = 5;
int g_period_432 = 13;
int g_ma_method_436 = MODE_LWMA;
int g_applied_price_440 = PRICE_TYPICAL;
int g_period_444 = 13;
int g_applied_price_448 = PRICE_TYPICAL;
double g_ibuf_452[];
double g_ibuf_456[];
double g_ibuf_460[];
double g_ibuf_464[];
double g_ibuf_468[];
double g_ibuf_472[];
double g_ibuf_476[];
double g_point_480;
double g_price_488;
double gd_496;
double gd_504;
double gd_512;
double gd_520;
double gd_528;
double g_iao_536;
double g_iao_544;
double g_iao_552;
double g_iao_560;
double g_icustom_568;
double gd_576 = 0.0;
double gd_584 = 0.0;
double gd_592 = 0.0;
double gd_600 = 0.0;
double gd_unused_608 = 0.0;
double gd_616 = 0.0;
double gd_624 = 0.0;
double gd_632 = 0.0;
double gd_640 = 0.0;
double gd_648;
double gd_656;
double gd_664;
double gd_672;
double gd_680;
double g_iatr_688;
double gd_696;
double gd_704;
double gd_unused_712;
double gd_720;
double gd_728 = 3.0;
double gd_736 = 4.75;
double gd_744 = 3.75;
double g_ima_752;
double g_ima_760;
double gd_768;
double gd_776;
double g_ima_784;
double g_ima_792;
double gd_800;
double gd_808;
double gda_unused_832[];
double gda_unused_836[];
double gd_856;
double gd_864;
bool gi_880 = TRUE;
bool gi_884 = FALSE;
bool gi_888 = TRUE;
int g_str2time_892;
int gi_unused_896 = 0;
int gi_900 = 0;
int gi_904 = 0;
int g_time_908 = 0;
int gi_unused_912 = 0;
int gi_916 = 0;
int gi_920 = 0;
int gi_924 = 0;
string g_str_concat_928;
string gs_dummy_936;
string gs_944;
bool gi_unused_952 = TRUE;
bool gi_unused_956 = TRUE;
bool gi_unused_960 = FALSE;
int g_time_964 = 0;
string gsa_968[] = {"SynPriceDirB1", "SynPriceDirB2", "SynPriceDirT", "SynPriceDirL1", "SynPriceDirL2", "SynPriceDirL3", "SynPriceDirL4", "SynPriceDirBz", ""};
int g_timeframe_972 = 0;
int g_applied_price_976 = PRICE_HIGH;
int g_applied_price_980 = PRICE_LOW;
int gi_984 = 9;
int gi_988 = 9;
double gd_992 = 0.25;
double gd_1000 = 0.25;
int gi_1008 = 1;
int gi_1012 = 1;
int gi_1016 = 1;
int gi_unused_1020 = 0;
int gi_unused_1024 = 0;
double g_ibuf_1028[];
double g_ibuf_1032[];
double g_ibuf_1036[];
double g_ibuf_1040[];
double g_ibuf_1044[];
double g_ibuf_1048[];
double g_ibuf_1052[];
double gda_unused_1056[][12];
int gi_unused_1060;
int gi_1064;
int gi_1068;
int gi_1072;
string gs_dummy_1076;
string gs_dummy_1084;
bool gi_unused_1096 = FALSE;
bool gi_unused_1100 = FALSE;
string gs_dummy_1104;

int f0_17() {
   int str2int_0;
   bool li_4;
   int li_8;
   g_file_76 = FileOpen("synergy_d.bin", FILE_CSV|FILE_READ);
   if (g_file_76 < 1) li_4 = FALSE;
   else {
      str2int_0 = StrToInteger(FileReadString(g_file_76));
      FileClose(g_file_76);
      li_4 = TRUE;
   }
   if (TimeLocal() - str2int_0 >= 86400 || li_4 == FALSE) {
      li_8 = f0_2();
      switch (li_8) {
      case 0:
         g_file_76 = FileOpen("synergy_d.bin", FILE_WRITE, 8);
         if (g_file_76 < 1) {
            Print("Cannot open password cache!");
            return (0);
         }
         FileWrite(g_file_76, TimeLocal());
         FileClose(g_file_76);
         break;
      case 1:
         Alert("Invalid software key provided!! Please re-install the software with the correct key.");
         gi_80 = TRUE;
         break;
      case 4:
         Alert("Your account has been disabled! Please contact support@compassfx.com");
         gi_80 = TRUE;
         break;
      case 5:
         Alert("Server error!! Please make sure you are connected to the Internet and try again.");
         gi_80 = TRUE;
         break;
      case 6:
         Alert("No key found in your registry (could be a bad installation)! Please re-install Synergy.");
         gi_80 = TRUE;
      }
   }
   return (0);
}

int f0_2() {
   string ls_unused_0;
   string ls_unused_8;
   string ls_unused_16;
   string ls_24 = returnReg("Software\\CompassFX\\Synergy", "key");
   if (ls_24 == "") return (6);
   string ls_32 = "key=" + ls_24;
   string ls_40 = gGrab("http://www.compassfx.com/synergy_scripts/s_login.php", ls_32);
   Print("Result -- ", ls_40);
   if (StringSubstr(ls_40, 0, 1) == "0") {
      gs_unused_84 = ls_40;
      return (0);
   }
   if (StringSubstr(ls_40, 0, 1) == "1") return (1);
   if (StringSubstr(ls_40, 0, 1) == "4") return (4);
   return (5);
}

int init() {
   int index_0 = 0;
   gs_944 = WindowExpertName();
   if (!gi_884) gi_880 = f0_16();
   if (gi_880) return (0);
   if (gi_372) {
      g_digits_388 = f0_4();
      g_point_480 = f0_13();
   }
   if (!gi_372) {
      if (Symbol() == "XAGUSD" || Symbol() == "XAUUSD") g_digits_388 = 2;
      g_digits_388 = Digits;
      g_point_480 = Point;
   }
   if (Custom_Indicator == "dsig120_45lpihb785") {
      f0_9();
      return (0);
   }
   IndicatorBuffers(7);
   SetIndexBuffer(0, g_ibuf_452);
   SetIndexBuffer(1, g_ibuf_460);
   SetIndexBuffer(2, g_ibuf_456);
   SetIndexBuffer(3, g_ibuf_464);
   SetIndexBuffer(4, g_ibuf_468);
   SetIndexBuffer(5, g_ibuf_472);
   SetIndexBuffer(6, g_ibuf_476);
   IndicatorDigits(4);
   if (gi_324 == 0) gi_324 = 99999999;
   gd_512 = gi_328 / 1000.0 + 1.0;
   switch (Period()) {
   case PERIOD_M1:
      gd_664 = 0.08;
      gd_672 = 0.08;
      gi_140 = 13;
      gd_680 = 4;
      break;
   case PERIOD_M5:
      gd_664 = 0.08;
      gd_672 = 0.1;
      gi_140 = 15;
      gd_680 = 3.5;
      break;
   case PERIOD_M15:
      gd_664 = 0.1;
      gd_672 = 0.1;
      gi_140 = 22;
      gd_680 = 3;
      break;
   case PERIOD_M30:
      gd_664 = 0.142;
      gd_672 = 0.128;
      gi_140 = 28;
      gd_680 = 2.5;
      break;
   case PERIOD_H1:
      gd_664 = 0.162;
      gd_672 = 0.162;
      gi_140 = 33;
      gd_680 = 2.25;
      break;
   case PERIOD_H4:
      gd_664 = 0.262;
      gd_672 = 0.262;
      gi_140 = 55;
      gd_680 = 2;
      break;
   case PERIOD_D1:
      gd_664 = 0.322;
      gd_672 = 0.382;
      gi_140 = 80;
      gd_680 = 1.5;
      break;
   case PERIOD_W1:
      gd_664 = 0.62;
      gd_672 = 0.764;
      gi_140 = 100;
      gd_680 = 1.5;
      break;
   case PERIOD_MN1:
      gd_664 = 0.62;
      gd_672 = 0.764;
      gi_140 = 200;
      gd_680 = 1.5;
      break;
   default:
      gd_664 = 0.142;
      gd_672 = 0.128;
      gi_140 = 28;
      gd_680 = 2.5;
   }
   for (index_0 = 0; index_0 < gi_148; index_0++) gda_156[index_0] = 0;
   ObjectCreate("SPTA_On", OBJ_LABEL, 0, 0, 0, 0, 0);
   ObjectSet("SPTA_On", OBJPROP_XDISTANCE, 220);
   ObjectSet("SPTA_On", OBJPROP_YDISTANCE, 0);
   ObjectCreate("SPTA_On_2", OBJ_LABEL, 0, 0, 0, 0, 0);
   ObjectSet("SPTA_On_2", OBJPROP_XDISTANCE, 230);
   ObjectSet("SPTA_On_2", OBJPROP_YDISTANCE, 0);
   ObjectCreate("SPTA_On_3", OBJ_LABEL, 0, 0, 0, 0, 0);
   ObjectSet("SPTA_On_3", OBJPROP_XDISTANCE, 240);
   ObjectSet("SPTA_On_3", OBJPROP_YDISTANCE, 0);
   ObjectSetText("SPTA_On", CharToStr(108), 10, "Wingdings", LimeGreen);
   ObjectSetText("SPTA_On_2", CharToStr(108), 10, "Wingdings", Yellow);
   ObjectSetText("SPTA_On_3", CharToStr(108), 10, "Wingdings", Red);
   //f0_17();
   return (0);
}

int deinit() {
   f0_14();
   f0_22();
   f0_20();
   if (gi_108) Comment("");
   ObjectDelete("SPTA_On");
   ObjectDelete("SPTA_On_2");
   ObjectDelete("SPTA_On_3");
   return (0);
}

int start() {
   int li_0;
   int li_8;
   int li_12;
   double ld_24;
   double ld_unused_32;
   string str_concat_48;
   string str_concat_56;
   string ls_unused_64;
   string ls_unused_72;
   double ima_80;
   double ima_88;
   double irsi_96;
   double ld_104;
   if (gi_80) return (0);
   int ind_counted_16 = IndicatorCounted();
   if (gi_880) return (0);
   if (Custom_Indicator == "TESTING") {
      if (ObjectFind("DumbTime") == -1) return (0);
      g_str2time_892 = StrToTime(ObjectDescription("DumbTime"));
      g_price_488 = StrToDouble(ObjectDescription("DumbBid"));
      gd_496 = StrToDouble(ObjectDescription("DumbAsk"));
      g_str_concat_928 = StringConcatenate(" (", TimeToStr(g_str2time_892, TIME_DATE|TIME_MINUTES), ")");
   } else {
      g_price_488 = Bid;
      gd_496 = Ask;
      g_str2time_892 = TimeCurrent();
   }
   gd_504 = gd_496 - g_price_488;
   if (Custom_Indicator == "dsig120_45lpihb785") {
      f0_3();
      return (0);
   }
   if (ind_counted_16 < 0) return (-1);
   if (ind_counted_16 == 0) li_0 = gi_396;
   else li_0 = Bars - ind_counted_16 - 0;
   for (int li_4 = li_0; li_4 >= 0; li_4--) {
      g_iao_536 = iAO(NULL, 0, li_4 + 1);
      g_iao_544 = iAO(NULL, 0, li_4 + 2);
      g_iao_552 = iAO(NULL, 0, li_4 + 3);
      g_iao_560 = iAO(NULL, 0, li_4 + 4);
      g_iatr_688 = iATR(NULL, 0, 14, li_4);
      gd_696 = g_iatr_688 * gd_680;
      gd_704 = NormalizeDouble(iCCI(NULL, 0, 20, PRICE_TYPICAL, li_4), Digits);
      g_icustom_568 = iCustom(NULL, 0, "Synergy_Pro_DSR", 2, li_4);
      gd_528 = NormalizeDouble((Open[li_4] + High[li_4] + Low[li_4] + Close[li_4]) / 4.0, Digits);
      gd_528 = (gd_528 + Close[li_4]) / 2.0;
      g_ibuf_476[li_4] = (gd_520 + gd_528) / 2.0;
      gd_520 = g_ibuf_476[li_4 + 1];
      if (gd_528 - gd_520 > Point) g_ibuf_456[li_4] = 1;
      else {
         if (gd_520 - gd_528 > Point) g_ibuf_456[li_4] = -1;
         else g_ibuf_456[li_4] = g_ibuf_456[li_4 + 1];
      }
      g_ima_760 = iMA(NULL, 0, 9, 1, MODE_EMA, PRICE_HIGH, li_4);
      g_ima_752 = iMA(NULL, 0, 9, 1, MODE_EMA, PRICE_LOW, li_4);
      gd_776 = gd_728 * (g_ima_760 - g_ima_752) / gd_744 + g_ima_752;
      gd_768 = (g_ima_760 - g_ima_752) / gd_736 + g_ima_752;
      if (gi_924 < Time[li_4]) {
         if (gi_324 < 99999999) {
            g_ima_792 = iMA(NULL, 0, 9, 1, MODE_EMA, PRICE_HIGH, li_4 + 1);
            g_ima_784 = iMA(NULL, 0, 9, 1, MODE_EMA, PRICE_LOW, li_4 + 1);
            gd_808 = gd_728 * (g_ima_792 - g_ima_784) / gd_744 + g_ima_784;
            if (g_ibuf_456[li_4 + 1] == 1.0 && Close[li_4 + 1] > gd_808) {
               if (g_ibuf_460[li_4 + 2] > 0.0) g_ibuf_460[li_4 + 1] = g_ibuf_460[li_4 + 2] + 1.0;
               else g_ibuf_460[li_4 + 1] = 1;
            } else {
               gd_800 = (g_ima_792 - g_ima_784) / gd_736 + g_ima_784;
               if (g_ibuf_456[li_4 + 1] == -1.0 && Close[li_4 + 1] < gd_800) {
                  if (g_ibuf_460[li_4 + 2] < 0.0) g_ibuf_460[li_4 + 1] = g_ibuf_460[li_4 + 2] - 1.0;
                  else g_ibuf_460[li_4 + 1] = -1;
               } else g_ibuf_460[li_4 + 1] = 0;
            }
         } else {
            if (g_ibuf_460[li_4 + 1] > 0.0) {
               if (g_ibuf_460[li_4 + 2] > 0.0) g_ibuf_460[li_4 + 1] = g_ibuf_460[li_4 + 2] + 1.0;
               else g_ibuf_460[li_4 + 1] = 1;
            } else {
               if (g_ibuf_460[li_4 + 1] < 0.0) {
                  if (g_ibuf_460[li_4 + 2] < 0.0) g_ibuf_460[li_4 + 1] = g_ibuf_460[li_4 + 2] - 1.0;
                  else g_ibuf_460[li_4 + 1] = -1;
               }
            }
         }
      }
      gd_576 = f0_6(iCustom(NULL, 0, gs_332, 0, li_4));
      gd_584 = f0_6(iCustom(NULL, 0, gs_332, 1, li_4));
      if (gd_576 == 0.0 && gd_584 == 0.0) {
         if (g_ibuf_464[li_4 + 1] > 0.0) g_ibuf_464[li_4] = g_ibuf_464[li_4 + 1] + 0.001;
         else
            if (g_ibuf_464[li_4 + 1] < 0.0) g_ibuf_464[li_4] = g_ibuf_464[li_4 + 1] - 0.001;
      } else {
         if (gd_576 > 0.0 && gd_584 == 0.0) {
            if (g_ibuf_464[li_4] > 0.0 && g_ibuf_464[li_4 + 1] > 0.0 && MathAbs(g_ibuf_464[li_4] - (g_ibuf_464[li_4 + 1])) < 1.0) g_ibuf_464[li_4] = 1;
            else {
               if (g_ibuf_464[li_4] > 0.0) g_ibuf_464[li_4] += 1.0;
               else {
                  g_ibuf_464[li_4] = 1;
                  gi_unused_420 = Time[li_4];
               }
            }
         } else {
            if (gd_576 == 0.0 && gd_584 > 0.0) {
               if (g_ibuf_464[li_4] < 0.0 && g_ibuf_464[li_4 + 1] < 0.0 && MathAbs(g_ibuf_464[li_4] - (g_ibuf_464[li_4 + 1])) < 1.0) g_ibuf_464[li_4] = -1;
               else {
                  if (g_ibuf_464[li_4] < 0.0) g_ibuf_464[li_4] = g_ibuf_464[li_4] - 1.0;
                  else {
                     g_ibuf_464[li_4] = -1;
                     gi_unused_420 = Time[li_4];
                  }
               }
            } else g_ibuf_464[li_4] = 0;
         }
      }
      g_ibuf_472[li_4] = iCustom(NULL, 0, gs_944, "dsig120_45lpihb785", 0, li_4);
      ima_80 = iMA(NULL, 0, g_period_428, 0, g_ma_method_436, g_applied_price_440, li_4);
      ima_88 = iMA(NULL, 0, g_period_432, 0, g_ma_method_436, g_applied_price_440, li_4);
      irsi_96 = iRSI(NULL, 0, g_period_444, g_applied_price_448, li_4);
      ld_104 = ima_80 - ima_88;
      if (ld_104 > 0.0 && irsi_96 > 50.0 && g_ibuf_468[li_4 + 1] < 0.0) li_12 = 1;
      else {
         if (ld_104 < 0.0 && irsi_96 < 50.0 && g_ibuf_468[li_4 + 1] > 0.0) li_12 = -1;
         else li_12 = 0;
      }
      if (li_12 == 0) {
         if (g_ibuf_468[li_4 + 1] > 0.0) g_ibuf_468[li_4] = g_ibuf_468[li_4 + 1] + 1.0;
         else
            if (g_ibuf_468[li_4 + 1] < 0.0) g_ibuf_468[li_4] = g_ibuf_468[li_4 + 1] - 1.0;
      } else {
         if (li_12 > 0) {
            if (g_ibuf_468[li_4 + 1] > 0.0) g_ibuf_468[li_4] = g_ibuf_468[li_4 + 1] + 1.0;
            else {
               g_ibuf_468[li_4] = 1;
               gi_unused_424 = Time[li_4];
            }
         } else {
            if (li_12 < 0) {
               if (g_ibuf_468[li_4 + 1] < 0.0) g_ibuf_468[li_4] = g_ibuf_468[li_4 + 1] - 1.0;
               else {
                  g_ibuf_468[li_4] = -1;
                  gi_unused_424 = Time[li_4];
               }
            }
         }
      }
      if (g_ibuf_456[li_4] > 0.0 && Close[li_4] > gd_776 && g_ibuf_460[li_4 + 1] >= 0.0 && g_ibuf_460[li_4 + 1] <= gi_324 && g_ibuf_472[li_4] > 0.0 && g_ibuf_468[li_4] > 0.0 &&
         g_ibuf_464[li_4] > 0.0 && g_ibuf_464[li_4] < gd_512 || (g_ibuf_464[li_4] >= 1.0 && g_ibuf_464[li_4] <= gi_328) && gd_528 > g_icustom_568 || gi_392 == FALSE) g_ibuf_452[li_4] = 1;
      else {
         if (g_ibuf_456[li_4] < 0.0 && Close[li_4] < gd_768 && g_ibuf_460[li_4 + 1] <= 0.0 && g_ibuf_460[li_4 + 1] >= (-gi_324) && g_ibuf_472[li_4] < 0.0 && g_ibuf_468[li_4] < 0.0 &&
            g_ibuf_464[li_4] < 0.0 && g_ibuf_464[li_4] > (-gd_512) || (g_ibuf_464[li_4] <= -1.0 && g_ibuf_464[li_4] >= (-gi_328)) && gd_528 < g_icustom_568 || gi_392 == FALSE) g_ibuf_452[li_4] = -1;
         else g_ibuf_452[li_4] = 0;
      }
      if (gi_924 < Time[li_4]) gi_924 = Time[li_4];
   }
   f0_5(0);
   gd_856 = f0_6(iCustom(NULL, 0, gs_944, "dsig120_45lpihb785", 1, 1));
   gd_864 = f0_6(iCustom(NULL, 0, gs_944, "dsig120_45lpihb785", 2, 1));
   if (gd_864 > 0.0) gd_624 = gd_864;
   if (gd_856 > 0.0) gd_616 = gd_856;
   if (gi_108) {
      if (gd_592 > 0.0 && gd_616 > 0.0) {
         ld_24 = gd_592 - gd_616;
         li_8 = gi_144 - 2;
         ld_unused_32 = gda_156[li_8];
      } else {
         if (gd_600 > 0.0 && gd_624 > 0.0) {
            ld_24 = gd_624 - gd_600;
            li_8 = gi_144 - 2;
            ld_unused_32 = gda_156[li_8];
         } else ld_24 = 0;
      }
      Comment("\n     ", WindowExpertName(), 
         "\n", 
         "\nLongPrice = ", DoubleToStr(gd_592, g_digits_388), "    ShortPrice = ", DoubleToStr(gd_600, g_digits_388), 
         "\nLongSL = ", DoubleToStr(gd_616, g_digits_388), "       ShortSL = ", DoubleToStr(gd_624, g_digits_388), 
         "\natr = ", DoubleToStr(g_iatr_688, g_digits_388), "    atrSL = ", DoubleToStr(gd_696, g_digits_388), "    xISL = ", DoubleToStr(gd_720, g_digits_388), 
         "\nTo Exit Pips = ", ld_24, "    PeriodMinStopPips = ", DoubleToStr(gi_140 * g_point_480, g_digits_388), 
         "\niBid = ", DoubleToStr(g_price_488, g_digits_388), "    iAsk = ", DoubleToStr(gd_496, g_digits_388), "    High_x = ", gd_776, "   Low_x = ", gd_768, 
         "\nhaClose = ", DoubleToStr(gd_528, g_digits_388), "    haOpen = ", DoubleToStr(gd_520, g_digits_388), 
         "\nDirHA = ", g_ibuf_456[0], "    HAColorCnt+1 = ", g_ibuf_460[1], "   MaxHAColor = ", gi_324, 
         "\n", "DirPArr = ", g_ibuf_464[0], "    PArrLimit = ", gd_512, 
         "\n", "ProArrUpVal = ", gd_576, "    ProArrDwnVal = ", gd_584, 
      "\n", "DirDSig = ", g_ibuf_472[0], "    DirPT = ", g_ibuf_468[0], "    tTrade = ", g_ibuf_452[0]);
   }
   if (g_time_908 > 0 && (Expire_Alert_Time > 0 && g_time_908 < g_str2time_892 - 60 * Expire_Alert_Time) || g_time_908 < g_str2time_892 - 60 * (1 * Period())) f0_20();
   if ((gi_904 > 0 && g_ibuf_472[0] < 0.0 && gd_704 < 0.0) || (gi_904 > 0 && g_iao_536 < g_iao_544 && g_iao_544 < g_iao_552 && g_iao_552 < g_iao_560 && gd_528 < g_ima_752) ||
      (gi_904 > 0 && g_price_488 < gd_720 && g_ibuf_456[0] < 0.0 && Close[0] < gd_768 && gd_704 < 0.0)) {
      gi_904 = 0;
      gi_400 = 1;
      f0_7(str_concat_48, str_concat_56);
      f0_22();
   }
   if ((gi_900 > 0 && g_ibuf_472[0] > 0.0 && gd_704 > 0.0) || (gi_900 > 0 && g_iao_536 > g_iao_544 && g_iao_544 > g_iao_552 && g_iao_552 > g_iao_560 && gd_528 > g_ima_760) ||
      (gi_900 > 0 && g_price_488 + gd_504 > gd_720 && g_ibuf_456[0] > 0.0 && Close[0] > gd_776 && gd_704 > 0.0)) {
      gi_900 = 0;
      gi_400 = -1;
      f0_7(str_concat_48, str_concat_56);
      f0_22();
   }
   if (gi_400 == 0 && g_time_908 < Time[0]) {
      if (gi_104) {
         if (gi_904 > 0 && g_price_488 >= gda_156[gi_144 - 2]) {
            li_8 = gi_144;
            li_12 = li_8 + 3;
            for (li_4 = li_8; li_4 < li_12; li_4++) f0_5(f0_11(1, gd_592, li_4));
         } else {
            if (gi_900 > 0 && g_price_488 <= gda_156[gi_144 - 2]) {
               li_8 = gi_144;
               li_12 = li_8 + 3;
               for (li_4 = li_8; li_4 < li_12; li_4++) f0_5(f0_11(-1, gd_600, li_4));
            }
         }
      }
      if (gi_904 == 0 && Close[0] > Open[0] && gd_528 > g_icustom_568 || gi_392 == FALSE && (g_ibuf_452[1] <= 0.0 && g_ibuf_452[0] == 1.0) || (g_ibuf_452[2] <= 0.0 && g_ibuf_452[0] == 1.0)) {
         if (gi_380) {
            ld_24 = MathMax(g_ibuf_464[0], g_ibuf_472[0]);
            ld_24 = MathMax(ld_24, g_ibuf_468[0]);
         } else ld_24 = MathMax(g_ibuf_464[0], g_ibuf_472[0]);
         if (gi_348 && ld_24 <= gi_320) {
            gi_904 = Time[0];
            g_time_908 = 0;
            gi_400 = 0;
            gi_900 = 0;
            gd_unused_608 = 0;
            gi_unused_912 = 0;
            gd_592 = gd_496;
            if (g_price_488 - gd_696 > gd_616 || gd_616 == 0.0) ld_24 = -1.0 * (g_price_488 - gd_696);
            else {
               if (g_price_488 - gd_616 < gi_140 * g_point_480) ld_24 = -1.0 * (g_price_488 - gi_140 * g_point_480);
               else ld_24 = -1.0 * gd_616;
            }
            f0_5(ld_24);
            f0_10(StringConcatenate("All conditions = Long @ ", DoubleToStr(gd_496, g_digits_388)), Alert_Long_Color);
            str_concat_48 = StringConcatenate(Symbol(), " ", f0_1(Period()), ": Trade Alert Buy Signal @ ", DoubleToStr(gd_496, g_digits_388));
            if (gi_348) Alert(str_concat_48);
            for (li_4 = 1; li_4 < 4; li_4++) f0_5(f0_11(1, gd_496, li_4));
            gi_unused_152 = gi_144;
         }
      } else {
         if (gi_900 == 0 && Close[0] < Open[0] && gd_528 < g_icustom_568 || gi_392 == FALSE && (g_ibuf_452[1] >= 0.0 && g_ibuf_452[0] == -1.0) || (g_ibuf_452[2] >= 0.0 && g_ibuf_452[0] == -1.0)) {
            li_12 = g_ibuf_464[0];
            if (gi_380) {
               ld_24 = MathMin(li_12, g_ibuf_472[0]);
               ld_24 = -1.0 * MathMin(ld_24, g_ibuf_468[0]);
            } else ld_24 = -1.0 * MathMin(g_ibuf_464[0], g_ibuf_472[0]);
            if (gi_352 && ld_24 <= gi_320) {
               gi_900 = Time[0];
               g_time_908 = 0;
               gi_400 = 0;
               gi_904 = 0;
               gd_unused_608 = 0;
               gi_unused_912 = 0;
               gd_600 = g_price_488;
               if (g_price_488 + gd_696 < gd_624 || gd_624 == 0.0) ld_24 = -1.0 * (g_price_488 + gd_504 + gd_696);
               else {
                  if (gd_624 - g_price_488 < gi_140 * g_point_480) ld_24 = -1.0 * (g_price_488 + gd_504 + gi_140 * g_point_480);
                  else ld_24 = -1.0 * (gd_624 + gd_504);
               }
               f0_5(ld_24);
               f0_10(StringConcatenate("All conditions = Short @ ", DoubleToStr(g_price_488, g_digits_388)), Alert_Short_Color);
               str_concat_48 = StringConcatenate(Symbol(), " ", f0_1(Period()), ": Trade Alert Sell Signal @ ", DoubleToStr(g_price_488, g_digits_388));
               if (gi_352) Alert(str_concat_48);
               for (li_4 = 1; li_4 < 4; li_4++) f0_5(f0_11(-1, g_price_488, li_4));
               gi_unused_152 = gi_144;
            }
         }
      }
   }
   if (gi_904 > 0 && Potential_Exits_Display == "Y" && g_ibuf_472[1] >= 0.0) {
      if (gi_916 > 0 && gi_916 < Time[0] && (gi_404 == TRUE && g_ibuf_456[1] > 0.0) || (gi_404 == 2 && g_price_488 - iMA(NULL, 0, 9, 1, MODE_EMA, PRICE_HIGH, 0) > g_point_480)) {
         ObjectDelete("SynProTradeCond2");
         gi_404 = FALSE;
         gd_640 = 0;
         gi_916 = 0;
      }
      gi_412 = f0_24(1);
      if (gi_412 > 0 && (gi_412 < 4 && gi_916 < Time[0]) || (gi_412 == 4 && gd_648 > gd_640)) {
         f0_15(gi_412, 1, str_concat_48, str_concat_56);
         f0_18(str_concat_48, Potential_Exits_Color);
         str_concat_48 = StringConcatenate(Symbol(), " ", f0_1(Period()), ": ", str_concat_56);
         if (gi_348 && Potential_Exits_Alert == "Y") Alert(str_concat_48);
         gd_640 = gd_648;
         gi_916 = Time[0];
      }
      gi_404 = gi_412;
   }
   if (gi_900 > 0 && Potential_Exits_Display == "Y" && g_ibuf_472[1] <= 0.0) {
      if (gi_920 > 0 && gi_920 < Time[0] && (gi_408 == TRUE && g_ibuf_456[1] < 0.0) || (gi_408 == 2 && iMA(NULL, 0, 9, 1, MODE_EMA, PRICE_LOW, 0) - g_price_488 > g_point_480)) {
         ObjectDelete("SynProTradeCond2");
         gi_408 = FALSE;
         gd_632 = 0;
         gi_920 = 0;
      }
      gi_412 = f0_24(-1);
      if (gi_412 > 0 && (gi_412 < 4 && gi_920 < Time[0]) || (gi_412 == 4 && gd_632 == 0.0 || gd_656 < gd_632)) {
         f0_15(gi_412, -1, str_concat_48, str_concat_56);
         if (gd_656 > 0.0) gd_632 = gd_656;
         gi_920 = Time[0];
         f0_18(str_concat_48, Potential_Exits_Color);
         str_concat_48 = StringConcatenate(Symbol(), " ", f0_1(Period()), ": ", str_concat_56);
         if (gi_352 && Potential_Exits_Alert == "Y") Alert(str_concat_48);
         gd_632 = gd_656;
      }
      gi_408 = gi_412;
   }
   return (0);
}

void f0_5(double ad_0) {
   int color_16;
   string str_concat_20;
   string str_concat_28;
   string name_36;
   double ld_44;
   int li_12 = 0;
   if (ad_0 != 0.0) gd_unused_160 = ad_0;
   if (ad_0 != 0.0) {
      ld_44 = MathAbs(ad_0);
      for (int index_8 = 0; index_8 < gi_144; index_8++)
         if (gda_156[index_8] == ad_0) li_12 = 9;
      if (li_12 == 0) {
         if (ad_0 > 0.0) {
            if (gi_144 == 0) gi_144 = 1;
            gda_156[gi_144] = ad_0;
            gi_144++;
            str_concat_20 = StringConcatenate("PT", gi_144 - 1, " = ", DoubleToStr(ld_44, g_digits_388));
            str_concat_28 = StringConcatenate("Potential Target ", gi_144 - 1);
            color_16 = Potential_Target_Color;
         } else {
            gda_156[0] = ad_0;
            str_concat_20 = StringConcatenate("ISL = ", DoubleToStr(ld_44, g_digits_388));
            str_concat_28 = "Stop Loss ";
            color_16 = Initial_StopLoss_Color;
            gd_720 = ld_44;
            gd_unused_712 = g_iatr_688;
         }
         f0_21(ld_44, str_concat_20, str_concat_28, color_16);
         if (gi_144 > gi_148) {
            gi_148 += 5;
            ArrayResize(gda_156, gi_148);
         }
      }
   }
   if (ad_0 == 0.0 && gi_144 > 0 && g_time_964 == 0 || g_time_964 < Time[0]) {
      for (index_8 = 0; index_8 < gi_144; index_8++) {
         if (index_8 == 0) name_36 = "spta__priceline" + "_ISL";
         else name_36 = "spta__priceline " + DoubleToStr(gda_156[index_8], g_digits_388);
         ObjectSet(name_36, OBJPROP_TIME1, Time[gi_128]);
         ObjectSet(name_36, OBJPROP_TIME2, Time[gi_128] + 60 * (Period() * gi_124));
         if (gi_100) {
            name_36 = name_36 + "_lab";
            ObjectSet(name_36, OBJPROP_TIME1, Time[gi_128] + 60 * (gi_136 * Period()));
         }
      }
      g_time_964 = Time[0];
   }
}

void f0_21(double a_price_0, string as_8, string a_text_16, color a_color_24) {
   string name_28 = "spta__priceline ";
   int time_36 = Time[gi_128];
   int datetime_40 = time_36 + 60 * (Period() * gi_124);
   if (StringSubstr(as_8, 0, 3) == "ISL") name_28 = name_28 + "_ISL";
   else name_28 = name_28 + DoubleToStr(a_price_0, g_digits_388);
   ObjectCreate(name_28, OBJ_TREND, 0, time_36, a_price_0, datetime_40, a_price_0);
   ObjectSet(name_28, OBJPROP_WIDTH, g_width_132);
   ObjectSet(name_28, OBJPROP_BACK, FALSE);
   ObjectSet(name_28, OBJPROP_COLOR, a_color_24);
   ObjectSet(name_28, OBJPROP_RAY, FALSE);
   ObjectSetText(name_28, a_text_16, g_fontsize_120, gs_tahoma_112, a_color_24);
   if (gi_100) {
      name_28 = name_28 + "_lab";
      time_36 += 60 * (gi_136 * Period());
      ObjectCreate(name_28, OBJ_TEXT, 0, time_36, a_price_0, 0, 0);
      ObjectSetText(name_28, as_8, g_fontsize_120, gs_tahoma_112, a_color_24);
      ObjectSet(name_28, OBJPROP_COLOR, a_color_24);
      ObjectSet(name_28, OBJPROP_BACK, FALSE);
   }
}

void f0_22() {
   int count_4;
   int objs_total_8;
   string name_16;
   int li_12 = 5;
   for (int li_0 = 0; li_0 < gi_148; li_0++) gda_156[li_0] = 0;
   gi_144 = 1;
   while (li_12 > 0) {
      objs_total_8 = ObjectsTotal();
      count_4 = 0;
      for (li_0 = 0; li_0 <= objs_total_8; li_0++) {
         name_16 = ObjectName(li_0);
         if (StringFind(name_16, "spta__priceline ", 0) > -1) {
            count_4++;
            ObjectDelete(name_16);
         }
      }
      if (count_4 == 0) break;
      li_12--;
   }
}

void f0_7(string &a_str_concat_0, string &as_unused_8) {
   g_time_908 = Time[0];
   gi_900 = 0;
   gi_904 = 0;
   gi_unused_912 = 0;
   gi_916 = 0;
   gi_920 = 0;
   gd_600 = 0;
   gd_592 = 0;
   gd_unused_608 = 0;
   gd_632 = 0;
   gd_640 = 0;
   gd_648 = 0;
   gd_656 = 0;
   gi_412 = 0;
   gi_404 = FALSE;
   gi_408 = FALSE;
   gd_616 = 0;
   gd_624 = 0;
   ObjectDelete("SynProTradeCond2");
   if (gi_400 > 0) {
      f0_10(StringConcatenate("All Long conditions EXPIRED @ ", DoubleToStr(g_price_488, g_digits_388)), Alert_Expired_Color);
      a_str_concat_0 = StringConcatenate(Symbol(), " ", f0_1(Period()), " : All Long conditions EXPIRED @ ", DoubleToStr(g_price_488, g_digits_388));
   } else {
      if (gi_400 < 0) {
         f0_10(StringConcatenate("All Short conditions EXPIRED @ ", DoubleToStr(gd_496, g_digits_388)), Alert_Expired_Color);
         a_str_concat_0 = StringConcatenate(Symbol(), " ", f0_1(Period()), " : All Short conditions EXPIRED @ ", DoubleToStr(gd_496, g_digits_388));
      }
   }
   if (gi_888) Alert(a_str_concat_0);
   gi_400 = 0;
}

int f0_16() {
   gi_880 = FALSE;
   if (!f0_12(Potential_Exits_Display)) {
      gi_880 = TRUE;
      Alert("INPUT ERROR: Potential_Exits_Display must be either \'Y\' or \'N\'. Please correct and restart.");
   }
   if (!f0_12(Potential_Exits_Alert)) {
      gi_880 = TRUE;
      Alert("INPUT ERROR: Potential_Exits_Alert must be either \'Y\' or \'N\'. Please correct and restart.");
   }
   if (Font_Type == 0 || Font_Type > 4) {
      gi_880 = TRUE;
      Alert("INPUT ERROR: Font_Type must be from 1 to 4. Please correct and restart.");
   } else {
      switch (Font_Type) {
      case 1:
         gs_356 = "Arial";
         break;
      case 2:
         gs_356 = "Arial Black";
         break;
      case 3:
         gs_356 = "Tahoma";
         break;
      default:
         gs_356 = "Verdana";
      }
   }
   Alert_Corner = f0_0(Alert_Corner);
   if (Alert_Corner == "U") gi_316 = 0;
   else {
      if (Alert_Corner == "L") {
         gi_316 = 2;
         gi_368 = 6;
      } else {
         gi_880 = TRUE;
         Alert("INPUT ERROR: Alert_Corner must be either \'U\' or \'L\'. Please correct and restart.");
      }
   }
   Conservative_Mode = f0_0(Conservative_Mode);
   if (Conservative_Mode == "N") gi_392 = FALSE;
   else {
      if (Conservative_Mode == "Y") gi_392 = TRUE;
      else {
         gi_880 = TRUE;
         Alert("INPUT ERROR: Conservative_Mode must be either \'Y\' or \'N\'. Please correct and restart.");
      }
   }
   gi_884 = TRUE;
   return (gi_880);
}

int f0_24(int ai_0) {
   double ld_unused_4 = 0;
   double ima_12 = 0;
   int li_unused_20 = 0;
   gd_648 = 0.0;
   gd_656 = 0.0;
   gi_416 = 0;
   if (ai_0 > 0) {
      if (g_ibuf_456[1] < 0.0) {
         f0_19(1);
         return (1);
      }
      ima_12 = iMA(NULL, 0, 9, 1, MODE_EMA, PRICE_HIGH, 0);
      if (ima_12 - g_price_488 <= g_point_480) return (0);
      f0_19(2);
      return (2);
   }
   if (ai_0 < 0) {
      if (g_ibuf_456[1] > 0.0) {
         f0_19(1);
         return (1);
      }
      ima_12 = iMA(NULL, 0, 9, 1, MODE_EMA, PRICE_LOW, 0);
      if (g_price_488 - ima_12 > g_point_480) {
         f0_19(2);
         return (2);
      }
   }
   return (0);
}

double f0_11(int ai_0, double ad_4, int ai_12) {
   double ld_16;
   if (ai_12 <= 0) return (0);
   if (ai_0 > 0) ld_16 = 0.01;
   else
      if (ai_0 < 0) ld_16 = -0.01;
   return (ad_4 + ad_4 * (gd_664 + gd_672 * (ai_12 - 1)) * ld_16);
}

void f0_15(int ai_0, int ai_4, string &a_str_concat_8, string &a_str_concat_16) {
   string ls_24;
   double ld_unused_32 = 0;
   if (ai_4 > 0) ls_24 = "Long";
   else ls_24 = "Short";
   a_str_concat_8 = StringConcatenate("Potential ", ls_24, " Exit @", DoubleToStr(g_price_488, g_digits_388));
   switch (ai_0) {
   case 1:
      a_str_concat_16 = StringConcatenate(a_str_concat_8, g_str_concat_928, " - APB Color Change");
      return;
   case 2:
      a_str_concat_16 = StringConcatenate(a_str_concat_8, g_str_concat_928, " - Entered PAC");
      return;
   }
}

void f0_10(string as_0, int ai_8) {
   f0_23("SynProTradeCond", as_0, gs_356, Font_Size, ai_8, gi_364, gi_368, gi_316);
}

void f0_18(string as_0, int ai_8) {
   f0_23("SynProTradeCond2", as_0, gs_356, Font_Size, ai_8, gi_364, gi_368 + 20, gi_316);
}

void f0_19(int ai_0) {
   string name_4;
   int datetime_12;
   if (ai_0 != 0) {
      name_4 = "spta__x";
      datetime_12 = 100 * ai_0 + gi_416;
      ObjectCreate(name_4, OBJ_TEXT, 0, datetime_12, g_price_488);
      ObjectSetText(name_4, DoubleToStr(datetime_12, 0), 8, "Tahoma", Black);
   }
}

void f0_20() {
   ObjectDelete("SynProTradeCond");
   ObjectDelete("SynProTradeCond2");
   ObjectDelete("spta__x");
}

double f0_6(double ad_0) {
   if (ad_0 == EMPTY_VALUE) return (0);
   return (ad_0);
}

void f0_23(string a_name_0, string a_text_8, string a_fontname_16, int a_fontsize_24, color a_color_28, int a_x_32, int a_y_36, int a_corner_40) {
   ObjectCreate(a_name_0, OBJ_LABEL, 0, 0, 0);
   ObjectSet(a_name_0, OBJPROP_BACK, FALSE);
   ObjectSet(a_name_0, OBJPROP_CORNER, a_corner_40);
   ObjectSet(a_name_0, OBJPROP_XDISTANCE, a_x_32);
   ObjectSet(a_name_0, OBJPROP_YDISTANCE, a_y_36);
   ObjectSetText(a_name_0, a_text_8, a_fontsize_24, a_fontname_16, a_color_28);
}

void f0_14() {
   int objs_total_8;
   string name_16;
   int count_4 = 1;
   for (int li_12 = 5; li_12 > 0; li_12--) {
      objs_total_8 = ObjectsTotal();
      count_4 = 0;
      for (int li_0 = 0; li_0 <= objs_total_8; li_0++) {
         name_16 = ObjectName(li_0);
         if (StringFind(name_16, "SynPriceDir", 0) > -1) {
            count_4++;
            ObjectDelete(name_16);
         }
      }
      if (count_4 == 0) return;
   }
   ObjectDelete("spta__x");
}

bool f0_12(string as_0) {
   as_0 = f0_0(as_0);
   if (as_0 == "N" || as_0 == "Y") return (TRUE);
   return (FALSE);
}

double f0_13() {
   if (StringSubstr(Symbol(), 3, 3) == "JPY" || Symbol() == "XAUUSD" || Symbol() == "XAGUSD") return (0.01);
   return (0.0001);
}

int f0_4() {
   if (StringSubstr(Symbol(), 3, 3) == "JPY" || Symbol() == "XAUUSD" || Symbol() == "XAGUSD") return (2);
   return (4);
}

string f0_1(int ai_0) {
   switch (ai_0) {
   case 1:
      return ("M1");
   case 5:
      return ("M5");
   case 15:
      return ("M15");
   case 30:
      return ("M30");
   case 60:
      return ("H1");
   case 240:
      return ("H4");
   case 1440:
      return ("D1");
   case 10080:
      return ("W1");
   case 43200:
      return ("MN");
   }
   return ("");
}

int f0_9() {
   gd_992 = gd_340;
   gd_1000 = gd_340;
   IndicatorBuffers(7);
   gi_unused_1060 = MathMax(gi_984 + gi_1012, gi_1016) * g_timeframe_972 / Period();
   int li_0 = 0;
   SetIndexBuffer(li_0, g_ibuf_1028);
   li_0++;
   SetIndexBuffer(li_0, g_ibuf_1032);
   li_0++;
   SetIndexBuffer(li_0, g_ibuf_1036);
   if (gi_1008 > 0) {
      li_0++;
      SetIndexBuffer(li_0, g_ibuf_1040);
      li_0++;
      SetIndexBuffer(li_0, g_ibuf_1044);
      li_0++;
      SetIndexBuffer(li_0, g_ibuf_1048);
   }
   li_0++;
   SetIndexBuffer(li_0, g_ibuf_1052);
   g_timeframe_972 = Period();
   gi_unused_1024 = 0;
   gi_unused_1020 = 0;
   return (0);
}

int f0_3() {
   int li_0;
   int index_12;
   double lda_20[];
   double lda_24[];
   double lda_28[];
   double lda_32[];
   double lda_36[];
   double lda_40[];
   double lda_44[];
   double lda_48[];
   double lda_52[];
   double lda_56[];
   double lda_60[];
   double ld_64;
   double ld_72;
   int li_16 = IndicatorCounted();
   if (g_timeframe_972 != Period()) gi_1064 = iBars(NULL, g_timeframe_972);
   else gi_1064 = Bars;
   if (gi_1064 != gi_1068) {
      ArrayResize(lda_20, gi_1064);
      ArrayResize(lda_24, gi_1064);
      ArrayResize(lda_28, gi_1064);
      ArrayResize(lda_32, gi_1064);
      ArrayResize(lda_36, gi_1064);
      ArrayResize(lda_40, gi_1064);
      ArrayResize(lda_60, gi_1064);
      ArrayResize(lda_52, gi_1064);
      ArrayResize(lda_56, gi_1064);
      if (gi_1008 > 0) {
         ArrayResize(lda_44, gi_1064);
         ArrayResize(lda_48, gi_1064);
      }
      gi_1068 = gi_1064;
   }
   if (li_16 < 1) {
      for (int index_8 = Bars - 1; index_8 > 0; index_8--) {
         g_ibuf_1032[index_8] = EMPTY_VALUE;
         g_ibuf_1036[index_8] = EMPTY_VALUE;
         g_ibuf_1040[index_8] = EMPTY_VALUE;
         g_ibuf_1044[index_8] = EMPTY_VALUE;
      }
      gi_1072 = 0;
   }
   if (gi_1072 > 0) gi_1072--;
   for (int li_4 = gi_1072; li_4 < gi_1064; li_4++) {
      if (g_applied_price_976 <= PRICE_WEIGHTED) lda_20[li_4] = iMA(NULL, g_timeframe_972, 1, 0, MODE_SMA, g_applied_price_976, gi_1064 - li_4 - 1);
      if (g_applied_price_980 <= PRICE_WEIGHTED) lda_24[li_4] = iMA(NULL, g_timeframe_972, 1, 0, MODE_SMA, g_applied_price_980, gi_1064 - li_4 - 1);
      lda_28[li_4] = f0_8(lda_20, gi_1012, li_4);
      lda_32[li_4] = f0_8(lda_24, gi_1016, li_4);
      ld_64 = 0;
      for (index_8 = 0; index_8 < gi_984; index_8++)
         if (lda_28[li_4 - index_8] > ld_64) ld_64 = lda_28[li_4 - index_8];
      ld_72 = 100000000;
      for (index_8 = 0; index_8 < gi_988; index_8++)
         if (lda_32[li_4 - index_8] < ld_72) ld_72 = lda_32[li_4 - index_8];
      lda_36[li_4] = ld_64 - (ld_64 - ld_72) * gd_992;
      lda_40[li_4] = ld_72 + (ld_64 - ld_72) * gd_1000;
      lda_60[li_4] = lda_60[li_4 - 1];
      if (gd_992 == 0.0) {
         if (iClose(NULL, g_timeframe_972, gi_1064 - li_4 - 1) > lda_36[li_4 - 1] && lda_60[li_4 - 1] <= 0.0) lda_60[li_4] = 1;
      } else
         if (iClose(NULL, g_timeframe_972, gi_1064 - li_4 - 1) > lda_36[li_4] && lda_60[li_4 - 1] <= 0.0) lda_60[li_4] = 1;
      if (gd_1000 == 0.0) {
         if (iClose(NULL, g_timeframe_972, gi_1064 - li_4 - 1) < lda_40[li_4 - 1] && lda_60[li_4 - 1] >= 0.0) lda_60[li_4] = -1;
      } else
         if (iClose(NULL, g_timeframe_972, gi_1064 - li_4 - 1) < lda_40[li_4] && lda_60[li_4 - 1] >= 0.0) lda_60[li_4] = -1;
      if (lda_60[li_4] > 0.0) {
         if (lda_40[li_4] < lda_40[li_4 - 1]) lda_40[li_4] = lda_40[li_4 - 1];
         lda_52[li_4] = lda_40[li_4];
         if (lda_60[li_4 - 1] <= 0.0 && gi_1008 > 0) lda_44[li_4] = lda_40[li_4];
         else lda_44[li_4] = EMPTY_VALUE;
         lda_48[li_4] = EMPTY_VALUE;
         lda_56[li_4] = EMPTY_VALUE;
      } else {
         if (lda_60[li_4] < 0.0) {
            if (lda_36[li_4] > lda_36[li_4 - 1]) lda_36[li_4] = lda_36[li_4 - 1];
            lda_56[li_4] = lda_36[li_4];
            if (lda_60[li_4 - 1] >= 0.0 && gi_1008 > 0) lda_48[li_4] = lda_36[li_4];
            else lda_48[li_4] = EMPTY_VALUE;
            lda_52[li_4] = EMPTY_VALUE;
            lda_44[li_4] = EMPTY_VALUE;
         }
      }
      g_ibuf_1032[gi_1064 - li_4 - 1] = lda_52[li_4];
      g_ibuf_1036[gi_1064 - li_4 - 1] = lda_56[li_4];
      if (gi_1008 > 0) {
         g_ibuf_1040[gi_1064 - li_4 - 1] = lda_44[li_4];
         g_ibuf_1044[gi_1064 - li_4 - 1] = lda_48[li_4];
      }
      g_ibuf_1052[gi_1064 - li_4 - 1] = lda_60[li_4];
   }
   if (li_16 == 0) li_0 = Bars - 100;
   else li_0 = Bars - li_16 + 1;
   for (index_8 = li_0; index_8 >= 0; index_8--) {
      if (g_ibuf_1048[index_8 + 1] == 0.0) g_ibuf_1048[index_8 + 1] = EMPTY_VALUE;
      if (g_ibuf_1040[index_8] != EMPTY_VALUE) {
         g_ibuf_1028[index_8] = 1;
         if (index_8 == 0) {
            if (!(g_ibuf_1048[index_8] == 0.0 || g_ibuf_1048[index_8] == EMPTY_VALUE)) continue;
            g_ibuf_1048[index_8] = Bid;
            continue;
         }
         g_ibuf_1048[index_8] = Close[index_8];
      } else {
         if (g_ibuf_1044[index_8] != EMPTY_VALUE) {
            g_ibuf_1028[index_8] = -1;
            if (index_8 == 0) {
               if (!(g_ibuf_1048[index_8] == 0.0 || g_ibuf_1048[index_8] == EMPTY_VALUE)) continue;
               g_ibuf_1048[index_8] = Bid;
               continue;
            }
            g_ibuf_1048[index_8] = Close[index_8];
         } else {
            if (g_ibuf_1028[index_8 + 1] > 0.0) g_ibuf_1028[index_8] = g_ibuf_1028[index_8 + 1] + 1.0;
            else
               if (g_ibuf_1028[index_8 + 1] < 0.0) g_ibuf_1028[index_8] = g_ibuf_1028[index_8 + 1] - 1.0;
         }
      }
   }
   gi_1072 = gi_1064 - 1;
   if (g_timeframe_972 > Period()) {
      if (li_16 > 0) li_16--;
      li_0 = Bars - li_16 + g_timeframe_972 / Period() - 1;
      index_12 = 0;
      for (li_4 = 0; index_12 < li_0; index_12++) {
         if (Time[index_12] < iTime(NULL, g_timeframe_972, li_4)) li_4++;
         g_ibuf_1032[index_12] = lda_52[gi_1064 - li_4 - 1];
         g_ibuf_1036[index_12] = lda_56[gi_1064 - li_4 - 1];
         if (gi_1008 > 0) {
            g_ibuf_1040[index_12] = lda_44[gi_1064 - li_4 - 1];
            g_ibuf_1044[index_12] = lda_48[gi_1064 - li_4 - 1];
         }
         g_ibuf_1052[index_12] = lda_60[gi_1064 - li_4 - 1];
      }
   }
   return (0);
}

double f0_8(double ada_0[], int ai_4, int ai_8) {
   double ld_12 = 0;
   for (int count_20 = 0; count_20 < ai_4; count_20++) ld_12 += ada_0[ai_8 - count_20];
   return (ld_12 / ai_4);
}

string f0_0(string as_0) {
   int li_20;
   string ls_ret_8 = as_0;
   for (int li_16 = StringLen(as_0) - 1; li_16 >= 0; li_16--) {
      li_20 = StringGetChar(ls_ret_8, li_16);
      if ((li_20 > '`' && li_20 < '{') || (li_20 > 'ß' && li_20 < 256)) ls_ret_8 = StringSetChar(ls_ret_8, li_16, li_20 - 32);
      else
         if (li_20 > -33 && li_20 < 0) ls_ret_8 = StringSetChar(ls_ret_8, li_16, li_20 + 224);
   }
   return (ls_ret_8);
}