
#property copyright "Old Tree Publishing"
#property link      "http://www.forexmastermethod.com/"

/*#import "wininet.dll"
   int InternetOpenA(string a0, int a1, string a2, string a3, int a4);
   int InternetOpenUrlA(int a0, string a1, string a2, int a3, int a4, int a5);
   int InternetReadFile(int a0, string a1, int a2, int& a3[]);
   int InternetCloseHandle(int a0);
#import
*/
extern string mystring = " ======= My Settings (GONZO) ======";
extern int slippage = 5;
extern int magicdiver =112233;
extern int stop = 100;
extern int tp = 200;
extern double Lot = 0.01;
//NrLoad = 10 ()
extern string note = " ======= Authentication SETTINGS ======";
extern string username = "";
extern string password = "";
extern string StochName = "Stoch(8,3,5)";
extern int StochKPeriod = 8;
extern int StochDPeriod = 3;
extern int StochSlowing = 5;
extern string MACDName = "MACD(12,26,9)";
extern string sTextPar = " ==== DIVERGENCE PAINTING SETTINGS ====";
extern bool StochBearish = TRUE;
extern bool StochBullish = TRUE;
extern bool MACDBearish = TRUE;
extern bool MACDBullish = TRUE;
extern bool ShowOnlyDouble = FALSE;
extern bool OnDoubleAlert = FALSE;
extern bool HiddenBearishAlert = FALSE;
extern bool RegularBearishAlert = FALSE;
extern bool HiddenBullishAlert = FALSE;
extern bool RegularBullishAlert = FALSE;
extern bool CustomStyles = FALSE;
extern color RegularBearish = Aqua;
extern int RegularBearishStyle = 0;
extern color HiddenBearish = Blue;
extern int HiddenBearishStyle = 1;
extern color RegularBullish = Red;
extern int RegularBullishStyle = 0;
extern color HiddenBullish = Orange;
extern int HiddenBullishStyle = 1;
extern color DoubleText = Yellow;
extern double MACDPickDif = 2.0;
extern string sTextv3 = " ====== V3 Settings ====== ";
extern int NrLoad = 10;
extern bool UseLineTrader = FALSE;
extern string sTextlt = " ====== LineTrader Settings ====== ";
extern string BuyAboveLineName = "BA";
extern color BuyAboveLineColor = Blue;
extern string BuyBelowLineName = "BB";
extern color BuyBelowLineColor = Blue;
extern string SellAboveLineName = "SA";
extern color SellAboveLineColor = Red;
extern string SellBelowLineName = "SB";
extern color SellBelowLineColor = Red;
extern color OnCompleteColor = Yellow;
extern string OnCompleteText = "DONE";
extern int PipsRangeFromLine = 3;
extern bool CheckAfterClose = TRUE;
extern bool OpenOrders = FALSE;
extern double LotSize = 0.1;
extern int StopLoss = 50;
extern int TakeProfit = 100;
extern int Slippage = 3;
extern int MagicNumber = 3596;
extern bool NotifyByAlert = TRUE;
int var_g_i__348 = 5;
int var_g_i__352 = 23;
int var_g_i__356 = 75;
bool var_g_i__360 = FALSE;
bool var_g_i__364 = FALSE;
int var_g_i__368 = 7;
int var_g___count_372 = 7;
int var_g_i__376 = 7;
int var_g_i__380 = 7;
int var_g_i__384 = 7;
int var_g_i__388 = 7;
int var_g___count_392 = 7;
int var_g___count_396 = 7;
int var_g___count_400 = 7;
int var_g___count_404 = 7;
int var_g_i_a_408[];
int var_g_i_a_412[];
int var_g_i_a_416[];
int var_g_i_a_420[];
int var_g_i_a_424[];
int var_g_i_a_428[];
int var_g_i_a_432[][4];
int var_g_i_a_436[][4];
double var_g___point_440;
double var_g_d__448;
string var_g_s__456 = "";
string var_g_s__464 = "";
int var_g___slippage_472;
int var_g___str2int_476 = 0;
bool var_g_i__480 = FALSE;
bool var_g_i__484 = TRUE;
int var_g_i_a_488[64] = {65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47};
int var_g_i__492 = 1;
string var_g_s__dummy_496;
int var_g_i__504 = 0;
int var_g_i__508 = 0;
int var_g___count_512 = 0;
string var_g_s__516;
int var_g_i_a_524[1];
string var_g_s__532 = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
int var_g___index_540 = 0;
int var_g___index_544 = 0;
int var_g___time_548 = 0;

int init() {
   int var_l___objs_total_4;
   string var_l___name_8;
   bool var_l_i__16;
   delete_objects();
   if (NrLoad > 80) NrLoad = 80;
   if (NrLoad < 7) NrLoad = 7;
   ArrayResize(var_g_i_a_408, NrLoad);
   ArrayResize(var_g_i_a_412, NrLoad);
   ArrayResize(var_g_i_a_416, NrLoad);
   ArrayResize(var_g_i_a_420, NrLoad);
   ArrayResize(var_g_i_a_424, NrLoad);
   ArrayResize(var_g_i_a_428, NrLoad);
   ArrayResize(var_g_i_a_432, NrLoad);
   ArrayResize(var_g_i_a_436, NrLoad);
   var_g___str2int_476 = 0;
   var_g_i__480 = FALSE;
   var_g_i__484 = TRUE;
   if (Point == 0.00001) var_g___point_440 = 0.0001;
   else {
      if (Point == 0.001) var_g___point_440 = 0.01;
      else var_g___point_440 = Point;
   }
   var_g___slippage_472 = Slippage * var_g___point_440 / Point;
   var_g_d__448 = PipsRangeFromLine * var_g___point_440;
   if (var_g_i__484 == TRUE && var_g___str2int_476 == 0) {
      var_g_s__456 = "\nTrade Locator v3\n authenticating...";
      Comment(var_g_s__456);
     
         var_g_i__480 = TRUE;
         var_g_s__456 = "\nTrade Locator v3\n working...";
      
         Comment(var_g_s__456);
    
      var_g_i__484 = FALSE;
   }
   if (var_g_i__480 == TRUE) {
      update_stock_picks(1, "stck_max", Blue);
      update_stock_picks(2, "stck_min", Red);
      update_macd_picks(1, "macd_max", Blue);
      update_macd_picks(2, "macd_min", Red);
      addBearish(0, 0, 0, 0, 1);
      addBullish(0, 0, 0, 0, 1);
      for (int var_l_i__0 = 0; var_l_i__0 < NrLoad - 3; var_l_i__0++) {
         if (StochBearish) {
            if (check_STDiv_bear(var_l_i__0, var_l_i__0 + 1) == 0) {
               if (check_STDiv_bear(var_l_i__0, var_l_i__0 + 2) == 0)
                  if (check_STDiv_bear(var_l_i__0, var_l_i__0 + 3) == 0) check_STDiv_bear(var_l_i__0, var_l_i__0 + 4);
            }
         }
         if (StochBullish) {
            if (check_STDiv_bull(var_l_i__0, var_l_i__0 + 1) == 0)
               if (check_STDiv_bull(var_l_i__0, var_l_i__0 + 2) == 0) check_STDiv_bull(var_l_i__0, var_l_i__0 + 3);
         }
         if (MACDBearish) {
            if (check_MacdDiv_bear(var_l_i__0, var_l_i__0 + 1, 1, var_g_i_a_416) == 0)
               if (check_MacdDiv_bear(var_l_i__0, var_l_i__0 + 2, 1, var_g_i_a_416) == 0) check_MacdDiv_bear(var_l_i__0, var_l_i__0 + 3, 1, var_g_i_a_416);
         }
         if (MACDBullish) {
            if (check_MacdDiv_bull(var_l_i__0, var_l_i__0 + 1, 1, var_g_i_a_420) == 0)
               if (check_MacdDiv_bull(var_l_i__0, var_l_i__0 + 2, 1, var_g_i_a_420) == 0) check_MacdDiv_bull(var_l_i__0, var_l_i__0 + 3, 1, var_g_i_a_420);
         }
      }
      checkHiddenBearish();
      checkBullish();
      if (ShowOnlyDouble) {
         var_l___name_8 = "";
         var_l_i__16 = TRUE;
         while (var_l_i__16) {
            var_l_i__16 = FALSE;
            var_l___objs_total_4 = ObjectsTotal();
            for (var_l_i__0 = 0; var_l_i__0 < var_l___objs_total_4; var_l_i__0++) {
               var_l___name_8 = ObjectName(var_l_i__0);
               if (StringFind(var_l___name_8, "RHMM") != -1 && StringFind(var_l___name_8, "RHMMDbl") == -1 && StringFind(var_l___name_8, "Macd") == -1 && StringFind(var_l___name_8, "Sto") == -1) {
                  ObjectDelete(var_l___name_8);
                  var_l_i__16 = TRUE;
               }
            }
         }
      }
      if (UseLineTrader) linetrader();
   }
   return (0);
}

