/*
   Generated by ex4-to-mq4 decompiler (forex-warez.com) 4.0.509.5
   Website: w Ww .f or eX - WA RE z. c o m
   E-mail :  aNd r ey b BR V @ G mAI l.co m
*/
#property copyright "V 3.00 © 2013, CompassFX"
#property link      "www.compassfx.com"

#property indicator_chart_window

#import "kernel32.dll"
   int GetTimeZoneInformation(int& a0[]);
#import "dotsv3.dll"
   double dValue(double a0, double a1, int a2);
#import

bool Gvari_80 = FALSE;
string Gvars_dummy_84;
double Gvard_unused_92 = 1.1;
extern string Custom_Indicator = "D.O.T.S. Method";
extern int Broker_GMT_offset = 2;
extern bool Show_Clock = TRUE;
extern int Clock_Vertical_Position = 15;
extern string Level = "=== Level settings ===";
extern int Level_Width = 1;
extern int Text_Font_Size = 8;
extern int Level_Text_Shift = 0;
extern bool Extend_Lines = TRUE;
extern string Daily = "=== Daily settings ===";
extern bool Show_Daily_Open = TRUE;
extern int Number_of_Days = 1;
extern bool    UseAutoSession = true;
extern string d1 = "1 = Broker Daily Open";
extern string d2 = "2 = Australian Open";
extern string d3 = "3 = Tokyo Open";
extern string d4 = "4 = Midnight NY Open";
extern string d5 = "5 = European Open";
extern string d6 = "6 = London Open";
extern string d7 = "7 = New York Open";
extern int Daily_Open_Setting = 1;
extern bool Show_Trend = TRUE;
extern string Color = "=== Color settings ===";
extern color Level_Text_Color = DimGray;
extern color Daily_Open_Color = White;
extern color Daily_Separator_Color = DimGray;
extern color Clock_Color = SteelBlue;
extern color Buy_Color = Green;
extern color BT1_Color = LimeGreen;
extern color BT2_Color = CornflowerBlue;
extern color BuySL_Color = Olive;
extern color Sell_Color = Crimson;
extern color ST1_Color = OrangeRed;
extern color ST2_Color = Goldenrod;
extern color SellSL_Color = SaddleBrown;
extern color Up_Trend_Color = RoyalBlue;
extern color Down_Trend_Color = Red;
extern color Flat_Trend_Color = DimGray;
int Gvari_292 = -7;
int Gvari_296 = -11;
int Gvari_300 = -1;
int Gvari_304 = 0;
int Gvari_308 = 5;
int Gvari_312 = 21;
double Gvarda_316[22];
double Gvarda_320[22];
double Gvarda_324[22];
double Gvarda_328[22];
double Gvarda_332[22];
double Gvarda_336[22];
double Gvarda_340[22];
double Gvarda_344[22];
double Gvarda_348[22];
double Gvarda_352[22];
double Gvarda_356[22];
double Gvarda_360[22];
double Gvarda_364[22];
double Gvarda_368[22];
double Gvarda_372[48];
double Gvarda_376[48];
double Gvarda_380[48];
int Gvaria_384[48];
int Gvaria_388[48];
int Gvari_392 = 22;
int Gvar_datetime_396;
int Gvari_400;
int Gvari_404;
int Gvari_408;
string Gvarsa_412[] = {"Local", "Broker", "N.York", "GMT"};
int Gvari_416 = -5;
int Gvari_420;
int Gvari_424;
double Gvard_428;
int Gvar_datetime_436;
int Gvari_440;
bool Gvari_unused_444 = TRUE;
bool Gvari_448 = TRUE;
int Gvar_hour_452;
string Gvar_fontname_456 = "Arial Narrow";
int Gvar_fontsize_464 = 9;
int Gvari_468 = 20;
int Gvari_472;
bool Gvari_476 = FALSE;
string Gvars_480 = "DOTS3_";
string Gvars_488 = "CLOCK_";
string Gvars_496 = "WARN_";
double Gvard_504;
int Gvari_512;
int Gvari_516;

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   f0_0();
   f0_10();
   f0_22();
   f0_15();
   Gvari_472 = ArrayRange(Gvarsa_412, 0);
   Gvard_504 = f0_30();
   if (Gvard_504 == 0.01) Gvari_512 = 2;
   else Gvari_512 = 4;
   Gvari_408 = Number_of_Days;
   if (Number_of_Days > 22) Gvari_408 = 22;
   Gvari_unused_444 = TRUE;
   IndicatorShortName("D.O.T.S.");
   return (0);
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
   f0_21();
   f0_16();
   f0_22();
   f0_15();
   return (0);
}

// 945D754CB0DC06D04243FCBA25FC0802
int f0_20() {
   int LVari_ret_0;
   int LVari_4 = Gvari_420 - 2;
   int OPEN = 0;
   if(UseAutoSession)OPEN = TimeToHour();
   else OPEN = Daily_Open_Setting;
   switch (OPEN) {
   case 1:
      LVari_ret_0 = 0;
      break;
   case 2:
      LVari_ret_0 = 0;
      break;
   case 3:
      LVari_ret_0 = 2;
      break;
   case 4:
      LVari_ret_0 = 7;
      break;
   case 5:
      LVari_ret_0 = 9;
      break;
   case 6:
      LVari_ret_0 = 10;
      break;
   case 7:
      LVari_ret_0 = 15;
   }
   if (Gvari_420 != 100) LVari_ret_0 += LVari_4;
   if (LVari_ret_0 >= 24) LVari_ret_0 -= 24;
   if (LVari_ret_0 < 0) LVari_ret_0 += 24;
   return (LVari_ret_0);
}

