/*
   Generated by ex4-to-mq4 decompiler FREEWARE 4.0.451.7
   Website:  hT tp: / / wWw. MeT Aqu O t eS.NE t
   E-mail : Sup p o R T@ MetaQUot e S . N Et
*/

#property indicator_chart_window

extern int myChartX = 730;
extern int myChartY = 100;
extern int myCorner = 0;
extern string myFont = "Arial Black";
extern int myFontSize = 10;
extern string Symbols = "AUDJPY;AUDUSD;EURGBP;EURJPY;EURUSD;GBPCHF;GBPJPY;GBPUSD;NZDUSD;USDCAD;USDCHF;USDJPY";
extern int myPeriod = 0;
extern string noteTimeNY = " 14:00 server time = 05:00 mst";
extern string noteTimeAU = " 23:00 server time = 14:00 mst";
extern string noteTimeLD = " 09:00 server time = 00:00 mst";
extern string myHHMM = "14:00";
extern string myNote = "NY OPEN";
extern color colorHD = White;
extern color ColorGoLong = Lime;
extern color ColorGoShort = Red;
extern color ColorWait = Yellow;
extern string Buy_Message = "Trade BUYS only";
extern string Wait_Message = "WAIT";
extern string Sell_Message = "Trade SELLS only";
string Gs_192;
string Gs_200;
string Gs_208;
int Gi_216;
int G_timeframe_220;
int Gi_unused_224;
int Gi_unused_228;
int Gi_232;
int G_index_236;
int G_index_240;
double Gd_244;
string Gsa_252[15];
string Gsa_256[15];
int G_color_260 = Blue;
string Gs_unused_264 = "FX-Agency Recommendation:";
int Gi_unused_272 = 0;
int Gia_unused_276[];
string Gs_280;
int G_arr_size_288;
int G_str_len_292;
string Gsa_296[];
string Gsa_unused_300[];
int Gia_unused_304[];
string Gs_308 = "";
string Gs_unused_316 = "Terminal";
double Gd_unused_324 = 0.0;
double Gd_unused_332 = 0.0;
double G_iopen_340;
string Gs_348;

int init() {
   if (Symbols == "") Symbols = Symbol();
   if (myPeriod == 0) G_timeframe_220 = Period();
   else G_timeframe_220 = myPeriod;
   Gs_200 = f0_6(G_timeframe_220);
   Gs_192 = Symbol();
   Gi_216 = Digits;
   Gd_244 = Point;
   Gs_280 = Gs_200 + " MPDBIAS";
   Gi_unused_224 = 0;
   if (Gi_216 == 5 || Gi_216 == 3) {
      Gi_unused_228 = 0;
      Gd_244 = 10.0 * Gd_244;
   } else Gi_unused_228 = 0;
   f0_0(Gsa_296, G_arr_size_288, Symbols);
   if (f0_8()) Gs_308 = "m";
   if (f0_1()) Gs_308 = "..";
   else
      if (f0_7()) Gs_308 = ".";
   G_str_len_292 = StringLen(Gs_280);
   IndicatorShortName(Gs_280);
   Gs_208 = "TROMPDBIAS";
   f0_2(Gs_208);
   return (0);
}

void f0_2(string As_0) {
   string name_8;
   int str_len_16 = StringLen(As_0);
   int Li_20 = 0;
   while (Li_20 < ObjectsTotal()) {
      name_8 = ObjectName(Li_20);
      if (StringSubstr(name_8, 0, str_len_16) != As_0) Li_20++;
      else ObjectDelete(name_8);
   }
}

int deinit() {
   f0_2(Gs_208);
   return (0);
}

int start() {
   string symbol_0;
   Gi_232 = 10;
   G_index_236 = 0;
   Gsa_252[G_index_236] = Gs_208 + G_index_236;
   Gsa_256[G_index_236] = Gs_200 + " FX-Agency Recommends ";
   f0_9(G_index_236, colorHD);
   for (G_index_240 = 0; G_index_240 < G_arr_size_288; G_index_240++) {
      symbol_0 = Gsa_296[G_index_240] + Gs_308;
      Gi_216 = MarketInfo(symbol_0, MODE_DIGITS);
      Gd_244 = MarketInfo(symbol_0, MODE_POINT);
      if (Gi_216 == 5 || Gi_216 == 3) {
         Gi_216--;
         Gd_244 = 10.0 * Gd_244;
      }
      G_index_236++;
      f0_5(symbol_0);
      f0_3(symbol_0);
      Gsa_252[G_index_236] = Gs_208 + G_index_236;
      Gsa_256[G_index_236] = symbol_0 + " " + Gs_348;
      f0_9(G_index_236, G_color_260);
   }
   return (0);
}