void update_stock_picks(int var_a_i__0, string var_a_s__4, color var_a___color_12) {
   string var_l___name_16;
   int var_l___window_24 = 0;
   var_l___window_24 = WindowFind(StochName);
   int var_l_i__28 = 1;
   for (int var_l___index_32 = 0; var_l___index_32 < NrLoad; var_l___index_32++) {
      while (stock_peak(var_l_i__28) != var_a_i__0) var_l_i__28++;
      if (var_a_i__0 == 1) var_g_i_a_408[var_l___index_32] = var_l_i__28;
      if (var_a_i__0 == 2) var_g_i_a_412[var_l___index_32] = var_l_i__28;
      if (var_g_i__360) {
         var_l___name_16 = "RHMM" + var_a_s__4 + var_l_i__28;
         ObjectDelete(var_l___name_16);
         ObjectCreate(var_l___name_16, OBJ_ARROW, var_l___window_24, Time[var_l_i__28], dStock(var_l_i__28));
         ObjectSet(var_l___name_16, OBJPROP_COLOR, var_a___color_12);
         ObjectSet(var_l___name_16, OBJPROP_ARROWCODE, 119);
      }
      var_l_i__28 += 2;
   }
}

void update_macd_picks(int var_a_i__0, string var_a_s__4, color var_a___color_12) {
   string var_l___name_16;
   int var_l___window_24 = WindowFind(MACDName);
   int var_l_i__28 = 1;
   bool var_l_i__36 = TRUE;
   int var_l_i__40 = var_a_i__0;
   if (var_a_i__0 > 2) {
      var_l_i__36 = FALSE;
      var_l_i__40 = var_a_i__0 - 2;
   }
   for (int var_l___index_32 = 0; var_l___index_32 < NrLoad; var_l___index_32++) {
      while (macd_peak(var_l_i__28, var_l_i__36) != var_l_i__40) var_l_i__28++;
      if (var_a_i__0 == 1) var_g_i_a_416[var_l___index_32] = var_l_i__28;
      if (var_a_i__0 == 2) var_g_i_a_420[var_l___index_32] = var_l_i__28;
      if (var_a_i__0 == 3) var_g_i_a_424[var_l___index_32] = var_l_i__28;
      if (var_a_i__0 == 4) var_g_i_a_428[var_l___index_32] = var_l_i__28;
      if (var_g_i__360) {
         var_l___name_16 = "RHMM" + var_a_s__4 + var_l_i__28;
         ObjectDelete(var_l___name_16);
         ObjectCreate(var_l___name_16, OBJ_ARROW, var_l___window_24, Time[var_l_i__28], dMACD(var_l_i__28, var_l_i__36));
         ObjectSet(var_l___name_16, OBJPROP_COLOR, var_a___color_12);
         ObjectSet(var_l___name_16, OBJPROP_ARROWCODE, 119);
      }
      var_l_i__28 += 2;
   }
}

double dMACD(int var_a_i__0, int var_a_i__4) {
   if (var_a_i__4 == 0) return (iCustom(Symbol(), 0, "MACD 2Line", 12, 26, 9, 0, var_a_i__0));
   if (var_a_i__4 == 1) {
      if (iCustom(Symbol(), 0, "MACD 2Line", 12, 26, 9, 2, var_a_i__0) != 0.0) return (iCustom(Symbol(), 0, "MACD 2Line", 12, 26, 9, 2, var_a_i__0));
      return (iCustom(Symbol(), 0, "MACD 2Line", 12, 26, 9, 3, var_a_i__0));
   }
   return (0.0);
}

int macd_peak(int var_a_i__0, int var_a_i__4) {
   double var_l_d__8 = dMACD(var_a_i__0 - 1, var_a_i__4);
   double var_l_d__16 = dMACD(var_a_i__0, var_a_i__4);
   double var_l_d__24 = dMACD(var_a_i__0 + 1, var_a_i__4);
   double var_l_d__32 = dMACD(var_a_i__0 + 2, var_a_i__4);
   if (var_l_d__16 > var_l_d__8 && var_l_d__16 > var_l_d__24 && var_l_d__16 > var_l_d__32) return (1);
   if (var_l_d__16 < var_l_d__8 && var_l_d__16 < var_l_d__24 && var_l_d__16 < var_l_d__32) return (2);
   return (0);
}

int check_MacdDiv_bull(int var_a_i__0, int var_a_i__4, int var_a_i__8, int var_a_i_a_12[]) {
   int var_l_i__16 = 0;
   int var_l_i__20 = 0;
   if (var_a_i_a_12[var_a_i__4] - var_a_i_a_12[var_a_i__0] < 5) return (0);
   if (MathAbs(dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) - dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8)) < MACDPickDif * var_g___point_440) return (0);
   if (var_a_i__4 - var_a_i__0 > 1) {
      for (int var_l_i__24 = var_a_i__0 + 1; var_l_i__24 < var_a_i__4; var_l_i__24++) {
         if (dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) > dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8) && dMACD(var_a_i_a_12[var_l_i__24], var_a_i__8) < dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8)) return (0);
         if (dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) > dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8) && dMACD(var_a_i_a_12[var_l_i__24], var_a_i__8) < dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8)) return (0);
         if (dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) < dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8) && dMACD(var_a_i_a_12[var_l_i__24], var_a_i__8) < dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8)) return (0);
         if (dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) < dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8) && dMACD(var_a_i_a_12[var_l_i__24], var_a_i__8) < dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8)) return (0);
      }
   }
   int var_l_i__28 = WindowFind(MACDName);
   if (dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) < dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8) && Low[var_a_i_a_12[var_a_i__0]] > Low[var_a_i_a_12[var_a_i__4]]) {
      var_l_i__16 = get_min_low(var_a_i_a_12[var_a_i__0]);
      var_l_i__20 = get_min_low(var_a_i_a_12[var_a_i__4]);
      if (Low[var_l_i__16] < Low[var_l_i__20]) return (0);
      if (var_l_i__20 - var_l_i__16 < 5) return (0);
      draw_line_ind(var_a_i_a_12[var_a_i__0], dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8), var_a_i_a_12[var_a_i__4], dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8), "RHMM" + var_a_i__8 + "MacdSupport" + var_a_i_a_12[var_a_i__0], HiddenBullish, 2, var_l_i__28, HiddenBullishStyle);
      draw_line(var_l_i__16, Low[var_l_i__16], var_l_i__20, Low[var_l_i__20], "RHMM" + var_a_i__8 + "MSupport_chart" + var_l_i__16, HiddenBullish, 2, HiddenBullishStyle);
      addBullish(var_l_i__16, var_l_i__20, var_a_i__8 + 1, 1);
      return (3);
   }
   if (dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) > dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8) && Low[var_a_i_a_12[var_a_i__0]] < Low[var_a_i_a_12[var_a_i__4]]) {
      var_l_i__16 = get_min_low(var_a_i_a_12[var_a_i__0]);
      var_l_i__20 = get_min_low(var_a_i_a_12[var_a_i__4]);
      if (Low[var_l_i__16] > Low[var_l_i__20]) return (0);
      if (var_l_i__20 - var_l_i__16 < 5) return (0);
      draw_line_ind(var_a_i_a_12[var_a_i__0], dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8), var_a_i_a_12[var_a_i__4], dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8), "RHMM" + var_a_i__8 + "Macd2Support" + var_a_i_a_12[var_a_i__0], RegularBullish, 3, var_l_i__28, RegularBullishStyle);
      draw_line(var_l_i__16, Low[var_l_i__16], var_l_i__20, Low[var_l_i__20], "RHMM" + var_a_i__8 + "MSupport_chart" + var_l_i__16, RegularBullish, 3, RegularBullishStyle);
      addBullish(var_l_i__16, var_l_i__20, var_a_i__8 + 1, 3);
      return (4);
   }
   return (0);
}