int TimeToHour()
{
  if(TimeHour(TimeCurrent()) >= 0 && TimeHour(TimeCurrent()) < 2)return(2);
  if(TimeHour(TimeCurrent()) >= 2 && TimeHour(TimeCurrent()) < 7)return(3);
  if(TimeHour(TimeCurrent()) >= 7 && TimeHour(TimeCurrent()) < 9)return(4);
  if(TimeHour(TimeCurrent()) >= 9 && TimeHour(TimeCurrent()) < 10)return(5);
  if(TimeHour(TimeCurrent()) >= 10 && TimeHour(TimeCurrent()) < 15)return(6);
  if(TimeHour(TimeCurrent()) >= 15 && TimeHour(TimeCurrent()) < 2)return(7);
  return(1);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   if (Gvari_80) return (0);
   if (Period() > PERIOD_H4) return (-1);
   if (!IsDllsAllowed()) {
      f0_25(255);
      Gvari_476 = TRUE;
      return (0);
   }
   Gvari_420 = Broker_GMT_offset;
   Gvard_428 = f0_14();
   Gvari_424 = Gvard_428;
   Gvari_440 = f0_20();
   if (!f0_11()) {
      f0_12(255);
      Gvari_476 = TRUE;
      return (0);
   }
   if (f0_8(Gvard_428, Gvari_420)) {
      f0_1();
      Gvari_476 = TRUE;
      return (0);
   }
   if (Gvari_476) {
      f0_15();
      Gvari_476 = FALSE;
   }
   f0_1();
   return (0);
}

// 0B26898E7D2CBB01295E320263028F2C
void f0_1() {
   if (Show_Clock) f0_24(Gvari_468, Clock_Vertical_Position);
   WindowRedraw();
   if (f0_19()) f0_2(48);
   for (int count_0 = 0; count_0 < Gvari_408; count_0++) f0_23(count_0);
   f0_6();
}

// 667DC3F4F5B9C0B70229F573988AC7C0
double f0_14() {
   int LVaria_0[43];
   switch (GetTimeZoneInformation(LVaria_0)) {
   case 0:
      return (LVaria_0[0] / (-60.0));
   case 1:
      return (LVaria_0[0] / (-60.0));
   case 2:
      return ((LVaria_0[0] + LVaria_0[42]) / (-60.0));
   }
   return (0);
}

// FD4055E1AC0A7D690C66D37B2C70E529
int f0_31(double Ad_0, double Ad_8) {
   int LVari_ret_16 = TimeLocal() - 3600.0 * Ad_0;
   int LVari_ret_20 = TimeCurrent() - 3600.0 * Ad_8;
   if (LVari_ret_16 > LVari_ret_20 + 300) return (LVari_ret_16);
   return (LVari_ret_20);
}

// 3180D254E1C24E987439E4F62708F6A2
int f0_8(double Ad_0, double Ad_8) {
   int day_of_week_16 = DayOfWeek();
   if (day_of_week_16 == 0) return (1);
   if (day_of_week_16 == 6) return (1);
   int LVari_20 = TimeLocal() - 3600.0 * Ad_0;
   int LVari_24 = TimeCurrent() - 3600.0 * Ad_8;
   if (LVari_20 > LVari_24 + 300) return (1);
   return (0);
}

// 90124A87B1714F1FF8E93A2800BD4144
int f0_19() {
   if (Gvari_440 < 23) {
      if (TimeHour(iTime(NULL, 0, 0)) == Gvari_440) Gvar_hour_452 = -1;
   } else {
      if (TimeDayOfWeek(Gvar_hour_452) == Gvari_308 - 1)
         if (TimeHour(iTime(NULL, 0, 0)) == Gvari_312 - 1) Gvar_hour_452 = -1;
   }
   if (Gvari_448 || TimeHour(iTime(NULL, 0, 0)) > Gvar_hour_452) {
      Gvari_448 = FALSE;
      Gvar_hour_452 = TimeHour(iTime(NULL, 0, 0));
      return (1);
   }
   return (0);
}

// 632A6309D71E99A017FD9D3CE1A19C24
void f0_13(int Ai_0) {
   int index_4 = 0;
   for (int LVari_8 = 0; LVari_8 < Ai_0 * 2; LVari_8++) {
      if (TimeDayOfWeek(iTime(NULL, PERIOD_D1, LVari_8)) != 0) {
         Gvarda_376[index_4] = iHigh(NULL, PERIOD_D1, LVari_8);
         Gvarda_380[index_4] = iLow(NULL, PERIOD_D1, LVari_8);
         Gvarda_372[index_4] = iOpen(NULL, PERIOD_D1, LVari_8);
         Gvaria_384[index_4] = iTime(NULL, PERIOD_D1, LVari_8);
         Gvaria_388[index_4] = Time[0];
         if (index_4 > 0) {
            if (TimeDayOfWeek(iTime(NULL, PERIOD_D1, LVari_8 - 1)) != 0) Gvaria_388[index_4] = iTime(NULL, PERIOD_D1, LVari_8 - 1);
            else Gvaria_388[index_4] = iTime(NULL, PERIOD_D1, LVari_8 - 2);
         }
         index_4++;
         if (index_4 == Ai_0) break;
      }
   }
}