void f0_9(int Ai_0, color A_color_4) {
   ObjectCreate(Gsa_252[Ai_0], OBJ_LABEL, 0, Time[0], 0);
   ObjectSet(Gsa_252[Ai_0], OBJPROP_CORNER, myCorner);
   ObjectSet(Gsa_252[Ai_0], OBJPROP_XDISTANCE, myChartX);
   ObjectSet(Gsa_252[Ai_0], OBJPROP_YDISTANCE, Gi_232 + myChartY);
   ObjectSetText(Gsa_252[Ai_0], Gsa_256[Ai_0], myFontSize, myFont, A_color_4);
   Gi_232 += 20;
}

void f0_3(string A_symbol_0) {
   double iclose_8 = iClose(A_symbol_0, G_timeframe_220, 0);
   double iclose_16 = iClose(A_symbol_0, G_timeframe_220, 1);
   double ima_24 = iMA(A_symbol_0, G_timeframe_220, 5, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_32 = iMA(A_symbol_0, G_timeframe_220, 5, 0, MODE_EMA, PRICE_CLOSE, 1);
   int Li_40 = iclose_8 >= G_iopen_340;
   int Li_44 = iclose_8 < G_iopen_340;
   int Li_48 = ima_24 >= ima_32;
   int Li_52 = ima_24 < ima_32;
   int Li_56 = iclose_8 >= ima_24;
   int Li_60 = iclose_8 < ima_24;
   if (Li_40 && Li_48 && Li_56) {
      G_color_260 = ColorGoLong;
      Gs_348 = Buy_Message;
      return;
   }
   if (Li_44 && Li_52 && Li_60) {
      G_color_260 = ColorGoShort;
      Gs_348 = Sell_Message;
      return;
   }
   G_color_260 = DimGray;
   Gs_348 = Wait_Message;
}

bool f0_8() {
   return (StringFind(Symbol(), "m") > -1);
}

bool f0_1() {
   return (StringFind(Symbol(), "..") > -1);
}

bool f0_7() {
   return (StringFind(Symbol(), ".") > -1);
}

string f0_6(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);
}

string f0_4(string As_0) {
   int Li_8;
   string Ls_ret_12 = As_0;
   for (int Li_20 = StringLen(As_0) - 1; Li_20 >= 0; Li_20--) {
      Li_8 = StringGetChar(Ls_ret_12, Li_20);
      if ((Li_8 > '`' && Li_8 < '{') || (Li_8 > 'ß' && Li_8 < 256)) Ls_ret_12 = StringSetChar(Ls_ret_12, Li_20, Li_8 - 32);
      else
         if (Li_8 > -33 && Li_8 < 0) Ls_ret_12 = StringSetChar(Ls_ret_12, Li_20, Li_8 + 224);
   }
   return (Ls_ret_12);
}

void f0_0(string &Asa_0[], int &A_arr_size_4, string As_8) {
   string Ls_16;
   As_8 = f0_4(StringTrimLeft(StringTrimRight(As_8)));
   if (StringSubstr(As_8, StringLen(As_8) - 1, 1) != ";") As_8 = StringConcatenate(As_8, ";");
   int Li_24 = 0;
   for (int Li_28 = StringFind(As_8, ";", Li_24); Li_28 > 0; Li_28 = StringFind(As_8, ";", Li_24)) {
      Ls_16 = StringSubstr(As_8, Li_24, Li_28 - Li_24);
      ArrayResize(Asa_0, ArraySize(Asa_0) + 1);
      Asa_0[ArraySize(Asa_0) - 1] = Ls_16;
      Li_24 = Li_28 + 1;
   }
   A_arr_size_4 = ArraySize(Asa_0);
}

void f0_5(string A_symbol_0) {
   int year_8 = TimeYear(Time[0]);
   int month_12 = TimeMonth(Time[0]);
   int day_16 = TimeDay(Time[0]);
   string Ls_20 = year_8 + "." + month_12 + "." + day_16 + " " + myHHMM;
   int str2time_28 = StrToTime(Ls_20);
   int Li_32 = 86400;
   int str2time_36 = str2time_28;
   int shift_40 = iBarShift(NULL, 0, str2time_36, FALSE);
   int Li_44 = str2time_36 - Li_32;
   if (TimeDayOfWeek(Li_44) == 0) Li_44 = Li_44 - Li_32 - Li_32;
   int shift_48 = iBarShift(NULL, 0, Li_44, FALSE);
   if (str2time_28 > Time[0]) {
      str2time_36 = Li_44;
      shift_40 = shift_48;
   }
   G_iopen_340 = iOpen(A_symbol_0, 0, shift_40);
}