int check_MacdDiv_bear(int var_a_i__0, int var_a_i__4, int var_a_i__8, int var_a_i_a_12[]) {
   int var_l_i__16 = 0;
   int var_l_i__20 = 0;
   if (var_a_i_a_12[var_a_i__4] - var_a_i_a_12[var_a_i__0] < 7) return (0);
   if (MathAbs(dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) - dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8)) < MACDPickDif * var_g___point_440) return (0);
   if (var_a_i__4 - var_a_i__0 > 1) {
      for (int var_l_i__24 = var_a_i__0 + 1; var_l_i__24 < var_a_i__4; var_l_i__24++) {
         if (dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) > dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8) && dMACD(var_a_i_a_12[var_l_i__24], var_a_i__8) > dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8)) return (0);
         if (dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) < dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8) && dMACD(var_a_i_a_12[var_l_i__24], var_a_i__8) > dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8)) return (0);
      }
   }
   int var_l_i__28 = WindowFind(MACDName);
   if (dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) < dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8) && High[var_a_i_a_12[var_a_i__0]] > High[var_a_i_a_12[var_a_i__4]]) {
      var_l_i__16 = get_max_high(var_a_i_a_12[var_a_i__0]);
      var_l_i__20 = get_max_high(var_a_i_a_12[var_a_i__4]);
      if (High[var_l_i__16] < High[var_l_i__20]) return (0);
      
      draw_line_ind(var_a_i_a_12[var_a_i__0], dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8), var_a_i_a_12[var_a_i__4], dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8), "RHMMMacd" + var_a_i__8 + "Resistance" + var_a_i_a_12[var_a_i__0], RegularBearish, 2, var_l_i__28, RegularBearishStyle);
      draw_line(var_l_i__16, High[var_l_i__16], var_l_i__20, High[var_l_i__20], "RHMMMResistance" + var_a_i__8 + "_chart" + var_l_i__16, RegularBearish, 2, RegularBearishStyle);
      addBearish(var_l_i__16, var_l_i__20, var_a_i__8 + 1, 1);
      return (1);
   }
   if (dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8) > dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8) && High[var_a_i_a_12[var_a_i__0]] < High[var_a_i_a_12[var_a_i__4]]) {
      var_l_i__16 = get_max_high(var_a_i_a_12[var_a_i__0]);
      var_l_i__20 = get_max_high(var_a_i_a_12[var_a_i__4]);
      if (High[var_l_i__16] > High[var_l_i__20]) return (0);
      
      draw_line_ind(var_a_i_a_12[var_a_i__0], dMACD(var_a_i_a_12[var_a_i__0], var_a_i__8), var_a_i_a_12[var_a_i__4], dMACD(var_a_i_a_12[var_a_i__4], var_a_i__8), "RHMM" + var_a_i__8 + "Macd2Resistance" + var_a_i_a_12[var_a_i__0], HiddenBearish, 3, var_l_i__28, HiddenBearishStyle);
      draw_line(var_l_i__16, High[var_l_i__16], var_l_i__20, High[var_l_i__20], "RHMMMResistance" + var_a_i__8 + "_chart" + var_l_i__16, HiddenBearish, 3, HiddenBearishStyle);
      addBearish(var_l_i__16, var_l_i__20, var_a_i__8 + 1, 3);
      return (2);
   }
   return (0);
}

int check_STDiv_bear(int var_a_i__0, int var_a_i__4) {
   int var_l_i__8 = 0;
   int var_l_i__12 = 0;
   if (var_g_i_a_408[var_a_i__4] - var_g_i_a_408[var_a_i__0] < 5) return (0);
   if (MathAbs(dStock(var_g_i_a_408[var_a_i__0]) - dStock(var_g_i_a_408[var_a_i__4])) < var_g_i__348) return (0);
   if (dStock(var_g_i_a_408[var_a_i__0]) < var_g_i__352 || dStock(var_g_i_a_408[var_a_i__4]) < var_g_i__352) return (0);
   if (var_a_i__4 - var_a_i__0 > 1) {
      for (int var_l_i__16 = var_a_i__0 + 1; var_l_i__16 < var_a_i__4; var_l_i__16++) {
         if (dStock(var_g_i_a_408[var_a_i__0]) > dStock(var_g_i_a_408[var_a_i__4]) && dStock(var_g_i_a_408[var_l_i__16]) > dStock(var_g_i_a_408[var_a_i__4])) return (0);
         if (dStock(var_g_i_a_408[var_a_i__0]) < dStock(var_g_i_a_408[var_a_i__4]) && dStock(var_g_i_a_408[var_l_i__16]) > dStock(var_g_i_a_408[var_a_i__0])) return (0);
      }
   }
   int var_l_i__20 = WindowFind(StochName);
   if (dStock(var_g_i_a_408[var_a_i__0]) < dStock(var_g_i_a_408[var_a_i__4]) && High[var_g_i_a_408[var_a_i__0]] > High[var_g_i_a_408[var_a_i__4]]) {
      var_l_i__8 = get_max_high(var_g_i_a_408[var_a_i__0]);
      var_l_i__12 = get_max_high(var_g_i_a_408[var_a_i__4]);
      if (High[var_l_i__8] < High[var_l_i__12]) return (0);
      
      draw_line_ind(var_g_i_a_408[var_a_i__0], dStock(var_g_i_a_408[var_a_i__0]), var_g_i_a_408[var_a_i__4], dStock(var_g_i_a_408[var_a_i__4]), "RHMMStoResistance" + var_g_i_a_408[var_a_i__0], RegularBearish, 2, var_l_i__20, RegularBearishStyle);
      draw_line(var_l_i__8, High[var_l_i__8], var_l_i__12, High[var_l_i__12], "RHMMResistance_chart" + var_l_i__8, RegularBearish, 2, RegularBearishStyle);
      addBearish(var_l_i__8, var_l_i__12, 3, 1);
      return (1);
   }
   if (dStock(var_g_i_a_408[var_a_i__0]) > dStock(var_g_i_a_408[var_a_i__4]) && High[var_g_i_a_408[var_a_i__0]] < High[var_g_i_a_408[var_a_i__4]]) {
      var_l_i__8 = get_max_high(var_g_i_a_408[var_a_i__0]);
      var_l_i__12 = get_max_high(var_g_i_a_408[var_a_i__4]);
      if (High[var_l_i__8] > High[var_l_i__12]) return (0);
      
      draw_line_ind(var_g_i_a_408[var_a_i__0], dStock(var_g_i_a_408[var_a_i__0]), var_g_i_a_408[var_a_i__4], dStock(var_g_i_a_408[var_a_i__4]), "RHMMStoResistance" + var_g_i_a_408[var_a_i__0], HiddenBearish, 3, var_l_i__20, HiddenBearishStyle);
      draw_line(var_l_i__8, High[var_l_i__8], var_l_i__12, High[var_l_i__12], "RHMMResistance_chart" + var_l_i__8, HiddenBearish, 3, HiddenBearishStyle);
      addBearish(var_l_i__8, var_l_i__12, 3, 3);
      return (2);
   }
   return (0);
}