// 19821383AADC0BD1EE56BF2194EC478F
void f0_3(int Ai_0) {
   int LVari_4;
   bool LVari_8;
   bool LVari_12;
   int count_16 = 0;
   int index_20 = 0;
   int LVari_24 = 0;
   while (count_16 < Ai_0 * 2) {
      if (TimeDayOfWeek(iTime(NULL, 0, LVari_24)) == 0) count_16++;
      else {
         Gvarda_376[index_20] = -99999;
         Gvarda_380[index_20] = 99999;
         if (count_16 > 0) Gvaria_388[index_20] = Gvaria_384[index_20 - 1];
         LVari_8 = FALSE;
         while (!LVari_8) {
            if (TimeHour(iTime(NULL, 0, LVari_24)) >= Gvari_440) {
               LVari_12 = FALSE;
               while (!LVari_12) {
                  if (TimeHour(iTime(NULL, 0, LVari_24)) < Gvari_440) LVari_12 = TRUE;
                  else {
                     if (TimeDayOfWeek(iTime(NULL, 0, LVari_24)) == 0) LVari_24++;
                     else {
                        Gvarda_376[index_20] = MathMax(iHigh(NULL, 0, LVari_24), Gvarda_376[index_20]);
                        Gvarda_380[index_20] = MathMin(iLow(NULL, 0, LVari_24), Gvarda_380[index_20]);
                        LVari_24++;
                     }
                  }
               }
               LVari_8 = TRUE;
            } else {
               LVari_12 = FALSE;
               while (!LVari_12) {
                  if (TimeHour(iTime(NULL, 0, LVari_24)) == 0) LVari_12 = TRUE;
                  else {
                     if (TimeDayOfWeek(iTime(NULL, 0, LVari_24)) == 0) LVari_24++;
                     else {
                        Gvarda_376[index_20] = MathMax(iHigh(NULL, 0, LVari_24), Gvarda_376[index_20]);
                        Gvarda_380[index_20] = MathMin(iLow(NULL, 0, LVari_24), Gvarda_380[index_20]);
                        LVari_24++;
                     }
                  }
               }
               LVari_12 = FALSE;
               while (!LVari_12) {
                  if (TimeHour(iTime(NULL, 0, LVari_24)) > 0) LVari_12 = TRUE;
                  else {
                     if (TimeDayOfWeek(iTime(NULL, 0, LVari_24)) == 0) LVari_24++;
                     else {
                        Gvarda_376[index_20] = MathMax(iHigh(NULL, 0, LVari_24), Gvarda_376[index_20]);
                        Gvarda_380[index_20] = MathMin(iLow(NULL, 0, LVari_24), Gvarda_380[index_20]);
                        LVari_24++;
                     }
                  }
               }
               LVari_12 = FALSE;
               while (!LVari_12) {
                  if (TimeHour(iTime(NULL, 0, LVari_24)) < Gvari_440) LVari_12 = TRUE;
                  else {
                     if (TimeDayOfWeek(iTime(NULL, 0, LVari_24)) == 0) LVari_24++;
                     else {
                        Gvarda_376[index_20] = MathMax(iHigh(NULL, 0, LVari_24), Gvarda_376[index_20]);
                        Gvarda_380[index_20] = MathMin(iLow(NULL, 0, LVari_24), Gvarda_380[index_20]);
                        LVari_24++;
                     }
                  }
               }
               LVari_8 = TRUE;
            }
         }
         LVari_4 = LVari_24;
         LVari_8 = FALSE;
         while (!LVari_8) {
            if (TimeDayOfWeek(iTime(NULL, 0, LVari_4 - 1)) == 0) LVari_4--;
            else {
               if (Gvarda_372[index_20] == 0.0) Gvarda_372[index_20] = iOpen(NULL, 0, LVari_4 - 1);
               Gvaria_384[index_20] = iTime(NULL, 0, LVari_4 - 1);
               LVari_8 = TRUE;
            }
         }
         index_20++;
         if (index_20 == Ai_0) break;
         count_16++;
      }
   }
}

// 184916985BFD167AE4E08C739AF60F52
void f0_2(int Ai_0) {
   if (Gvari_440 == 0 || (Daily_Open_Setting == 1 && !UseAutoSession)) f0_13(Ai_0);
   else f0_3(Ai_0);
   for (int index_4 = 0; index_4 < 48; index_4++) {
      Gvarda_376[index_4] = NormalizeDouble(Gvarda_376[index_4], Gvari_512);
      Gvarda_380[index_4] = NormalizeDouble(Gvarda_380[index_4], Gvari_512);
      Gvarda_372[index_4] = NormalizeDouble(Gvarda_372[index_4], Gvari_512);
   }
   for (index_4 = 0; index_4 < 22; index_4++) {
      Gvarda_364[index_4] = f0_26(index_4 + 1);
      Gvarda_368[index_4] = f0_29(index_4);
   }
}

// 28EFB830D150E70A8BB0F12BAC76EF35
void f0_6() {
   int LVari_0;
   int LVari_4;
   f0_21();
   Gvar_datetime_396 = f0_18(Gvari_292 - Level_Text_Shift);
   Gvari_400 = f0_18(Gvari_300 - Level_Text_Shift);
   Gvari_404 = f0_18(Gvari_296 - Level_Text_Shift);
   for (int index_8 = 0; index_8 < Gvari_408; index_8++) {
      LVari_0 = Gvari_400;
      LVari_4 = Gvari_404;
      if (index_8 > 0) {
         LVari_0 = Gvaria_384[index_8];
         LVari_4 = Gvaria_388[index_8];
      }
      f0_17(index_8, LVari_0, LVari_4, Gvaria_384[index_8], Gvaria_388[index_8]);
      f0_28(index_8, Gvaria_384[index_8]);
   }
}

// A9B24A824F70CC1232D1C2BA27039E8D
void f0_23(int Ai_0) {
   double LVard_4 = Gvarda_364[Ai_0];
   double LVard_12 = Gvarda_376[Ai_0 + 1];
   double LVard_20 = Gvarda_380[Ai_0 + 1];
   double LVard_28 = LVard_12 - LVard_20;
   double LVard_36 = NormalizeDouble(LVard_28 / Gvard_504, 0);
   if (LVard_4 >= LVard_36) {
      Gvarda_328[Ai_0] = Gvarda_372[Ai_0];
      Gvarda_332[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 1);
      Gvarda_336[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 2);
      Gvarda_340[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 3);
      Gvarda_344[Ai_0] = Gvarda_332[Ai_0] - 1.272 * (Gvarda_332[Ai_0] - Gvarda_328[Ai_0]);
      Gvarda_348[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 4);
      Gvarda_352[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 5);
      Gvarda_356[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 6);
      Gvarda_360[Ai_0] = Gvarda_348[Ai_0] + 1.272 * (Gvarda_328[Ai_0] - Gvarda_348[Ai_0]);
      Gvarda_316[Ai_0] = Gvarda_340[Ai_0] + 0.175 * LVard_28;
      Gvarda_320[Ai_0] = Gvarda_340[Ai_0] + 0.135 * LVard_28;
      Gvarda_324[Ai_0] = Gvarda_340[Ai_0] + LVard_28 / 10.0;
   } else {
      if (LVard_4 < LVard_36) {
         Gvarda_328[Ai_0] = Gvarda_372[Ai_0];
         Gvarda_332[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 7);
         Gvarda_336[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 8);
         Gvarda_340[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 9);
         Gvarda_344[Ai_0] = Gvarda_332[Ai_0] - 1.272 * (Gvarda_332[Ai_0] - Gvarda_328[Ai_0]);
         Gvarda_348[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 10);
         Gvarda_352[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 11);
         Gvarda_356[Ai_0] = dValue(Gvarda_328[Ai_0], LVard_28, 12);
         Gvarda_360[Ai_0] = Gvarda_348[Ai_0] + 1.272 * (Gvarda_328[Ai_0] - Gvarda_348[Ai_0]);
         Gvarda_316[Ai_0] = Gvarda_340[Ai_0] + 0.175 * LVard_28;
         Gvarda_320[Ai_0] = Gvarda_340[Ai_0] + 0.135 * LVard_28;
         Gvarda_324[Ai_0] = Gvarda_340[Ai_0] + LVard_28 / 10.0;
      }
   }
   Gvarda_332[Ai_0] = NormalizeDouble(Gvarda_332[Ai_0], Gvari_512);
   Gvarda_336[Ai_0] = NormalizeDouble(Gvarda_336[Ai_0], Gvari_512);
   Gvarda_340[Ai_0] = NormalizeDouble(Gvarda_340[Ai_0], Gvari_512);
   Gvarda_344[Ai_0] = NormalizeDouble(Gvarda_344[Ai_0], Gvari_512);
   Gvarda_348[Ai_0] = NormalizeDouble(Gvarda_348[Ai_0], Gvari_512);
   Gvarda_352[Ai_0] = NormalizeDouble(Gvarda_352[Ai_0], Gvari_512);
   Gvarda_356[Ai_0] = NormalizeDouble(Gvarda_356[Ai_0], Gvari_512);
   Gvarda_360[Ai_0] = NormalizeDouble(Gvarda_360[Ai_0], Gvari_512);
}