int get_max_high(int var_a_i__0) {
   double var_l___high_4 = High[var_a_i__0 + 2];
   int var_l_i__ret_12 = var_a_i__0 + 2;
   for (int var_l_i__16 = var_a_i__0 - 2; var_l_i__16 < var_a_i__0 + 2; var_l_i__16++) {
      if (var_l_i__16 > 0 && High[var_l_i__16] > var_l___high_4) {
         var_l___high_4 = High[var_l_i__16];
         var_l_i__ret_12 = var_l_i__16;
      }
   }
   return (var_l_i__ret_12);
}

int check_STDiv_bull(int var_a_i__0, int var_a_i__4) {
   int var_l_i__8 = 0;
   int var_l_i__12 = 0;
   if (var_g_i_a_412[var_a_i__4] - var_g_i_a_412[var_a_i__0] < 5) return (0);
   if (MathAbs(dStock(var_g_i_a_412[var_a_i__0]) - dStock(var_g_i_a_412[var_a_i__4])) < var_g_i__348) return (0);
   if (dStock(var_g_i_a_412[var_a_i__0]) > var_g_i__356 || dStock(var_g_i_a_412[var_a_i__4]) > var_g_i__356) return (0);
   if (var_a_i__4 - var_a_i__0 > 1) {
      for (int var_l_i__16 = var_a_i__0 + 1; var_l_i__16 < var_a_i__4; var_l_i__16++) {
         if (dStock(var_g_i_a_412[var_a_i__0]) > dStock(var_g_i_a_412[var_a_i__4]) && dStock(var_g_i_a_412[var_l_i__16]) < dStock(var_g_i_a_412[var_a_i__4])) return (0);
         if (dStock(var_g_i_a_412[var_a_i__0]) > dStock(var_g_i_a_412[var_a_i__4]) && dStock(var_g_i_a_412[var_l_i__16]) < dStock(var_g_i_a_412[var_a_i__0])) return (0);
         if (dStock(var_g_i_a_412[var_a_i__0]) < dStock(var_g_i_a_412[var_a_i__4]) && dStock(var_g_i_a_412[var_l_i__16]) < dStock(var_g_i_a_412[var_a_i__0])) return (0);
         if (dStock(var_g_i_a_412[var_a_i__0]) < dStock(var_g_i_a_412[var_a_i__4]) && dStock(var_g_i_a_412[var_l_i__16]) < dStock(var_g_i_a_412[var_a_i__4])) return (0);
      }
   }
   int var_l_i__20 = WindowFind(StochName);
   if (dStock(var_g_i_a_412[var_a_i__0]) < dStock(var_g_i_a_412[var_a_i__4]) && Low[var_g_i_a_412[var_a_i__0]] > Low[var_g_i_a_412[var_a_i__4]]) {
      var_l_i__8 = get_min_low(var_g_i_a_412[var_a_i__0]);
      var_l_i__12 = get_min_low(var_g_i_a_412[var_a_i__4]);
      if (Low[var_l_i__8] < Low[var_l_i__12]) return (0);
      if (var_l_i__12 - var_l_i__8 < 5) return (0);
      draw_line_ind(var_g_i_a_412[var_a_i__0], dStock(var_g_i_a_412[var_a_i__0]), var_g_i_a_412[var_a_i__4], dStock(var_g_i_a_412[var_a_i__4]), "RHMMStoSupport" + var_g_i_a_412[var_a_i__0], HiddenBullish, 2, var_l_i__20, HiddenBullishStyle);
      draw_line(var_l_i__8, Low[var_l_i__8], var_l_i__12, Low[var_l_i__12], "RHMMSupport_chart" + var_l_i__8, HiddenBullish, 2, HiddenBullishStyle);
      addBullish(var_l_i__8, var_l_i__12, 3, 1);
      return (3);
   }
   if (dStock(var_g_i_a_412[var_a_i__0]) > dStock(var_g_i_a_412[var_a_i__4]) && Low[var_g_i_a_412[var_a_i__0]] < Low[var_g_i_a_412[var_a_i__4]]) {
      var_l_i__8 = get_min_low(var_g_i_a_412[var_a_i__0]);
      var_l_i__12 = get_min_low(var_g_i_a_412[var_a_i__4]);
      if (Low[var_l_i__8] > Low[var_l_i__12]) return (0);
      if (var_l_i__12 - var_l_i__8 < 5) return (0);
      draw_line_ind(var_g_i_a_412[var_a_i__0], dStock(var_g_i_a_412[var_a_i__0]), var_g_i_a_412[var_a_i__4], dStock(var_g_i_a_412[var_a_i__4]), "RHMMStoSupport" + var_g_i_a_412[var_a_i__0], RegularBullish, 3, var_l_i__20, RegularBullishStyle);
      draw_line(var_l_i__8, Low[var_l_i__8], var_l_i__12, Low[var_l_i__12], "RHMMSupport_chart" + var_l_i__8, RegularBullish, 3, RegularBullishStyle);
      addBullish(var_l_i__8, var_l_i__12, 3, 3);
      return (4);
   }
   return (0);
}

int get_min_low(int var_a_i__0) {
   double var_l___low_4 = Low[var_a_i__0 + 2];
   int var_l_i__ret_12 = var_a_i__0 + 2;
   for (int var_l_i__16 = var_a_i__0 - 2; var_l_i__16 < var_a_i__0 + 2; var_l_i__16++) {
      if (var_l_i__16 > 0 && Low[var_l_i__16] < var_l___low_4) {
         var_l___low_4 = Low[var_l_i__16];
         var_l_i__ret_12 = var_l_i__16;
      }
   }
   return (var_l_i__ret_12);
}

double dStock(int var_a___shift_0) {
   return (iStochastic(Symbol(), 0, StochKPeriod, StochDPeriod, StochSlowing, MODE_SMA, 0, MODE_MAIN, var_a___shift_0));
}

int deinit() {
   var_g_s__456 = "";
   Comment(var_g_s__456);
   delete_objects();
   return (0);
}