// 78BAA8FAE18F93570467778F2E829047
void f0_17(int Ai_0, int Ai_4, int Ai_8, int Ai_12, int Ai_16) {
   bool LVari_20;
   bool LVari_24;
   Gvari_516 = Gvarda_368[Ai_0];
   if (Show_Trend) {
      if (Gvari_516 == 1) f0_4("L3", Gvarda_324[Ai_0], Period() + "-min: Up Trend", Text_Font_Size, Up_Trend_Color);
      if (Gvari_516 == 2) f0_4("L3", Gvarda_324[Ai_0], Period() + "-min: Down Trend", Text_Font_Size, Down_Trend_Color);
      if (Gvari_516 == 3) f0_4("L3", Gvarda_324[Ai_0], Period() + "-min: Flat Trend", Text_Font_Size, Flat_Trend_Color);
   }
   if (Ai_0 == 0) {
      f0_4("BT2", Gvarda_340[Ai_0], "R3 " + DoubleToStr(Gvarda_340[Ai_0], Gvari_512) + "", Text_Font_Size, Level_Text_Color);
      f0_4("BT1", Gvarda_336[Ai_0], "R2 " + DoubleToStr(Gvarda_336[Ai_0], Gvari_512) + "", Text_Font_Size, Level_Text_Color);
      f0_4("BEntry", Gvarda_332[Ai_0], "R1 " + DoubleToStr(Gvarda_332[Ai_0], Gvari_512) + "", Text_Font_Size, Level_Text_Color);
      f0_4("BuySL", Gvarda_344[Ai_0], "BUY " + DoubleToStr(Gvarda_344[Ai_0], Gvari_512) + "", Text_Font_Size, Level_Text_Color);
      f0_4("SEntry", Gvarda_348[Ai_0], "SELL " + DoubleToStr(Gvarda_348[Ai_0], Gvari_512) + "", Text_Font_Size, Level_Text_Color);
      f0_4("ST1", Gvarda_352[Ai_0], "S1 " + DoubleToStr(Gvarda_352[Ai_0], Gvari_512) + "", Text_Font_Size, Level_Text_Color);
      f0_4("ST2", Gvarda_356[Ai_0], "S2 " + DoubleToStr(Gvarda_356[Ai_0], Gvari_512) + "", Text_Font_Size, Level_Text_Color);
      f0_4("SellSL", Gvarda_360[Ai_0], "S3 " + DoubleToStr(Gvarda_360[Ai_0], Gvari_512) + "", Text_Font_Size, Level_Text_Color);
   }
   if (Show_Daily_Open) {
      if (Ai_0 == 0) f0_9("MDOp" + Ai_0, Ai_4, Gvarda_328[Ai_0], Ai_8, Gvarda_328[Ai_0], 1, STYLE_SOLID, Daily_Open_Color);
      else f0_9("MDOp" + Ai_0, Ai_12, Gvarda_328[Ai_0], Ai_16, Gvarda_328[Ai_0], 1, STYLE_DASH, Daily_Open_Color);
   }
   if (Ai_0 == 0) {
      LVari_20 = Level_Width;
      LVari_24 = Gvari_304;
   } else {
      LVari_20 = TRUE;
      LVari_24 = TRUE;
   }
   f0_9("MBEntry" + Ai_0, Ai_4, NormalizeDouble(Gvarda_332[Ai_0], Gvari_512), Ai_8, NormalizeDouble(Gvarda_332[Ai_0], Gvari_512), LVari_20, LVari_24, Buy_Color);
   f0_9("MBT1" + Ai_0, Ai_4, NormalizeDouble(Gvarda_336[Ai_0], Gvari_512), Ai_8, NormalizeDouble(Gvarda_336[Ai_0], Gvari_512), LVari_20, LVari_24, BT1_Color);
   f0_9("MBT2" + Ai_0, Ai_4, NormalizeDouble(Gvarda_340[Ai_0], Gvari_512), Ai_8, NormalizeDouble(Gvarda_340[Ai_0], Gvari_512), LVari_20, LVari_24, BT2_Color);
   f0_9("MBSL" + Ai_0, Ai_4, NormalizeDouble(Gvarda_344[Ai_0], Gvari_512), Ai_8, NormalizeDouble(Gvarda_344[Ai_0], Gvari_512), LVari_20, STYLE_SOLID, BuySL_Color);
   f0_9("MSEntry" + Ai_0, Ai_4, NormalizeDouble(Gvarda_348[Ai_0], Gvari_512), Ai_8, NormalizeDouble(Gvarda_348[Ai_0], Gvari_512), LVari_20, LVari_24, Sell_Color);
   f0_9("MST1" + Ai_0, Ai_4, NormalizeDouble(Gvarda_352[Ai_0], Gvari_512), Ai_8, NormalizeDouble(Gvarda_352[Ai_0], Gvari_512), LVari_20, LVari_24, ST1_Color);
   f0_9("MST2" + Ai_0, Ai_4, NormalizeDouble(Gvarda_356[Ai_0], Gvari_512), Ai_8, NormalizeDouble(Gvarda_356[Ai_0], Gvari_512), LVari_20, LVari_24, ST2_Color);
   f0_9("MSL" + Ai_0, Ai_4, NormalizeDouble(Gvarda_360[Ai_0], Gvari_512), Ai_8, NormalizeDouble(Gvarda_360[Ai_0], Gvari_512), LVari_20, STYLE_SOLID, SellSL_Color);
   if (Ai_0 == 0) {
      if (Extend_Lines) {
         f0_9("MBEntryLine", Ai_12, NormalizeDouble(Gvarda_332[Ai_0], Gvari_512), Ai_4, NormalizeDouble(Gvarda_332[Ai_0], Gvari_512), 1, STYLE_DASH, Buy_Color);
         f0_9("MBT1Line", Ai_12, NormalizeDouble(Gvarda_336[Ai_0], Gvari_512), Ai_4, NormalizeDouble(Gvarda_336[Ai_0], Gvari_512), 1, STYLE_DASH, BT1_Color);
         f0_9("MBT2Line", Ai_12, NormalizeDouble(Gvarda_340[Ai_0], Gvari_512), Ai_4, NormalizeDouble(Gvarda_340[Ai_0], Gvari_512), 1, STYLE_DASH, BT2_Color);
         f0_9("MBSLLine", Ai_12, NormalizeDouble(Gvarda_344[Ai_0], Gvari_512), Ai_4, NormalizeDouble(Gvarda_344[Ai_0], Gvari_512), 1, STYLE_SOLID, BuySL_Color);
         f0_9("MSEntryLine", Ai_12, NormalizeDouble(Gvarda_348[Ai_0], Gvari_512), Ai_4, NormalizeDouble(Gvarda_348[Ai_0], Gvari_512), 1, STYLE_DASH, Sell_Color);
         f0_9("MST1Line", Ai_12, NormalizeDouble(Gvarda_352[Ai_0], Gvari_512), Ai_4, NormalizeDouble(Gvarda_352[Ai_0], Gvari_512), 1, STYLE_DASH, ST1_Color);
         f0_9("MST2Line", Ai_12, NormalizeDouble(Gvarda_356[Ai_0], Gvari_512), Ai_4, NormalizeDouble(Gvarda_356[Ai_0], Gvari_512), 1, STYLE_DASH, ST2_Color);
         f0_9("MSLLine", Ai_12, NormalizeDouble(Gvarda_360[Ai_0], Gvari_512), Ai_4, NormalizeDouble(Gvarda_360[Ai_0], Gvari_512), 1, STYLE_SOLID, SellSL_Color);
         if (Show_Daily_Open) f0_9("MDOpLine", Ai_12, Gvarda_328[Ai_0], Ai_4, Gvarda_328[Ai_0], 1, STYLE_DASH, Daily_Open_Color);
      }
   }
}

// F96D30471D3E10470383B6981C5E7039
double f0_30() {
   double LVard_ret_0;
   if (StringFind(Symbol(), "JPY") >= 0) LVard_ret_0 = 0.01;
   else LVard_ret_0 = 0.0001;
   return (LVard_ret_0);
}

// 81A4CBF7E575109EFB1104EFB9B5DF39
int f0_18(int Ai_0) {
   if (Ai_0 < 0) return (Time[0] + 60 * Period() * MathAbs(Ai_0));
   return (Time[Ai_0]);
}

// D1DDCE31F1A86B3140880F6B1877CBF8
double f0_26(int Ai_0) {
   double LVard_4;
   double LVard_12;
   double LVard_20 = 0;
   LVard_20 = 0.0;
   for (int LVari_28 = Ai_0; LVari_28 < Gvari_392 + Ai_0; LVari_28++) {
      LVard_12 = Gvarda_376[LVari_28] - Gvarda_380[LVari_28];
      LVard_20 += LVard_12;
   }
   LVard_4 = NormalizeDouble(LVard_20 / Gvari_392 / Gvard_504, 0);
   return (LVard_4);
}

// F8058EB0D24E6949E44CCCFC53A38CBD
double f0_29(int Ai_unused_0) {
   int LVari_ret_4;
   double ima_8 = iMA(NULL, 0, 3, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_16 = iMA(NULL, 0, 10, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_24 = iMA(NULL, 0, 26, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_32 = iMA(NULL, 0, 47, 0, MODE_EMA, PRICE_CLOSE, 0);
   double LVard_40 = (ima_8 + ima_16) / 2.0;
   double LVard_48 = (ima_24 + ima_32) / 2.0;
   if (MathAbs(LVard_40 - LVard_48) < Ask - Bid) LVari_ret_4 = 3;
   else {
      if (LVard_40 < LVard_48) LVari_ret_4 = 2;
      else LVari_ret_4 = 1;
   }
   return (LVari_ret_4);
}

// AA5EA51BFAC7B64E723BF276E0075513
void f0_24(int Ai_0, int Ai_4) {
   int LVari_8;
   int str_len_12;
   int datetime_16;
   string LVars_20;
   string LVars_28;
   int LVari_36 = Ai_0;
   int LVari_40 = Ai_4;
   Gvar_datetime_436 = f0_31(Gvard_428, Gvari_420);
   for (int index_44 = 0; index_44 < Gvari_472; index_44++) {
      switch (index_44) {
      case 0:
         datetime_16 = TimeLocal();
         LVars_20 = Gvarsa_412[index_44] + "  " + TimeToStr(datetime_16, TIME_MINUTES) + " : " + Gvari_424;
         break;
      case 1:
         datetime_16 = Gvar_datetime_436 + 3600 * Gvari_420;
         LVars_20 = Gvarsa_412[index_44] + "  " + TimeToStr(datetime_16, TIME_MINUTES) + " : " + Gvari_420;
         break;
      case 2:
         datetime_16 = Gvar_datetime_436 + 3600 * Gvari_416;
         LVars_20 = Gvarsa_412[index_44] + "  " + TimeToStr(datetime_16, TIME_MINUTES) + " : " + Gvari_416;
         break;
      case 3:
         datetime_16 = Gvar_datetime_436;
         LVars_20 = Gvarsa_412[index_44] + "  " + TimeToStr(datetime_16, TIME_MINUTES);
      }
      f0_27("_" + DoubleToStr(index_44, 0), LVars_20, Black, LVari_36, LVari_40);
      str_len_12 = StringLen(LVars_20);
      LVars_28 = "_";
      for (int count_52 = 0; count_52 < str_len_12; count_52++) LVars_28 = LVars_28 + "_";
      if (Gvarsa_412[index_44] == "GMT") LVars_28 = LVars_28 + "_";
      LVari_8 = LVari_40;
      for (count_52 = 0; count_52 < Gvar_fontsize_464 + 4; count_52++) {
         f0_7("_" + DoubleToStr(index_44, 0) + "_" + DoubleToStr(count_52, 0), LVari_36 - 5, LVari_8, LVars_28, Clock_Color);
         LVari_8--;
      }
      LVari_40 = LVari_40 + Gvar_fontsize_464 / 2 + 15;
   }
}

// 2FC9212C93C86A99B2C376C96453D3A4
void f0_7(string As_0, int A_x_8, int A_y_12, string A_text_16, color A_color_24) {
   string name_28 = Gvars_488 + Symbol() + As_0;
   if (ObjectFind(name_28) == -1) {
      ObjectCreate(name_28, OBJ_LABEL, 0, 0, 0);
      ObjectSet(name_28, OBJPROP_BACK, TRUE);
   }
   ObjectSet(name_28, OBJPROP_XDISTANCE, A_x_8);
   ObjectSet(name_28, OBJPROP_YDISTANCE, A_y_12);
   ObjectSetText(name_28, A_text_16, Gvar_fontsize_464, Gvar_fontname_456, A_color_24);
}

// D362D41CFF235C066CFB390D52F4EB13
void f0_27(string As_0, string A_text_8, color A_color_16, int A_x_20, int A_y_24) {
   string name_28 = Gvars_488 + Symbol() + As_0;
   if (ObjectFind(name_28) == -1) ObjectCreate(name_28, OBJ_LABEL, 0, 0, 0);
   ObjectSet(name_28, OBJPROP_XDISTANCE, A_x_20);
   ObjectSet(name_28, OBJPROP_YDISTANCE, A_y_24);
   ObjectSetText(name_28, A_text_8, Gvar_fontsize_464, Gvar_fontname_456, A_color_16);
}

// 9FDC179C742334D485A77A8B241EC55C
void f0_22() {
   string name_0;
   int LVari_8 = ObjectsTotal();
   for (int objs_total_12 = LVari_8; objs_total_12 >= 0; objs_total_12--) {
      name_0 = ObjectName(objs_total_12);
      if (StringFind(name_0, Gvars_488) > -1) ObjectDelete(name_0);
   }
}

// 689C35E4872BA754D7230B8ADAA28E48
void f0_15() {
   string name_0;
   int LVari_8 = ObjectsTotal();
   if (LVari_8 > 0) {
      for (int objs_total_12 = LVari_8; objs_total_12 >= 0; objs_total_12--) {
         name_0 = ObjectName(objs_total_12);
         if (StringFind(name_0, Gvars_496, 0) >= 0) ObjectDelete(name_0);
      }
   }
}

// 2569208C5E61CB15E209FFE323DB48B7
void f0_5(string A_name_0, int A_x_8, int A_y_12, int A_corner_16, int A_fontsize_20, color A_color_24, string A_text_28) {
   if (ObjectFind(A_name_0) != 0) {
      ObjectCreate(A_name_0, OBJ_LABEL, 0, 0, 0);
      ObjectSet(A_name_0, OBJPROP_CORNER, A_corner_16);
      ObjectSet(A_name_0, OBJPROP_XDISTANCE, A_x_8);
      ObjectSet(A_name_0, OBJPROP_YDISTANCE, A_y_12);
   }
   ObjectSetText(A_name_0, A_text_28, A_fontsize_20, "Verdana", A_color_24);
}

// C23BD2D05F1A927B2825264A247F4626
void f0_25(int Ai_0) {
   f0_5(Gvars_496 + Symbol() + "_warn1", 50, 50, 0, Text_Font_Size, Ai_0, "DLL is not allowed. Go to top menu bar.");
   f0_5(Gvars_496 + Symbol() + "_warn2", 50, Text_Font_Size * 2 + 50 + 4, 0, Text_Font_Size, Ai_0, "Select Tools. Select Options.");
   f0_5(Gvars_496 + Symbol() + "_warn3", 50, Text_Font_Size * 4 + 50 + 8, 0, Text_Font_Size, Ai_0, "Under Expert Advisor tab, check Allow DLL imports.");
   f0_5(Gvars_496 + Symbol() + "_warn4", 50, Text_Font_Size * 4 + 50 + 28, 0, Text_Font_Size, Ai_0, "Close and re-open MT4 platform.");
}

// 58B0897F29A3AD862616D6CBF39536ED
void f0_12(int Ai_0) {
   f0_5(Gvars_496 + Symbol() + "_warn5", 50, 50, 0, Text_Font_Size, Ai_0, "Not enough bars in chart. Turn off AutoScroll.");
   f0_5(Gvars_496 + Symbol() + "_warn6", 50, Text_Font_Size * 2 + 50 + 4, 0, Text_Font_Size, Ai_0, "Press Page Up Key repeatedly until this message disappears.");
   f0_5(Gvars_496 + Symbol() + "_warn7", 50, Text_Font_Size * 4 + 50 + 8, 0, Text_Font_Size, Ai_0, "Then press the End Key and the DOTS levels should appear.");
   f0_5(Gvars_496 + Symbol() + "_warn8", 50, Text_Font_Size * 4 + 50 + 28, 0, Text_Font_Size, Ai_0, "If not, close and re-open chart. Re-apply DOTS to chart.");
}

// 09CBB5F5CE12C31A043D5C81BF20AA4A
void f0_0() {
   string name_0;
   int LVari_8 = ObjectsTotal();
   if (LVari_8 > 0) {
      for (int objs_total_12 = LVari_8; objs_total_12 >= 0; objs_total_12--) {
         name_0 = ObjectName(objs_total_12);
         if (StringFind(name_0, Gvars_488, 0) >= 0)
            if (StringFind(name_0, Symbol(), 0) < 0) ObjectDelete(name_0);
      }
   }
}

// F4F2EE5CE6F3F7678B6B3F2A5D4685D7
void f0_28(int Ai_0, int A_datetime_4) {
   string name_8 = Gvars_480 + Symbol() + "_Day" + Ai_0;
   ObjectDelete(name_8);
   ObjectCreate(name_8, OBJ_VLINE, 0, A_datetime_4, Bid);
   ObjectSet(name_8, OBJPROP_COLOR, Daily_Separator_Color);
   ObjectSet(name_8, OBJPROP_WIDTH, 1);
   ObjectSet(name_8, OBJPROP_STYLE, STYLE_SOLID);
}

// 50257C26C4E5E915F022247BABD914FE
void f0_9(string As_0, int A_datetime_8, double A_price_12, int A_datetime_20, double A_price_24, double A_width_32, double A_style_40, color A_color_48) {
   string name_52 = Gvars_480 + Symbol() + "_" + As_0;
   ObjectCreate(name_52, OBJ_TREND, 0, A_datetime_8, A_price_12, A_datetime_20, A_price_24);
   ObjectSet(name_52, OBJPROP_COLOR, A_color_48);
   ObjectSet(name_52, OBJPROP_RAY, FALSE);
   ObjectSet(name_52, OBJPROP_WIDTH, A_width_32);
   ObjectSet(name_52, OBJPROP_STYLE, A_style_40);
}

// 9ED55815FB278759298B6BAF50BEC3C8
void f0_21() {
   string LVars_0 = Gvars_480 + Symbol() + "_";
   for (int count_8 = 0; count_8 < 5; count_8++) {
      ObjectDelete(LVars_0 + "MDOp" + count_8);
      ObjectDelete(LVars_0 + "MBEntry" + count_8);
      ObjectDelete(LVars_0 + "MBT1" + count_8);
      ObjectDelete(LVars_0 + "MBT2" + count_8);
      ObjectDelete(LVars_0 + "MBSL" + count_8);
      ObjectDelete(LVars_0 + "MSEntry" + count_8);
      ObjectDelete(LVars_0 + "MST1" + count_8);
      ObjectDelete(LVars_0 + "MST2" + count_8);
      ObjectDelete(LVars_0 + "MSL" + count_8);
   }
   ObjectDelete(LVars_0 + "MDOpLine");
   ObjectDelete(LVars_0 + "MBEntryLine");
   ObjectDelete(LVars_0 + "MBT1Line");
   ObjectDelete(LVars_0 + "MBT2Line");
   ObjectDelete(LVars_0 + "MBSLLine");
   ObjectDelete(LVars_0 + "MSEntryLine");
   ObjectDelete(LVars_0 + "MST1Line");
   ObjectDelete(LVars_0 + "MST2Line");
   ObjectDelete(LVars_0 + "MSLLine");
}

// 2230DA82D7FAFF3EA8CD4CFC92DE64E8
void f0_4(string As_0, double A_price_8, string A_text_16, int A_fontsize_24, color A_color_28) {
   string LVars_32 = Gvars_480 + Symbol() + "_";
   ObjectDelete(LVars_32 + As_0);
   if (ObjectFind(LVars_32 + As_0) != 0) {
      ObjectCreate(LVars_32 + As_0, OBJ_TEXT, 0, Gvar_datetime_396, A_price_8);
      ObjectSetText(LVars_32 + As_0, A_text_16, A_fontsize_24, "Tahoma", A_color_28);
      return;
   }
   ObjectMove(LVars_32 + As_0, 0, Gvar_datetime_396, A_price_8);
}

// 528FD8B404F8774AC78741021D00D737
void f0_10() {
   string name_0;
   int LVari_8 = ObjectsTotal();
   if (LVari_8 > 0) {
      for (int objs_total_12 = LVari_8; objs_total_12 >= 0; objs_total_12--) {
         name_0 = ObjectName(objs_total_12);
         if (StringFind(name_0, Gvars_480, 0) >= 0)
            if (StringFind(name_0, Symbol(), 0) < 0) ObjectDelete(name_0);
      }
   }
}

// 6ABA3523C7A75AAEA41CC0DEC7953CC5
void f0_16() {
   string name_0;
   int LVari_8 = ObjectsTotal();
   for (int objs_total_12 = LVari_8; objs_total_12 >= 0; objs_total_12--) {
      name_0 = ObjectName(objs_total_12);
      if (StringFind(name_0, Gvars_480) > -1) ObjectDelete(name_0);
   }
}

// 5710F6E623305B2C1458238C9757193B
bool f0_11() {
   int LVari_0 = 1440 / Period();
   int LVari_4 = 48 * LVari_0 + 5 * LVari_0;
   if (Bars > LVari_4) return (TRUE);
   return (FALSE);
}