void delete_objects() {
   int var_l___objs_total_0;
   string var_l___name_4 = "";
   bool var_l_i__12 = TRUE;
   while (var_l_i__12) {
      var_l_i__12 = FALSE;
      var_l___objs_total_0 = ObjectsTotal();
      for (int var_l_i__16 = 0; var_l_i__16 < var_l___objs_total_0; var_l_i__16++) {
         var_l___name_4 = ObjectName(var_l_i__16);
         if (StringFind(var_l___name_4, "RHMM") != -1) {
            ObjectDelete(var_l___name_4);
            var_l_i__12 = TRUE;
         }
      }
   }
}

int addBearish(int var_a_i__0, int var_a_i__4, int var_a_i__8, int var_a_i__12, bool var_a_i__16 = FALSE) {
   string var_l_s__20;
   if (var_a_i__16) {
      ArrayInitialize(var_g_i_a_432, 0);
      var_g___index_540 = 0;
      return (0);
   }
   var_g_i_a_432[var_g___index_540][0] = var_a_i__0;
   var_g_i_a_432[var_g___index_540][1] = var_a_i__4;
   var_g_i_a_432[var_g___index_540][2] = var_a_i__8;
   var_g_i_a_432[var_g___index_540][3] = var_a_i__12;
   var_g___index_540++;
   if (var_a_i__0 < 5) {
      var_l_s__20 = "Stochastic";
      if (var_a_i__8 == 2) var_l_s__20 = "MACD";
      if (var_g_i__376 != var_a_i__0 && RegularBearishAlert && var_a_i__12 == 1) {
         if (var_g___count_392 != 1) Alert("Regular Bearish on " + Symbol() + " " + Period() + " min chart from " + var_l_s__20 + " bar " + var_a_i__0);
         var_g_i__376 = var_a_i__0;
         var_g___count_392 = 0;
      }
      if (var_g_i__380 != var_a_i__0 && HiddenBearishAlert && var_a_i__12 == 3) {
         if (var_g___count_396 != 1) Alert("Hidden Bearish on " + Symbol() + " " + Period() + " min chart from " + var_l_s__20 + " bar " + var_a_i__0);
         var_g_i__380 = var_a_i__0;
         var_g___count_396 = 0;
      }
   }
   return (0);
}

int checkHiddenBearish() {
   int var_l_i__0;
   int var_l_i__4;
   bool var_l___color_8 = Black;
   bool var_l_i__12 = FALSE;
   int var_l_i__16 = 0;
   for (int var_l___index_20 = 0; var_l___index_20 < NrLoad - 2; var_l___index_20++) {
      if (var_g_i_a_432[var_l___index_20][2] == 0) break;
      var_l_i__16 = var_g_i_a_432[var_l___index_20][1] - var_g_i_a_432[var_l___index_20][0];
      for (int var_l_i__24 = var_l___index_20 + 1; var_l_i__24 < NrLoad - 2; var_l_i__24++) {
         if (MathAbs(var_g_i_a_432[var_l_i__24][1] - var_g_i_a_432[var_l___index_20][1]) < var_l_i__16 / 2 && MathAbs(var_g_i_a_432[var_l_i__24][0] - var_g_i_a_432[var_l___index_20][0]) < var_l_i__16 / 2 && var_g_i_a_432[var_l_i__24][3] == var_g_i_a_432[var_l___index_20][3]) {
            var_l_i__0 = MathMin(var_g_i_a_432[var_l_i__24][0], var_g_i_a_432[var_l___index_20][0]);
            var_l_i__4 = MathMax(var_g_i_a_432[var_l_i__24][1], var_g_i_a_432[var_l___index_20][1]);
            if (var_g_i_a_432[var_l_i__24][2] == 3) ObjectDelete("RHMMResistance_chart" + var_g_i_a_432[var_l_i__24][0]);
            else ObjectDelete("RHMMMResistance1_chart" + var_g_i_a_432[var_l_i__24][0]);
            if (var_g_i_a_432[var_l___index_20][2] == 3) ObjectDelete("RHMMResistance_chart" + var_g_i_a_432[var_l___index_20][0]);
            else ObjectDelete("RHMMMResistance1_chart" + var_g_i_a_432[var_l___index_20][0]);
            if (var_g_i_a_432[var_l_i__24][3] == 3) {
               var_l___color_8 = HiddenBearish;
               var_l_i__12 = HiddenBearishStyle;
            } else {
               var_l___color_8 = RegularBearish;
               var_l_i__12 = RegularBearishStyle;
            }
            
            draw_line(var_l_i__0, High[var_l_i__0], var_l_i__4, High[var_l_i__4], "RHMMDblResisstance_chart" + var_l_i__0, var_l___color_8, 3, var_l_i__12);
            if (var_l_i__0 < 5 && var_g_i__368 != var_l_i__0 && OnDoubleAlert) {
               if (var_g___count_372 != 1) Alert("Double BEAR on " + Symbol() + " " + Period() + " minute chart");
               var_g_i__368 = var_l_i__0;
               var_g___count_372 = 0;
            }
            ObjectCreate("RHMMxdt" + var_l___index_20, OBJ_TEXT, 0, Time[(var_g_i_a_432[var_l_i__24][1] + var_g_i_a_432[var_l_i__24][0]) / 2], (High[var_g_i_a_432[var_l_i__24][1]] + High[var_g_i_a_432[var_l_i__24][0]]) / 2.0);
            ObjectSetText("RHMMxdt" + var_l___index_20, "DOUBLE BEAR", 9, "Lucida Console", DoubleText);
            fixBearish(var_l_i__24);
            var_l_i__24--;
         }
      }
   }
   return (0);
}

int addBullish(int var_a_i__0, int var_a_i__4, int var_a_i__8, int var_a_i__12, bool var_a_i__16 = FALSE) {
   string var_l_s__20;
   if (var_a_i__16) {
      ArrayInitialize(var_g_i_a_436, 0);
      var_g___index_544 = 0;
      return (0);
   }
   var_g_i_a_436[var_g___index_544][0] = var_a_i__0;
   var_g_i_a_436[var_g___index_544][1] = var_a_i__4;
   var_g_i_a_436[var_g___index_544][2] = var_a_i__8;
   var_g_i_a_436[var_g___index_544][3] = var_a_i__12;
   var_g___index_544++;
   if (var_a_i__0 < 5) {
      var_l_s__20 = "Stochastic";
      if (var_a_i__8 == 2) var_l_s__20 = "MACD";
      if (var_g_i__384 != var_a_i__0 && RegularBullishAlert && var_a_i__12 == 1) {
         if (var_g___count_400 != 1) Alert("Regular Bullish on " + Symbol() + " " + Period() + " min chart from " + var_l_s__20 + " bar " + var_a_i__0);
         var_g_i__384 = var_a_i__0;
         var_g___count_400 = 0;
      }
      if (var_g_i__388 != var_a_i__0 && HiddenBullishAlert && var_a_i__12 == 3) {
         if (var_g___count_404 != 1) Alert("Hidden Bullish on " + Symbol() + " " + Period() + " min chart from " + var_l_s__20 + " bar " + var_a_i__0);
         var_g_i__388 = var_a_i__0;
         var_g___count_404 = 0;
      }
   }
   return (0);
}

int fixBearish(int var_a_i__0) {
   while (var_g_i_a_432[var_a_i__0][3] != 0) {
      var_g_i_a_432[var_a_i__0][0] = var_g_i_a_432[var_a_i__0 + 1][0];
      var_g_i_a_432[var_a_i__0][1] = var_g_i_a_432[var_a_i__0 + 1][1];
      var_g_i_a_432[var_a_i__0][2] = var_g_i_a_432[var_a_i__0 + 1][2];
      var_g_i_a_432[var_a_i__0][3] = var_g_i_a_432[var_a_i__0 + 1][3];
      var_a_i__0++;
      if (var_a_i__0 > NrLoad) break;
   }
   return (0);
}

int fixBullish(int var_a_i__0) {
   while (var_g_i_a_436[var_a_i__0][3] != 0) {
      var_g_i_a_436[var_a_i__0][0] = var_g_i_a_436[var_a_i__0 + 1][0];
      var_g_i_a_436[var_a_i__0][1] = var_g_i_a_436[var_a_i__0 + 1][1];
      var_g_i_a_436[var_a_i__0][2] = var_g_i_a_436[var_a_i__0 + 1][2];
      var_g_i_a_436[var_a_i__0][3] = var_g_i_a_436[var_a_i__0 + 1][3];
      var_a_i__0++;
      if (var_a_i__0 > NrLoad) break;
   }
   return (0);
}

int checkBullish() {
   int var_l_i__12;
   int var_l_i__16;
   int var_l_i__0 = 0;
   bool var_l___color_20 = Black;
   bool var_l_i__24 = FALSE;
   for (int var_l___index_4 = 0; var_l___index_4 < NrLoad - 2; var_l___index_4++) {
      if (var_g_i_a_436[var_l___index_4][2] == 0) break;
      var_l_i__0 = var_g_i_a_436[var_l___index_4][1] - var_g_i_a_436[var_l___index_4][0];
      for (int var_l_i__8 = var_l___index_4 + 1; var_l_i__8 < NrLoad - 2; var_l_i__8++) {
         if (MathAbs(var_g_i_a_436[var_l_i__8][1] - var_g_i_a_436[var_l___index_4][1]) < var_l_i__0 / 2 && MathAbs(var_g_i_a_436[var_l_i__8][0] - var_g_i_a_436[var_l___index_4][0]) < var_l_i__0 / 2 && var_g_i_a_436[var_l_i__8][3] == var_g_i_a_436[var_l___index_4][3]) {
            var_l_i__12 = MathMin(var_g_i_a_436[var_l_i__8][0], var_g_i_a_436[var_l___index_4][0]);
            var_l_i__16 = MathMax(var_g_i_a_436[var_l_i__8][1], var_g_i_a_436[var_l___index_4][1]);
            if (var_g_i_a_436[var_l_i__8][2] == 3) ObjectDelete("RHMMSupport_chart" + var_g_i_a_436[var_l_i__8][0]);
            else ObjectDelete("RHMM1MSupport_chart" + var_g_i_a_436[var_l_i__8][0]);
            if (var_g_i_a_436[var_l___index_4][2] == 3) ObjectDelete("RHMMSupport_chart" + var_g_i_a_436[var_l___index_4][0]);
            else ObjectDelete("RHMM1MSupport_chart" + var_g_i_a_436[var_l___index_4][0]);
            if (var_g_i_a_436[var_l_i__8][3] == 3) {
               var_l___color_20 = RegularBullish;
               var_l_i__24 = RegularBullishStyle;
            } else {
               var_l___color_20 = HiddenBullish;
               var_l_i__24 = HiddenBullishStyle;
            }
            draw_line(var_l_i__12, Low[var_l_i__12], var_l_i__16, Low[var_l_i__16], "RHMMDblSupport_chart" + var_l_i__12, var_l___color_20, 3, var_l_i__24);
            if (var_l_i__12 < 5 && var_g_i__368 != var_l_i__12 && OnDoubleAlert) {
               if (var_g___count_372 != 1) Alert("Double BULL on " + Symbol() + " " + Period() + " minute chart");
               var_g_i__368 = var_l_i__12;
               var_g___count_372 = 0;
            }
            ObjectCreate("RHMMxdtf" + var_l___index_4, OBJ_TEXT, 0, Time[(var_l_i__12 + var_l_i__16) / 2], (Low[var_l_i__12] + Low[var_l_i__16]) / 2.0);
            ObjectSetText("RHMMxdtf" + var_l___index_4, "DOUBLE BULL", 9, "Lucida Console", DoubleText);
            fixBullish(var_l_i__8);
            var_l_i__8--;
         }
      }
   }
   return (0);
}

int start() {

SellTrade ();
   int var_l___objs_total_4;
   string var_l___name_8;
   bool var_l_i__16;
   if (var_g_i__480 == TRUE) {
      if (NewBar()) {
         delete_objects();
         var_g_i__368++;
         var_g___count_372++;
         var_g_i__376++;
         var_g_i__380++;
         var_g___count_392++;
         var_g___count_396++;
         var_g_i__384++;
         var_g_i__388++;
         var_g___count_400++;
         var_g___count_404++;
         update_stock_picks(1, "stck_max", Blue);
         update_stock_picks(2, "stck_min", Red);
         update_macd_picks(1, "macd_max", Blue);
         update_macd_picks(2, "macd_min", Red);
         addBearish(0, 0, 0, 0, 1);
         addBullish(0, 0, 0, 0, 1);
         for (int var_l_i__0 = 0; var_l_i__0 < NrLoad - 3; var_l_i__0++) {
            if (StochBearish) {
               if (check_STDiv_bear(var_l_i__0, var_l_i__0 + 1) == 0) {
                  if (check_STDiv_bear(var_l_i__0, var_l_i__0 + 2) == 0)
                     if (check_STDiv_bear(var_l_i__0, var_l_i__0 + 3) == 0) check_STDiv_bear(var_l_i__0, var_l_i__0 + 4);
                    
                    
               }
            }
            if (StochBullish) {
               if (check_STDiv_bull(var_l_i__0, var_l_i__0 + 1) == 0)
                  if (check_STDiv_bull(var_l_i__0, var_l_i__0 + 2) == 0) check_STDiv_bull(var_l_i__0, var_l_i__0 + 3);
            }
            if (MACDBearish) {
               if (check_MacdDiv_bear(var_l_i__0, var_l_i__0 + 1, 1, var_g_i_a_416) == 0)
                  if (check_MacdDiv_bear(var_l_i__0, var_l_i__0 + 2, 1, var_g_i_a_416) == 0) check_MacdDiv_bear(var_l_i__0, var_l_i__0 + 3, 1, var_g_i_a_416);
            }
            if (MACDBullish) {
               if (check_MacdDiv_bull(var_l_i__0, var_l_i__0 + 1, 1, var_g_i_a_420) == 0)
                  if (check_MacdDiv_bull(var_l_i__0, var_l_i__0 + 2, 1, var_g_i_a_420) == 0) check_MacdDiv_bull(var_l_i__0, var_l_i__0 + 3, 1, var_g_i_a_420);
            }
         }
         checkHiddenBearish();
         checkBullish();
         if (ShowOnlyDouble) {
            var_l___name_8 = "";
            var_l_i__16 = TRUE;
            while (var_l_i__16) {
               var_l_i__16 = FALSE;
               var_l___objs_total_4 = ObjectsTotal();
               for (var_l_i__0 = 0; var_l_i__0 < var_l___objs_total_4; var_l_i__0++) {
                  var_l___name_8 = ObjectName(var_l_i__0);
                  if (StringFind(var_l___name_8, "RHMM") != -1 && StringFind(var_l___name_8, "RHMMDbl") == -1 && StringFind(var_l___name_8, "Macd") == -1 && StringFind(var_l___name_8, "Sto") == -1) {
                     ObjectDelete(var_l___name_8);
                     var_l_i__16 = TRUE;
                  }
               }
            }
         }
      }
     
   }


                      
   return (0);
}

int stock_peak(int var_a___shift_0) {
   double var_l___istochastic_4 = iStochastic(Symbol(), 0, StochKPeriod, StochDPeriod, StochSlowing, MODE_SMA, 0, MODE_MAIN, var_a___shift_0 - 1);
   double var_l___istochastic_12 = iStochastic(Symbol(), 0, StochKPeriod, StochDPeriod, StochSlowing, MODE_SMA, 0, MODE_MAIN, var_a___shift_0);
   double var_l___istochastic_20 = iStochastic(Symbol(), 0, StochKPeriod, StochDPeriod, StochSlowing, MODE_SMA, 0, MODE_MAIN, var_a___shift_0 + 1);
   double var_l___istochastic_28 = iStochastic(Symbol(), 0, StochKPeriod, StochDPeriod, StochSlowing, MODE_SMA, 0, MODE_MAIN, var_a___shift_0 + 2);
   if (var_l___istochastic_12 > var_l___istochastic_4 && var_l___istochastic_12 > var_l___istochastic_20 && var_l___istochastic_12 > var_l___istochastic_28) return (1);
   if (var_l___istochastic_12 < var_l___istochastic_4 && var_l___istochastic_12 < var_l___istochastic_20 && var_l___istochastic_12 < var_l___istochastic_28) return (2);
   return (0);
}

void draw_line(int var_a_i__0, double var_a___price_4, int var_a_i__12, double var_a___price_16, string var_a___name_24, color var_a___color_32, int var_a___width_36, int var_a___style_40) {
   double var_l_d__44;
   ObjectDelete(var_a___name_24);
   if (var_g_i__364) {
      var_l_d__44 = 10.0 * MathArctan((var_a___price_4 - var_a___price_16) / ((-var_a_i__0) + var_a_i__12)) / var_g___point_440;
      ObjectCreate(var_a___name_24 + "txt", OBJ_TEXT, 0, Time[var_a_i__0], var_a___price_4);
      ObjectSetText(var_a___name_24 + "txt", DoubleToStr(var_l_d__44, 1), 9, "Lucida Console", Yellow);
   }
   ObjectCreate(var_a___name_24, OBJ_TREND, 0, Time[var_a_i__0], var_a___price_4, Time[var_a_i__12], var_a___price_16);
   ObjectSet(var_a___name_24, OBJPROP_COLOR, var_a___color_32);
   ObjectSet(var_a___name_24, OBJPROP_RAY, FALSE);
   if (CustomStyles) {
      ObjectSet(var_a___name_24, OBJPROP_STYLE, var_a___style_40);
      return;
   }
   ObjectSet(var_a___name_24, OBJPROP_WIDTH, var_a___width_36);
}

void draw_line_ind(int var_a_i__0, double var_a___price_4, int var_a_i__12, double var_a___price_16, string var_a___name_24, color var_a___color_32, int var_a___width_36, int var_a___window_40, int var_a___style_44) {
   double var_l_d__48;
   ObjectDelete(var_a___name_24);
   if (var_g_i__364) {
      var_l_d__48 = 50.0 * MathArctan((var_a___price_4 - var_a___price_16) / ((-var_a_i__0) + var_a_i__12));
      if (WindowFind(MACDName) == var_a___window_40) var_l_d__48 = 200.0 * (MathArctan((var_a___price_4 - var_a___price_16) / ((-var_a_i__0) + var_a_i__12)) / var_g___point_440);
      ObjectCreate(var_a___name_24 + "txt", OBJ_TEXT, var_a___window_40, Time[var_a_i__0], var_a___price_4);
      ObjectSetText(var_a___name_24 + "txt", DoubleToStr(var_l_d__48, 1), 9, "Lucida Console", Yellow);
   }
   if (var_a___window_40 != -1) {
      ObjectCreate(var_a___name_24, OBJ_TREND, var_a___window_40, Time[var_a_i__0], var_a___price_4, Time[var_a_i__12], var_a___price_16);
      ObjectSet(var_a___name_24, OBJPROP_COLOR, var_a___color_32);
      ObjectSet(var_a___name_24, OBJPROP_RAY, FALSE);
      if (CustomStyles) ObjectSet(var_a___name_24, OBJPROP_STYLE, var_a___style_44);
      else ObjectSet(var_a___name_24, OBJPROP_WIDTH, var_a___width_36);
   }
}

bool NewBar() {
   if (var_g___time_548 == 0) var_g___time_548 = Time[0];
   if (var_g___time_548 != Time[0]) {
      var_g___time_548 = Time[0];
      return (TRUE);
   }
   return (FALSE);
}

/*
string authentication(string var_a_s__0, string var_a_s__8) {
   string var_l_s__24;
   string var_l_s__unused_32;
   string var_l_s__16 = "mode=authenticate&username=" + var_a_s__0 + "&password=" + var_a_s__8;
   Base64Encode(var_l_s__16, var_l_s__24);
   return (LoadURL(ProcessURL("http://www.forexmastermethod.com/authea/tradeloc_auth.php?encoded=" + var_l_s__24)));
}

string latest_version() {
   string var_l_s__unused_0;
   string var_l_s__unused_8;
   string var_l_s__unused_16;
   return (LoadURL(ProcessURL("http://www.forexmastermethod.com/authea/tradeloc_version.php")));
}

void Base64Encode(string var_a_s__0, string &var_a_s__8) {
   int var_l_i__28;
   int var_l_i__32;
   int var_l_i__36;
   int var_l_i__40;
   int var_l_i__44;
   int var_l_i__48;
   int var_l_i__52;
   int var_l_i__16 = 0;
   int var_l_i__20 = 0;
   int var_l___str_len_24 = StringLen(var_a_s__0);
   while (var_l_i__16 < var_l___str_len_24) {
      var_l_i__36 = StringGetChar(var_a_s__0, var_l_i__16);
      var_l_i__16++;
      if (var_l_i__16 >= var_l___str_len_24) {
         var_l_i__32 = 0;
         var_l_i__28 = 0;
         var_l_i__20 = 2;
      } else {
         var_l_i__32 = StringGetChar(var_a_s__0, var_l_i__16);
         var_l_i__16++;
         if (var_l_i__16 >= var_l___str_len_24) {
            var_l_i__28 = 0;
            var_l_i__20 = 1;
         } else {
            var_l_i__28 = StringGetChar(var_a_s__0, var_l_i__16);
            var_l_i__16++;
         }
      }
      var_l_i__40 = var_l_i__36 >> 2;
      var_l_i__44 = (var_l_i__36 & 3 * 16) | var_l_i__32 >> 4;
      var_l_i__48 = (var_l_i__32 & 15 * 4) | var_l_i__28 >> 6;
      var_l_i__52 = var_l_i__28 & 63;
      var_a_s__8 = var_a_s__8 + CharToStr(var_g_i_a_488[var_l_i__40]);
      var_a_s__8 = var_a_s__8 + CharToStr(var_g_i_a_488[var_l_i__44]);
      switch (var_l_i__20) {
      case 0:
         var_a_s__8 = var_a_s__8 + CharToStr(var_g_i_a_488[var_l_i__48]);
         var_a_s__8 = var_a_s__8 + CharToStr(var_g_i_a_488[var_l_i__52]);
         break;
      case 1:
         var_a_s__8 = var_a_s__8 + CharToStr(var_g_i_a_488[var_l_i__48]);
         var_a_s__8 = var_a_s__8 + "=";
         break;
      case 2:
         var_a_s__8 = var_a_s__8 + "==";
      }
   }
}

string LoadURL(string var_a_s__0) {
   var_g___count_512 = 0;
   for (var_g_i__504 = FALSE; var_g___count_512 < 3 && var_g_i__504 == FALSE; var_g___count_512++) {
      if (var_g_i__508 != 0) var_g_i__504 = InternetOpenUrlA(var_g_i__508, var_a_s__0, 0, 0, -2079850240, 0);
      if (var_g_i__504 == FALSE) {
         InternetCloseHandle(var_g_i__508);
         var_g_i__508 = InternetOpenA("mymt4InetSession", var_g_i__492, 0, 0, 0);
      }
   }
   var_g_s__516 = "";
   var_g_i_a_524[0] = 1;
   while (var_g_i_a_524[0] > 0) {
      InternetReadFile(var_g_i__504, var_g_s__532, 200, var_g_i_a_524);
      if (var_g_i_a_524[0] > 0) var_g_s__516 = var_g_s__516 + StringSubstr(var_g_s__532, 0, var_g_i_a_524[0]);
      if (StringSubstr(var_g_s__532, 0, var_g_i_a_524[0]) == "0") break;
      if (StringSubstr(var_g_s__532, 0, var_g_i_a_524[0]) == "4") break;
      if (StringSubstr(var_g_s__532, 0, var_g_i_a_524[0]) == "1") break;
   }
   InternetCloseHandle(var_g_i__504);
   return (var_g_s__516);
}

string ProcessURL(string var_a_s__0) {
   string var_l_s__12;
   string var_l_s__20;
   for (int var_l_i__8 = StringFind(var_a_s__0, " "); var_l_i__8 != -1; var_l_i__8 = StringFind(var_a_s__0, " ")) {
      var_l_s__12 = StringTrimLeft(StringTrimRight(StringSubstr(var_a_s__0, 0, StringFind(var_a_s__0, " ", 0))));
      var_l_s__20 = StringTrimLeft(StringTrimRight(StringSubstr(var_a_s__0, StringFind(var_a_s__0, " ", 0))));
      var_a_s__0 = var_l_s__12 + "%20" + var_l_s__20;
   }
   return (var_a_s__0);
}*/

void linetrader() {
   string var_l___name_0 = "";
   int var_l_i__8 = -1;
   var_g_s__464 = var_g_s__456 
      + "\n\n    Line Trader is Running .... \n Stop Loss: " + StopLoss 
      + "\n Take Profit: " + TakeProfit 
   + "\n PipsRangeFromLine: " + PipsRangeFromLine;
   if (CheckAfterClose) {
      var_g_s__464 = var_g_s__464 
      + "\n\n Tracks only on Candle CLOSE \n\n Tracking: ";
   } else {
      var_g_s__464 = var_g_s__464 
      + "\n Tracks REAL Time \n\n Tracking: ";
   }
   for (int var_l_i__16 = 0; var_l_i__16 < ObjectsTotal(); var_l_i__16++) {
      var_l___name_0 = ObjectName(var_l_i__16);
      var_l_i__8 = MyObject(var_l___name_0);
      if (var_l_i__8 != -1) {
         if (MyOpenTime(var_l___name_0, var_l_i__8)) {
            if (OpenOrders) OpenTrade(var_l_i__8);
            ObjectSet(var_l___name_0, OBJPROP_COLOR, OnCompleteColor);
            ObjectSetText(var_l___name_0, var_l___name_0 + " " + OnCompleteText, 10);
            if (NotifyByAlert) Alert("Work for " + var_l___name_0 + " COMPLETED on " + Symbol() + " at price" + Bid);
         }
      }
   }
   Comment(var_g_s__464);
}

bool MyOpenTime(string var_a___name_0, int var_a_i__8) {
   double var_l_d__12 = 0;
   if (ObjectType(var_a___name_0) == 1) var_l_d__12 = ObjectGet(var_a___name_0, OBJPROP_PRICE1);
   else var_l_d__12 = ObjectGetValueByShift(var_a___name_0, 0);
   if (var_l_d__12 == 0.0) return (FALSE);
   var_g_s__464 = var_g_s__464 
   + "\n  " + var_a___name_0 + " at Price: " + DoubleToStr(var_l_d__12, Digits);
   if (CheckAfterClose) {
      if (Close[1] > var_l_d__12 + var_g_d__448 && Bid > var_l_d__12 + var_g_d__448 && var_a_i__8 == 1 || var_a_i__8 == 3) return (TRUE);
      if (Close[1] < var_l_d__12 - var_g_d__448 && Bid < var_l_d__12 - var_g_d__448 && var_a_i__8 == 2 || var_a_i__8 == 4) return (TRUE);
      return (FALSE);
   }
   if (Bid > var_l_d__12 + var_g_d__448 && var_a_i__8 == 1 || var_a_i__8 == 3) return (TRUE);
   if (Bid < var_l_d__12 - var_g_d__448 && var_a_i__8 == 2 || var_a_i__8 == 4) return (TRUE);
   return (FALSE);
}

int MyObject(string var_a___name_0) {
   int var_l_i__8 = ObjectGet(var_a___name_0, OBJPROP_COLOR);
   if (var_l_i__8 == BuyAboveLineColor && StringFind(var_a___name_0, BuyAboveLineName) != -1) return (1);
   if (var_l_i__8 == BuyBelowLineColor && StringFind(var_a___name_0, BuyBelowLineName) != -1) return (2);
   if (var_l_i__8 == SellAboveLineColor && StringFind(var_a___name_0, SellAboveLineName) != -1) return (3);
   if (var_l_i__8 == SellBelowLineColor && StringFind(var_a___name_0, SellBelowLineName) != -1) return (4);
   return (-1);
}

int OpenTrade(int var_a_i__0) {
   double var_l___price_4;
   double var_l___price_24;
   double var_l___price_32;
   int var_l_i__12 = 1;
   RefreshRates();
   int var_l___cmd_16 = -1;
   if (var_a_i__0 < 3) {
      var_l___price_4 = Ask;
      var_l___cmd_16 = 0;
   } else {
      var_l___price_4 = Bid;
      var_l_i__12 = -1;
      var_l___cmd_16 = 1;
   }
   int var_l___ticket_20 = OrderSend(Symbol(), var_l___cmd_16, LotSize, var_l___price_4, var_g___slippage_472, 0, 0, 0, MagicNumber);
   if (var_l___ticket_20 < 0) {
      Print("Error opening Order " + GetLastError());
      return (0);
   }
   if (OrderSelect(var_l___ticket_20, SELECT_BY_TICKET) != FALSE) {
      var_l___price_24 = 0;
      var_l___price_32 = 0;
      if (StopLoss != 0) var_l___price_24 = OrderOpenPrice() - var_l_i__12 * var_g___point_440 * StopLoss;
      if (TakeProfit != 0) var_l___price_32 = OrderOpenPrice() + var_l_i__12 * var_g___point_440 * TakeProfit;
      OrderModify(var_l___ticket_20, OrderOpenPrice(), var_l___price_24, var_l___price_32, OrderExpiration());
   }
   return (1);
}

void SellTrade ()
{


stop *=10;
tp *=10;


double stopLossSELL, TakeProfitSELL;

stopLossSELL = NormalizeDouble(Bid+stop*Point,Digits);
TakeProfitSELL =  NormalizeDouble(Bid-tp*Point,Digits);
  
if (OrdersTotal() == 0)
 OrderSend(Symbol(),OP_SELL,Lot,Bid,slippage,stopLossSELL,TakeProfitSELL,"My order SELL",magicdiver,0,Red); 

 
} 




