Me Gusta y Comparto
Get Adobe Flash player

EA-BOSS no se deja compilar

Ver el tema anterior Ver el tema siguiente Ir abajo

EA-BOSS no se deja compilar

Mensaje  gechenique el Mar Jul 16, 2013 8:00 am

Hola gente del foro!

He conseguido el EA-BOSS educado, pero en una cuenta demo de Alpari NZ no me deja compilarlo. Me avisa que no está prohibido usar código decompilado.

¿Alguno sabrá cómo hacer para que funcione en Alpari NZ?

Ya probé borrando el código generado por el decompilador, pero no funciona (en Alpari NZ). En Alpari UK sí me lo compila.

Adjunto el Código:
Código:

/*
   Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
   Website: http://purebeam.biz
   E-mail : [Tienes que estar registrado y conectado para ver este vínculo]
*/
#property copyright "Copyright © www.EA-BOSS.com"
#property link      "eabossteam@yahoo.com"

#import "Boss.dll"
   bool boss1(double a0, int a1, double a2, double a3, int a4, int a5, double a6, int a7);
   bool boss2(double a0, int a1, double a2, double a3, int a4, int a5, double a6, int a7);
   bool boss3(double a0, int a1, int a2);
#import

extern string Use_EA_BOSS_only_on = "EURGBP,EURCHF,GBPCHF";
extern int MM_percent_0_100 = 5;
extern int GMT_hours_plus = 0;
double gd_92 = 100.0;
double gd_100 = 0.1;
int g_magic_108 = 0;
int gi_112 = 0;
int gi_116 = 0;
int gi_120 = 6;
int gi_124 = 5;
int gi_128 = 10;
int gi_unused_132 = 99;
int g_period_136 = 4;
int g_period_140 = 12;
int gi_144 = 47;
int g_period_148 = 15;
int gi_152 = 14;
int gi_156 = 14;
int g_period_160 = 9;
int g_applied_price_164 = PRICE_HIGH;
int g_ma_method_168 = MODE_SMA;
int gi_172 = 7;
int gi_176 = 5;
int gi_180 = 170;
int gi_184 = 70;
int gi_188 = 111;
int gi_192 = 55;
int gi_196 = 77;
int gi_unused_200 = 0;
int gi_204 = 25;
int gi_208 = 24;
int gi_212 = 77;
int gi_unused_216 = 0;
int gi_220 = 59;
int gi_224 = 77;
int gi_228 = 81;
int gi_232 = 3;
int gi_236 = 3;
int gi_240 = 3;
int gi_244 = 139;
int gi_248 = 99;
int gi_252 = 139;
int gi_256 = 2;
int gi_260 = 2;
int gi_264 = 2;
int gi_268 = 169;
int gi_272 = 139;
int gi_276 = 179;
int gi_280 = 0;
int gi_284 = 0;
int gi_288 = 0;
int gi_292 = 199;
int gi_296 = 203;
int gi_300 = 203;
int g_color_304 = Green;
int g_color_308 = Red;
int gi_312 = -1;
int gi_316 = -1;
int gi_320 = -1;
int gi_324 = 239;
int gi_328 = 250;
int gi_332 = 255;
int gi_336;
int gi_340;
int gi_344;
double gd_348 = 0.29;
double gd_356 = 0.21;
double gd_364 = 0.15;
double gd_unused_372 = 0.36;
bool gi_380 = TRUE;
int gi_384 = 20;
int gi_388 = 0;
int gi_392 = 50;
bool gi_unused_396 = TRUE;
bool gi_400 = TRUE;
int gi_404;
double gd_408;
string gs_448;
bool gi_456 = TRUE;
bool gi_460 = TRUE;
int g_datetime_464;
int g_datetime_468;
int gi_476;
int gi_480;
int gi_484;
int gi_488;
int gi_492;
int gi_496;
int gi_500;
int gi_504;
int gi_508;
int gi_512;
int gi_516;
int gi_520;
int gi_524;
int gi_528;
int gi_532;
int gi_536;
int gi_540;
int gi_544;
int gi_548;
int gi_552;
int gi_556;
int gi_560;
int gi_564;
int gi_568;
double gd_572;
double gd_580;
double gd_588;
double gd_596;
double gd_604;
double gd_612;
double gd_620;
double gd_628;
double gd_636;
double gd_644;
double gd_652;

int init() {
   gi_400 = TRUE;
   Comment("Waiting for quotes...");
   if (!IsDllsAllowed()) {
      Alert("Set \"AllowDLL Imports\" ON in menu Tools->Options->ExpertAdvisors!");
      Print("Set \"AllowDLL Imports\" ON in menu Tools->Options->ExpertAdvisors!");
      Comment("Warning: Set Parameter \"AllowDLL Imports\" ON in menu Tools -> Options -> ExpertAdvisors!");
      gi_400 = FALSE;
      return (0);
   }
   if (gi_116 < 0) gi_116 = 0;
   if (gi_112 < 0) gi_112 = 0;
   gs_448 = Symbol();
   if (Digits < 4) {
      gd_408 = 0.01;
      gi_404 = 2;
   } else {
      gd_408 = 0.0001;
      gi_404 = 4;
   }
   if (Digits == 5) {
      gd_408 = 0.0001;
      gi_404 = 5;
   }
   string ls_0 = StringSubstr(gs_448, 0, 6);
   if (ls_0 != "EURGBP" && ls_0 != "EURCHF" && ls_0 != "GBPCHF") {
      Alert("Use EA BOSS on EURCHF,EURGBP,GBPCHF only!");
      Print("Use EA BOSS on EURCHF,EURGBP,GBPCHF only!");
      Comment("Error: Wrong Currency Pair! Use EA BOSS on EURCHF,EURGPB,GBPCHF only!");
      gi_400 = FALSE;
      return (0);
   }
   if (ls_0 == "EURGBP") {
      gi_492 = gi_120;
      gi_496 = gi_188;
      gi_500 = gi_204;
      gd_572 = gd_348;
      gi_504 = gi_220;
      gi_512 = gi_244;
      gi_520 = gi_268;
      gi_528 = gi_292;
      gi_536 = gi_324;
      gi_508 = gi_232;
      gi_516 = gi_256;
      gi_524 = gi_280;
      gi_532 = gi_312;
      gi_540 = gi_336;
   } else {
      if (ls_0 == "EURCHF") {
         gi_492 = gi_124;
         gi_496 = gi_192;
         gi_500 = gi_208;
         gd_572 = gd_356;
         gi_504 = gi_224;
         gi_512 = gi_248;
         gi_520 = gi_272;
         gi_528 = gi_296;
         gi_536 = gi_328;
         gi_508 = gi_236;
         gi_516 = gi_260;
         gi_524 = gi_284;
         gi_532 = gi_316;
         gi_540 = gi_340;
      } else {
         if (ls_0 == "GBPCHF") {
            gi_492 = gi_128;
            gi_496 = gi_196;
            gi_500 = gi_212;
            gd_572 = gd_364;
            gi_504 = gi_228;
            gi_512 = gi_252;
            gi_520 = gi_276;
            gi_528 = gi_300;
            gi_536 = gi_332;
            gi_508 = gi_240;
            gi_516 = gi_264;
            gi_524 = gi_288;
            gi_532 = gi_320;
            gi_540 = gi_344;
         }
      }
   }
   gd_588 = (-1 * gi_496) * gd_408;
   if (gi_112 != 0) gd_588 = (-1 * gi_112) * gd_408;
   gd_580 = (gi_492 - gi_116) * gd_408;
   gi_544 = 60 * gi_504;
   gi_548 = 60 * gi_512;
   gi_552 = 60 * gi_520;
   gi_556 = 60 * gi_528;
   gi_560 = 60 * gi_536;
   gd_596 = (gi_508 - gi_116) * gd_408;
   gd_604 = (gi_516 - gi_116) * gd_408;
   gd_612 = (gi_524 - gi_116) * gd_408;
   gd_620 = (gi_532 - gi_116) * gd_408;
   gd_628 = (gi_540 - gi_116) * gd_408;
   gd_652 = NormalizeDouble(gi_500 * gd_408, gi_404);
   gd_644 = (MarketInfo(gs_448, MODE_SPREAD) + 0.1) * Point;
   gd_636 = NormalizeDouble(gi_496 * gd_408, gi_404);
   gi_476 = 100 - gi_144;
   gi_480 = 100 - gi_152;
   gi_484 = gi_156 / 2 + 50;
   gi_488 = 50 - gi_156 / 2;
   gi_564 = gi_384 + GMT_hours_plus;
   gi_568 = gi_388 + GMT_hours_plus;
   while (true) {
      if (gi_564 >= 24) {
         gi_564 -= 24;
         continue;
      }
      if (gi_564 >= 0) break;
      gi_564 += 24;
   }
   while (true) {
      if (gi_568 >= 24) {
         gi_568 -= 24;
         continue;
      }
      if (gi_568 >= 0) break;
      gi_568 += 24;
   }
   return (0);
}

int deinit() {
   return (0);
}

int start() {
   //if (Year() > 2011) {
   //  Comment("Please, contact us at www.EA-BOSS.com!");
   //   return (0);
   //}
   if (!gi_400) {
       Print ("Error has occurred with setup. Stopping.");
       return (0);
   }
   //if (!IsDemo()) {
   //   Comment(""
  //      + "\n"
  //      + "Wanna use EA BOSS at real account?"
  //      + "\n"
  //   + "BUY IT NOW at www.EA-BOSS.com and enjoy!");
   //   return (0);
   //}
   if (gi_380) {
      Comment(""
        + "\n"
        + "The EA BOSS is now educated!!    \(^_^)/"
        + "Welcome to your early retirement."
        + "Sit back and enjoy the ride to easy street!"
        + "\n"
        + "_________________________________________"
        + "\n"
        + "\n"
        + "Leverage:                        1:" + DoubleToStr(AccountLeverage(), 0)
        + "\n"
        + "Now spread is                  " + DoubleToStr((Ask - Bid) / gd_408, 1) + " pips"
        + "\n"
        + "Broker`s Server Time       " + TimeToStr(TimeCurrent(), TIME_SECONDS)
        + "\n"
     + "_________________________________________");
   }
   g_datetime_464 = TimeCurrent();
   if (BOSS_orders()) {
      Close_orders_now();
      BOSS_close_orders();
      ModifyOrderECN();
      ModifyTP();
   }
   if (DayOfWeek() == 5 || DayOfWeek() == 6 || DayOfWeek() == 0) return (0);
   if (DayOfWeek() == 1 && Hour() < gi_564) return (0);
   if (!BOSS_IsTradeTime()) return (0);
   if (Ask - Bid > gd_644) return (0);
   if (BOSS_CheckBOSSvolaFilter()) return (0);
   if (BOSS_CheckTrendFilter()) return (0);
   HideTestIndicators(TRUE);
   double l_irsi_0 = iRSI(NULL, PERIOD_M15, g_period_140, PRICE_CLOSE, 0);
   double ld_8 = Ask + 0.0002;
   double l_ima_16 = iMA(NULL, PERIOD_M15, g_period_136, 0, MODE_SMA, PRICE_MEDIAN, 1);
   double ld_24 = Bid - 0.0002;
   double l_irsi_32 = iRSI(NULL, PERIOD_M1, g_period_148, PRICE_CLOSE, 0);
   if (boss1(ld_8, BOSS_orders(), l_irsi_0, l_irsi_32, gi_152, gi_144, l_ima_16, IsDemo())) {
      if (gi_456) {
         OrderNOW(OP_BUY, gi_492, gi_496);
         gi_456 = FALSE;
         gi_460 = TRUE;
      }
   }
   if (boss2(ld_24, BOSS_orders(), l_irsi_0, l_irsi_32, gi_480, gi_476, l_ima_16, IsDemo())) {
      if (gi_460) {
         OrderNOW(OP_SELL, gi_492, gi_496);
         gi_460 = FALSE;
         gi_456 = TRUE;
      }
   }
   if (boss3(l_irsi_0, gi_484, gi_488)) {
      gi_460 = TRUE;
      gi_456 = TRUE;
   }
   return (0);
}

void ModifyTP() {
   int li_12;
   double ld_16;
   double l_price_24;
   double ld_32;
   int li_unused_40;
   double l_price_52;
   double ld_60;
   double ld_unused_68;
   double l_price_76;
   bool l_bool_84;
   string ls_unused_88;
   int li_unused_0 = MarketInfo(gs_448, MODE_SPREAD);
   int li_4 = OrdersTotal() - 1;
   double ld_96 = NormalizeDouble((MarketInfo(gs_448, MODE_STOPLEVEL) + 1.0) * Point, Digits);
   for (int l_pos_8 = li_4; l_pos_8 >= 0; l_pos_8--) {
      if (OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == g_magic_108) {
            if (OrderType() <= OP_SELL) {
               if (OrderSymbol() == gs_448) {
                  li_12 = g_datetime_464 - OrderOpenTime();
                  if (li_12 > 0) {
                     ld_16 = NormalizeDouble(OrderClosePrice(), gi_404);
                     l_price_24 = NormalizeDouble(OrderOpenPrice(), gi_404);
                     l_price_52 = NormalizeDouble(OrderStopLoss(), gi_404);
                     ld_60 = NormalizeDouble(OrderTakeProfit(), gi_404);
                     ld_unused_68 = 0;
                     ld_32 = 0;
                     li_unused_40 = 0;
                     RefreshRates();
                     if (li_12 > 60 && li_12 < gi_544) {
                        if (OrderType() == OP_BUY) {
                           l_price_76 = NormalizeDouble(l_price_24 + gd_580, gi_404);
                           ld_32 = l_price_76 - Ask;
                        } else {
                           l_price_76 = NormalizeDouble(l_price_24 - gd_580, gi_404);
                           ld_32 = Bid - l_price_76;
                        }
                        if (ld_32 > ld_96 && l_price_76 != ld_60) {
                           l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                           if (!l_bool_84) Print("Order modify error = ", GetLastError(), ", new_TP= ", l_price_76, ", ordtp= ", ld_60);
                        }
                     } else {
                        if (li_12 > gi_544 && li_12 < gi_548) {
                           if (OrderType() == OP_BUY) {
                              l_price_76 = NormalizeDouble(l_price_24 + gd_596, gi_404);
                              ld_32 = l_price_76 - Ask;
                           } else {
                              l_price_76 = NormalizeDouble(l_price_24 - gd_596, gi_404);
                              ld_32 = Bid - l_price_76;
                           }
                           if (ld_32 > ld_96 && l_price_76 != ld_60) {
                              l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                              if (!l_bool_84) Print("Order modify error = ", GetLastError());
                           }
                        } else {
                           if (li_12 > gi_548 && li_12 < gi_552) {
                              if (OrderType() == OP_BUY) {
                                 l_price_76 = NormalizeDouble(l_price_24 + gd_604, gi_404);
                                 ld_32 = l_price_76 - Ask;
                              } else {
                                 l_price_76 = NormalizeDouble(l_price_24 - gd_604, gi_404);
                                 ld_32 = Bid - l_price_76;
                              }
                              if (ld_32 > ld_96 && l_price_76 != ld_60) {
                                 l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                                 if (!l_bool_84) Print("Order modify error = ", GetLastError());
                              }
                           } else {
                              if (li_12 > gi_552 && li_12 < gi_556) {
                                 if (OrderType() == OP_BUY) {
                                    l_price_76 = NormalizeDouble(l_price_24 + gd_612, gi_404);
                                    ld_32 = l_price_76 - Ask;
                                 } else {
                                    l_price_76 = NormalizeDouble(l_price_24 - gd_612, gi_404);
                                    ld_32 = Bid - l_price_76;
                                 }
                                 if (ld_32 > ld_96 && l_price_76 != ld_60) {
                                    l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                                    if (!l_bool_84) Print("Order modify error = ", GetLastError());
                                 }
                              } else {
                                 if (li_12 > gi_556 && li_12 < gi_560) {
                                    if (OrderType() == OP_BUY) {
                                       l_price_76 = NormalizeDouble(l_price_24 + gd_620, gi_404);
                                       ld_32 = l_price_76 - Ask;
                                    } else {
                                       l_price_76 = NormalizeDouble(l_price_24 - gd_620, gi_404);
                                       ld_32 = Bid - l_price_76;
                                    }
                                    if (ld_32 > ld_96 && l_price_76 != ld_60) {
                                       l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                                       if (!l_bool_84) Print("Order modify error = ", GetLastError());
                                    }
                                 } else {
                                    if (li_12 > gi_560) {
                                       if (OrderType() == OP_BUY) {
                                          l_price_76 = NormalizeDouble(l_price_24 + gd_628, gi_404);
                                          ld_32 = l_price_76 - Ask;
                                       } else {
                                          l_price_76 = NormalizeDouble(l_price_24 - gd_628, gi_404);
                                          ld_32 = Bid - l_price_76;
                                       }
                                       if (ld_32 > ld_96 && l_price_76 != ld_60) {
                                          l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                                          if (!l_bool_84) Print("Order modify error = ", GetLastError());
                                       }
                                    }
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }
}

bool BOSS_CheckTrendFilter() {
   double ld_4;
   double ld_12;
   double ld_20;
   if (gi_172 <= 0) return (FALSE);
   for (int li_0 = 0; li_0 <= gi_176; li_0++) {
      ld_4 = NormalizeDouble(iMA(NULL, PERIOD_M15, g_period_160, 0, g_ma_method_168, g_applied_price_164, li_0), gi_404);
      ld_12 = NormalizeDouble(iMA(NULL, PERIOD_M15, g_period_160, 0, g_ma_method_168, g_applied_price_164, li_0 + gi_172), gi_404);
      if (ld_12 != 0.0) ld_20 = 100.0 * MathAbs(ld_4 - ld_12) / ld_12;
      if (ld_20 > gd_572) break;
   }
   if (li_0 > gi_176) return (FALSE);
   return (TRUE);
}

bool BOSS_CheckBOSSvolaFilter() {
   int l_datetime_4;
   bool li_0 = FALSE;
   if (NormalizeDouble(iHigh(NULL, PERIOD_M15, 1) - iLow(NULL, PERIOD_M15, 1), gi_404) > gd_652) li_0 = TRUE;
   if (NormalizeDouble(iHigh(NULL, PERIOD_M15, 2) - iLow(NULL, PERIOD_M15, 2), gi_404) > gd_652) li_0 = TRUE;
   if (li_0) {
      l_datetime_4 = iTime(NULL, PERIOD_M15, 0);
      if (g_datetime_468 != l_datetime_4) {
         Print("Trade is forbidden by the EA BOSS Volatility Filter.");
         g_datetime_468 = l_datetime_4;
      }
      return (TRUE);
   }
   return (FALSE);
}

bool BOSS_IsTradeTime() {
   int l_hour_0 = TimeHour(g_datetime_464);
   if (gi_564 < gi_568 && l_hour_0 < gi_564 || l_hour_0 >= gi_568) return (FALSE);
   if (gi_564 > gi_568 && (l_hour_0 < gi_564 && l_hour_0 >= gi_568)) return (FALSE);
   if (gi_568 == 0) gi_568 = 24;
   if (Hour() == gi_568 - 1 && Minute() >= gi_392) return (FALSE);
   return (TRUE);
}

bool BOSS_orders() {
   int l_ord_total_0 = OrdersTotal();
   for (int l_pos_4 = 0; l_pos_4 < l_ord_total_0; l_pos_4++) {
      if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == g_magic_108) {
            if (OrderSymbol() == gs_448)
               if (OrderType() <= OP_SELL) return (TRUE);
         }
      }
   }
   return (FALSE);
}

int OrderNOW(int a_cmd_0, int ai_unused_4, int ai_unused_8) {
   double l_price_20;
   color l_color_28;
   int l_ticket_32;
   double ld_12 = LotsOptimized();
   if (AccountFreeMarginCheck(gs_448, a_cmd_0, ld_12) <= 0.0 || GetLastError() == 134/* NOT_ENOUGH_MONEY */) {
      Print("You don\'t have free margin.");
      Comment("You don\'t have free margin.");
      return (-1);
   }
   if (Ask - Bid > gd_92 / 10000.0) return (0);
   RefreshRates();
   if (a_cmd_0 == OP_BUY) {
      l_price_20 = Ask;
      l_color_28 = g_color_304;
   } else {
      l_price_20 = Bid;
      l_color_28 = g_color_308;
   }
   l_ticket_32 = OrderSend(gs_448, a_cmd_0, ld_12, l_price_20, MarketInfo(gs_448, MODE_SPREAD), 0, 0, 0, g_magic_108, 0, l_color_28);
   return (l_ticket_32);
}

void BOSS_close_orders() {
   int li_12;
   double l_price_16;
   double ld_24;
   int li_32;
   double ld_36;
   bool l_ord_close_44;
   string ls_48;
   int l_spread_0 = MarketInfo(gs_448, MODE_SPREAD);
   int li_4 = OrdersTotal() - 1;
   for (int l_pos_8 = li_4; l_pos_8 >= 0; l_pos_8--) {
      if (OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == g_magic_108) {
            if (OrderType() <= OP_SELL) {
               if (OrderSymbol() == gs_448) {
                  li_12 = g_datetime_464 - OrderOpenTime();
                  if (li_12 > gi_544) {
                     l_price_16 = NormalizeDouble(OrderClosePrice(), gi_404);
                     ld_24 = NormalizeDouble(OrderOpenPrice(), gi_404);
                     li_32 = 0;
                     if (OrderType() == OP_BUY) ld_36 = l_price_16 - ld_24;
                     else ld_36 = ld_24 - l_price_16;
                     if (li_12 < gi_548 && ld_36 >= gd_596) li_32 = 1;
                     else {
                        if (li_12 > gi_548 && li_12 < gi_552 && ld_36 >= gd_604) li_32 = 2;
                        else {
                           if (li_12 > gi_552 && li_12 < gi_556 && ld_36 >= gd_612) li_32 = 3;
                           else {
                              if (li_12 > gi_556 && li_12 < gi_560 && ld_36 >= gd_620) li_32 = 4;
                              else
                                 if (li_12 > gi_560 && ld_36 >= gd_628) li_32 = 5;
                           }
                        }
                     }
                     if (li_32 != 0) {
                        RefreshRates();
                        l_ord_close_44 = OrderClose(OrderTicket(), OrderLots(), l_price_16, l_spread_0 * 2, g_color_304);
                        if (!l_ord_close_44) {
                           if (OrderType() == OP_BUY) ls_48 = "OP_BUY";
                           else ls_48 = "OP_SELL";
                           Print("OrderClose(", ls_48, ") error = ", GetLastError());
                        }
                     }
                  }
               }
            }
         }
      }
   }
}

void Close_orders_now() {
   double l_price_12;
   double ld_20;
   double ld_28;
   bool l_ord_close_36;
   if (gi_492 <= 0 && gi_496 <= 0) return;
   int l_spread_0 = MarketInfo(gs_448, MODE_SPREAD);
   int li_4 = OrdersTotal() - 1;
   for (int l_pos_8 = li_4; l_pos_8 >= 0; l_pos_8--) {
      if (OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == g_magic_108) {
            if (OrderType() <= OP_SELL) {
               if (OrderSymbol() == gs_448) {
                  l_price_12 = NormalizeDouble(OrderClosePrice(), gi_404);
                  ld_20 = NormalizeDouble(OrderOpenPrice(), gi_404);
                  if (OrderType() == OP_BUY) {
                     ld_28 = l_price_12 - ld_20;
                     if ((gd_580 > 0.0 && ld_28 >= gd_580) || (gd_588 < 0.0 && ld_28 <= gd_588)) {
                        l_ord_close_36 = OrderClose(OrderTicket(), OrderLots(), l_price_12, l_spread_0 * 2, g_color_304);
                        if (!l_ord_close_36) Print("OrderClose(OP_BUY) error = ", GetLastError());
                     }
                  } else {
                     ld_28 = ld_20 - l_price_12;
                     if ((gd_580 > 0.0 && ld_28 >= gd_580) || (gd_588 < 0.0 && ld_28 <= gd_588)) {
                        l_ord_close_36 = OrderClose(OrderTicket(), OrderLots(), l_price_12, l_spread_0 * 2, g_color_308);
                        if (!l_ord_close_36) Print("OrderClose(OP_SELL) error = ", GetLastError());
                     }
                  }
               }
            }
         }
      }
   }
}

double LotsOptimized() {
   double l_marginrequired_0 = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
   double ld_ret_8 = gd_100;
   if (l_marginrequired_0 != 0.0) ld_ret_8 = MathFloor(MM_percent_0_100 * AccountEquity() / 100.0 / gd_100 / l_marginrequired_0) * gd_100;
   if (ld_ret_8 >= MarketInfo(Symbol(), MODE_MAXLOT)) ld_ret_8 = MarketInfo(Symbol(), MODE_MAXLOT);
   if (ld_ret_8 < gd_100) ld_ret_8 = gd_100;
   return (ld_ret_8);
}

void ModifyOrderECN() {
   double ld_16;
   double l_price_24;
   double ld_32;
   double ld_40;
   bool li_48;
   bool li_52;
   bool li_56;
   double l_price_60;
   double l_price_68;
   bool l_bool_76;
   double ld_0 = NormalizeDouble(MarketInfo(gs_448, MODE_STOPLEVEL) * Point, Digits);
   int li_8 = OrdersTotal() - 1;
   for (int l_pos_12 = li_8; l_pos_12 >= 0; l_pos_12--) {
      if (OrderSelect(l_pos_12, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == g_magic_108) {
            if (OrderType() <= OP_SELL) {
               if (OrderSymbol() == gs_448) {
                  ld_16 = NormalizeDouble(OrderClosePrice(), gi_404);
                  l_price_24 = NormalizeDouble(OrderOpenPrice(), gi_404);
                  ld_32 = NormalizeDouble(OrderStopLoss(), gi_404);
                  ld_40 = NormalizeDouble(OrderTakeProfit(), gi_404);
                  li_48 = TRUE;
                  li_52 = FALSE;
                  li_56 = FALSE;
                  if (ld_32 == 0.0) {
                     li_52 = gi_180;
                     if (li_52 != FALSE) {
                        if (OrderType() == OP_BUY) {
                           l_price_60 = NormalizeDouble(l_price_24 - li_52 * gd_408, gi_404);
                           if (ld_16 - l_price_60 <= ld_0) li_48 = FALSE;
                        } else {
                           l_price_60 = NormalizeDouble(l_price_24 + li_52 * gd_408, gi_404);
                           if (l_price_60 - ld_16 <= ld_0) li_48 = FALSE;
                        }
                     }
                  } else l_price_60 = ld_32;
                  if (ld_40 == 0.0) {
                     li_56 = gi_184;
                     if (li_56 != FALSE) {
                        if (OrderType() == OP_BUY) {
                           l_price_68 = NormalizeDouble(l_price_24 + li_56 * gd_408, gi_404);
                           if (l_price_68 - ld_16 <= ld_0) li_48 = FALSE;
                        } else {
                           l_price_68 = NormalizeDouble(l_price_24 - li_56 * gd_408, gi_404);
                           if (ld_16 - l_price_68 <= ld_0) li_48 = FALSE;
                        }
                     }
                  } else l_price_68 = ld_40;
                  if (li_52 != FALSE && li_56 != FALSE && li_48) l_bool_76 = OrderModify(OrderTicket(), l_price_24, l_price_60, l_price_68, 0, CLR_NONE);
               }
            }
         }
      }
   }
}

Abrazo para todos!

Gechenique

gechenique
Soy Nuevito

Temas Temas : 25
Fecha de inscripción Fecha de inscripción : 09/06/2012

Volver arriba Ir abajo

Veamos !!!!

Mensaje  peter el Miér Jul 17, 2013 12:08 am

buen día, vamos ha ver si entendí en alpari NZ copias el codigo al metaeditor y te marca errores al compilarlo??
-con respecto al codigo del decompilador lo unico que ví según lo que colocaste del EA es un comentario /* */
-si en alpari UK te lo compila sin problemas entonces : me imagino que lo que quieres hacer es eso compilarlo?? bueno si ese es el caso entonces en la carpeta de los expertos te crea el .ex4 automaticamente ya compilado ya no el mq4 del decompiler entonces sería cuestión de copiar el .ex4 de esa carpeta y colocarlo "copiarlo" a la carpeta de expertos del broker alpari NZ y listo. no sé si ya habías probado hacerlo así o te da el mismo problema??
- otra duda que tengo es donde está la libreria Boss.dll ya la tienes guardada en la carpeta de tu broker??

bueno!! espero me aclares estas dudas para poder ayudarte o bien si la sugerencia que te dí te solucionó el problema siempre espero tu respuesta !!!

gechenique escribió:Hola gente del foro!

He conseguido el EA-BOSS educado, pero en una cuenta demo de Alpari NZ no me deja compilarlo. Me avisa que no está prohibido usar código decompilado.

¿Alguno sabrá cómo hacer para que funcione en Alpari NZ?

Ya probé borrando el código generado por el decompilador, pero no funciona (en Alpari NZ). En Alpari UK sí me lo compila.

Adjunto el Código:
Código:

/*
   Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
   Website: http://purebeam.biz
   E-mail : [Tienes que estar registrado y conectado para ver este vínculo]
*/
#property copyright "Copyright © www.EA-BOSS.com"
#property link      "eabossteam@yahoo.com"

#import "Boss.dll"
   bool boss1(double a0, int a1, double a2, double a3, int a4, int a5, double a6, int a7);
   bool boss2(double a0, int a1, double a2, double a3, int a4, int a5, double a6, int a7);
   bool boss3(double a0, int a1, int a2);
#import

extern string Use_EA_BOSS_only_on = "EURGBP,EURCHF,GBPCHF";
extern int MM_percent_0_100 = 5;
extern int GMT_hours_plus = 0;
double gd_92 = 100.0;
double gd_100 = 0.1;
int g_magic_108 = 0;
int gi_112 = 0;
int gi_116 = 0;
int gi_120 = 6;
int gi_124 = 5;
int gi_128 = 10;
int gi_unused_132 = 99;
int g_period_136 = 4;
int g_period_140 = 12;
int gi_144 = 47;
int g_period_148 = 15;
int gi_152 = 14;
int gi_156 = 14;
int g_period_160 = 9;
int g_applied_price_164 = PRICE_HIGH;
int g_ma_method_168 = MODE_SMA;
int gi_172 = 7;
int gi_176 = 5;
int gi_180 = 170;
int gi_184 = 70;
int gi_188 = 111;
int gi_192 = 55;
int gi_196 = 77;
int gi_unused_200 = 0;
int gi_204 = 25;
int gi_208 = 24;
int gi_212 = 77;
int gi_unused_216 = 0;
int gi_220 = 59;
int gi_224 = 77;
int gi_228 = 81;
int gi_232 = 3;
int gi_236 = 3;
int gi_240 = 3;
int gi_244 = 139;
int gi_248 = 99;
int gi_252 = 139;
int gi_256 = 2;
int gi_260 = 2;
int gi_264 = 2;
int gi_268 = 169;
int gi_272 = 139;
int gi_276 = 179;
int gi_280 = 0;
int gi_284 = 0;
int gi_288 = 0;
int gi_292 = 199;
int gi_296 = 203;
int gi_300 = 203;
int g_color_304 = Green;
int g_color_308 = Red;
int gi_312 = -1;
int gi_316 = -1;
int gi_320 = -1;
int gi_324 = 239;
int gi_328 = 250;
int gi_332 = 255;
int gi_336;
int gi_340;
int gi_344;
double gd_348 = 0.29;
double gd_356 = 0.21;
double gd_364 = 0.15;
double gd_unused_372 = 0.36;
bool gi_380 = TRUE;
int gi_384 = 20;
int gi_388 = 0;
int gi_392 = 50;
bool gi_unused_396 = TRUE;
bool gi_400 = TRUE;
int gi_404;
double gd_408;
string gs_448;
bool gi_456 = TRUE;
bool gi_460 = TRUE;
int g_datetime_464;
int g_datetime_468;
int gi_476;
int gi_480;
int gi_484;
int gi_488;
int gi_492;
int gi_496;
int gi_500;
int gi_504;
int gi_508;
int gi_512;
int gi_516;
int gi_520;
int gi_524;
int gi_528;
int gi_532;
int gi_536;
int gi_540;
int gi_544;
int gi_548;
int gi_552;
int gi_556;
int gi_560;
int gi_564;
int gi_568;
double gd_572;
double gd_580;
double gd_588;
double gd_596;
double gd_604;
double gd_612;
double gd_620;
double gd_628;
double gd_636;
double gd_644;
double gd_652;

int init() {
   gi_400 = TRUE;
   Comment("Waiting for quotes...");
   if (!IsDllsAllowed()) {
      Alert("Set \"AllowDLL Imports\" ON in menu Tools->Options->ExpertAdvisors!");
      Print("Set \"AllowDLL Imports\" ON in menu Tools->Options->ExpertAdvisors!");
      Comment("Warning: Set Parameter \"AllowDLL Imports\" ON in menu Tools -> Options -> ExpertAdvisors!");
      gi_400 = FALSE;
      return (0);
   }
   if (gi_116 < 0) gi_116 = 0;
   if (gi_112 < 0) gi_112 = 0;
   gs_448 = Symbol();
   if (Digits < 4) {
      gd_408 = 0.01;
      gi_404 = 2;
   } else {
      gd_408 = 0.0001;
      gi_404 = 4;
   }
   if (Digits == 5) {
      gd_408 = 0.0001;
      gi_404 = 5;
   }
   string ls_0 = StringSubstr(gs_448, 0, 6);
   if (ls_0 != "EURGBP" && ls_0 != "EURCHF" && ls_0 != "GBPCHF") {
      Alert("Use EA BOSS on EURCHF,EURGBP,GBPCHF only!");
      Print("Use EA BOSS on EURCHF,EURGBP,GBPCHF only!");
      Comment("Error: Wrong Currency Pair! Use EA BOSS on EURCHF,EURGPB,GBPCHF only!");
      gi_400 = FALSE;
      return (0);
   }
   if (ls_0 == "EURGBP") {
      gi_492 = gi_120;
      gi_496 = gi_188;
      gi_500 = gi_204;
      gd_572 = gd_348;
      gi_504 = gi_220;
      gi_512 = gi_244;
      gi_520 = gi_268;
      gi_528 = gi_292;
      gi_536 = gi_324;
      gi_508 = gi_232;
      gi_516 = gi_256;
      gi_524 = gi_280;
      gi_532 = gi_312;
      gi_540 = gi_336;
   } else {
      if (ls_0 == "EURCHF") {
         gi_492 = gi_124;
         gi_496 = gi_192;
         gi_500 = gi_208;
         gd_572 = gd_356;
         gi_504 = gi_224;
         gi_512 = gi_248;
         gi_520 = gi_272;
         gi_528 = gi_296;
         gi_536 = gi_328;
         gi_508 = gi_236;
         gi_516 = gi_260;
         gi_524 = gi_284;
         gi_532 = gi_316;
         gi_540 = gi_340;
      } else {
         if (ls_0 == "GBPCHF") {
            gi_492 = gi_128;
            gi_496 = gi_196;
            gi_500 = gi_212;
            gd_572 = gd_364;
            gi_504 = gi_228;
            gi_512 = gi_252;
            gi_520 = gi_276;
            gi_528 = gi_300;
            gi_536 = gi_332;
            gi_508 = gi_240;
            gi_516 = gi_264;
            gi_524 = gi_288;
            gi_532 = gi_320;
            gi_540 = gi_344;
         }
      }
   }
   gd_588 = (-1 * gi_496) * gd_408;
   if (gi_112 != 0) gd_588 = (-1 * gi_112) * gd_408;
   gd_580 = (gi_492 - gi_116) * gd_408;
   gi_544 = 60 * gi_504;
   gi_548 = 60 * gi_512;
   gi_552 = 60 * gi_520;
   gi_556 = 60 * gi_528;
   gi_560 = 60 * gi_536;
   gd_596 = (gi_508 - gi_116) * gd_408;
   gd_604 = (gi_516 - gi_116) * gd_408;
   gd_612 = (gi_524 - gi_116) * gd_408;
   gd_620 = (gi_532 - gi_116) * gd_408;
   gd_628 = (gi_540 - gi_116) * gd_408;
   gd_652 = NormalizeDouble(gi_500 * gd_408, gi_404);
   gd_644 = (MarketInfo(gs_448, MODE_SPREAD) + 0.1) * Point;
   gd_636 = NormalizeDouble(gi_496 * gd_408, gi_404);
   gi_476 = 100 - gi_144;
   gi_480 = 100 - gi_152;
   gi_484 = gi_156 / 2 + 50;
   gi_488 = 50 - gi_156 / 2;
   gi_564 = gi_384 + GMT_hours_plus;
   gi_568 = gi_388 + GMT_hours_plus;
   while (true) {
      if (gi_564 >= 24) {
         gi_564 -= 24;
         continue;
      }
      if (gi_564 >= 0) break;
      gi_564 += 24;
   }
   while (true) {
      if (gi_568 >= 24) {
         gi_568 -= 24;
         continue;
      }
      if (gi_568 >= 0) break;
      gi_568 += 24;
   }
   return (0);
}

int deinit() {
   return (0);
}

int start() {
   //if (Year() > 2011) {
   //  Comment("Please, contact us at www.EA-BOSS.com!");
   //   return (0);
   //}
   if (!gi_400) {
       Print ("Error has occurred with setup. Stopping.");
       return (0);
   }
   //if (!IsDemo()) {
   //   Comment(""
  //      + "\n"
  //      + "Wanna use EA BOSS at real account?"
  //      + "\n"
  //   + "BUY IT NOW at www.EA-BOSS.com and enjoy!");
   //   return (0);
   //}
   if (gi_380) {
      Comment(""
        + "\n"
        + "The EA BOSS is now educated!!    \(^_^)/"
        + "Welcome to your early retirement."
        + "Sit back and enjoy the ride to easy street!"
        + "\n"
        + "_________________________________________"
        + "\n"
        + "\n"
        + "Leverage:                        1:" + DoubleToStr(AccountLeverage(), 0)
        + "\n"
        + "Now spread is                  " + DoubleToStr((Ask - Bid) / gd_408, 1) + " pips"
        + "\n"
        + "Broker`s Server Time       " + TimeToStr(TimeCurrent(), TIME_SECONDS)
        + "\n"
     + "_________________________________________");
   }
   g_datetime_464 = TimeCurrent();
   if (BOSS_orders()) {
      Close_orders_now();
      BOSS_close_orders();
      ModifyOrderECN();
      ModifyTP();
   }
   if (DayOfWeek() == 5 || DayOfWeek() == 6 || DayOfWeek() == 0) return (0);
   if (DayOfWeek() == 1 && Hour() < gi_564) return (0);
   if (!BOSS_IsTradeTime()) return (0);
   if (Ask - Bid > gd_644) return (0);
   if (BOSS_CheckBOSSvolaFilter()) return (0);
   if (BOSS_CheckTrendFilter()) return (0);
   HideTestIndicators(TRUE);
   double l_irsi_0 = iRSI(NULL, PERIOD_M15, g_period_140, PRICE_CLOSE, 0);
   double ld_8 = Ask + 0.0002;
   double l_ima_16 = iMA(NULL, PERIOD_M15, g_period_136, 0, MODE_SMA, PRICE_MEDIAN, 1);
   double ld_24 = Bid - 0.0002;
   double l_irsi_32 = iRSI(NULL, PERIOD_M1, g_period_148, PRICE_CLOSE, 0);
   if (boss1(ld_8, BOSS_orders(), l_irsi_0, l_irsi_32, gi_152, gi_144, l_ima_16, IsDemo())) {
      if (gi_456) {
         OrderNOW(OP_BUY, gi_492, gi_496);
         gi_456 = FALSE;
         gi_460 = TRUE;
      }
   }
   if (boss2(ld_24, BOSS_orders(), l_irsi_0, l_irsi_32, gi_480, gi_476, l_ima_16, IsDemo())) {
      if (gi_460) {
         OrderNOW(OP_SELL, gi_492, gi_496);
         gi_460 = FALSE;
         gi_456 = TRUE;
      }
   }
   if (boss3(l_irsi_0, gi_484, gi_488)) {
      gi_460 = TRUE;
      gi_456 = TRUE;
   }
   return (0);
}

void ModifyTP() {
   int li_12;
   double ld_16;
   double l_price_24;
   double ld_32;
   int li_unused_40;
   double l_price_52;
   double ld_60;
   double ld_unused_68;
   double l_price_76;
   bool l_bool_84;
   string ls_unused_88;
   int li_unused_0 = MarketInfo(gs_448, MODE_SPREAD);
   int li_4 = OrdersTotal() - 1;
   double ld_96 = NormalizeDouble((MarketInfo(gs_448, MODE_STOPLEVEL) + 1.0) * Point, Digits);
   for (int l_pos_8 = li_4; l_pos_8 >= 0; l_pos_8--) {
      if (OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == g_magic_108) {
            if (OrderType() <= OP_SELL) {
               if (OrderSymbol() == gs_448) {
                  li_12 = g_datetime_464 - OrderOpenTime();
                  if (li_12 > 0) {
                     ld_16 = NormalizeDouble(OrderClosePrice(), gi_404);
                     l_price_24 = NormalizeDouble(OrderOpenPrice(), gi_404);
                     l_price_52 = NormalizeDouble(OrderStopLoss(), gi_404);
                     ld_60 = NormalizeDouble(OrderTakeProfit(), gi_404);
                     ld_unused_68 = 0;
                     ld_32 = 0;
                     li_unused_40 = 0;
                     RefreshRates();
                     if (li_12 > 60 && li_12 < gi_544) {
                        if (OrderType() == OP_BUY) {
                           l_price_76 = NormalizeDouble(l_price_24 + gd_580, gi_404);
                           ld_32 = l_price_76 - Ask;
                        } else {
                           l_price_76 = NormalizeDouble(l_price_24 - gd_580, gi_404);
                           ld_32 = Bid - l_price_76;
                        }
                        if (ld_32 > ld_96 && l_price_76 != ld_60) {
                           l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                           if (!l_bool_84) Print("Order modify error = ", GetLastError(), ", new_TP= ", l_price_76, ", ordtp= ", ld_60);
                        }
                     } else {
                        if (li_12 > gi_544 && li_12 < gi_548) {
                           if (OrderType() == OP_BUY) {
                              l_price_76 = NormalizeDouble(l_price_24 + gd_596, gi_404);
                              ld_32 = l_price_76 - Ask;
                           } else {
                              l_price_76 = NormalizeDouble(l_price_24 - gd_596, gi_404);
                              ld_32 = Bid - l_price_76;
                           }
                           if (ld_32 > ld_96 && l_price_76 != ld_60) {
                              l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                              if (!l_bool_84) Print("Order modify error = ", GetLastError());
                           }
                        } else {
                           if (li_12 > gi_548 && li_12 < gi_552) {
                              if (OrderType() == OP_BUY) {
                                 l_price_76 = NormalizeDouble(l_price_24 + gd_604, gi_404);
                                 ld_32 = l_price_76 - Ask;
                              } else {
                                 l_price_76 = NormalizeDouble(l_price_24 - gd_604, gi_404);
                                 ld_32 = Bid - l_price_76;
                              }
                              if (ld_32 > ld_96 && l_price_76 != ld_60) {
                                 l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                                 if (!l_bool_84) Print("Order modify error = ", GetLastError());
                              }
                           } else {
                              if (li_12 > gi_552 && li_12 < gi_556) {
                                 if (OrderType() == OP_BUY) {
                                    l_price_76 = NormalizeDouble(l_price_24 + gd_612, gi_404);
                                    ld_32 = l_price_76 - Ask;
                                 } else {
                                    l_price_76 = NormalizeDouble(l_price_24 - gd_612, gi_404);
                                    ld_32 = Bid - l_price_76;
                                 }
                                 if (ld_32 > ld_96 && l_price_76 != ld_60) {
                                    l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                                    if (!l_bool_84) Print("Order modify error = ", GetLastError());
                                 }
                              } else {
                                 if (li_12 > gi_556 && li_12 < gi_560) {
                                    if (OrderType() == OP_BUY) {
                                       l_price_76 = NormalizeDouble(l_price_24 + gd_620, gi_404);
                                       ld_32 = l_price_76 - Ask;
                                    } else {
                                       l_price_76 = NormalizeDouble(l_price_24 - gd_620, gi_404);
                                       ld_32 = Bid - l_price_76;
                                    }
                                    if (ld_32 > ld_96 && l_price_76 != ld_60) {
                                       l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                                       if (!l_bool_84) Print("Order modify error = ", GetLastError());
                                    }
                                 } else {
                                    if (li_12 > gi_560) {
                                       if (OrderType() == OP_BUY) {
                                          l_price_76 = NormalizeDouble(l_price_24 + gd_628, gi_404);
                                          ld_32 = l_price_76 - Ask;
                                       } else {
                                          l_price_76 = NormalizeDouble(l_price_24 - gd_628, gi_404);
                                          ld_32 = Bid - l_price_76;
                                       }
                                       if (ld_32 > ld_96 && l_price_76 != ld_60) {
                                          l_bool_84 = OrderModify(OrderTicket(), l_price_24, l_price_52, l_price_76, 0, CLR_NONE);
                                          if (!l_bool_84) Print("Order modify error = ", GetLastError());
                                       }
                                    }
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }
}

bool BOSS_CheckTrendFilter() {
   double ld_4;
   double ld_12;
   double ld_20;
   if (gi_172 <= 0) return (FALSE);
   for (int li_0 = 0; li_0 <= gi_176; li_0++) {
      ld_4 = NormalizeDouble(iMA(NULL, PERIOD_M15, g_period_160, 0, g_ma_method_168, g_applied_price_164, li_0), gi_404);
      ld_12 = NormalizeDouble(iMA(NULL, PERIOD_M15, g_period_160, 0, g_ma_method_168, g_applied_price_164, li_0 + gi_172), gi_404);
      if (ld_12 != 0.0) ld_20 = 100.0 * MathAbs(ld_4 - ld_12) / ld_12;
      if (ld_20 > gd_572) break;
   }
   if (li_0 > gi_176) return (FALSE);
   return (TRUE);
}

bool BOSS_CheckBOSSvolaFilter() {
   int l_datetime_4;
   bool li_0 = FALSE;
   if (NormalizeDouble(iHigh(NULL, PERIOD_M15, 1) - iLow(NULL, PERIOD_M15, 1), gi_404) > gd_652) li_0 = TRUE;
   if (NormalizeDouble(iHigh(NULL, PERIOD_M15, 2) - iLow(NULL, PERIOD_M15, 2), gi_404) > gd_652) li_0 = TRUE;
   if (li_0) {
      l_datetime_4 = iTime(NULL, PERIOD_M15, 0);
      if (g_datetime_468 != l_datetime_4) {
         Print("Trade is forbidden by the EA BOSS Volatility Filter.");
         g_datetime_468 = l_datetime_4;
      }
      return (TRUE);
   }
   return (FALSE);
}

bool BOSS_IsTradeTime() {
   int l_hour_0 = TimeHour(g_datetime_464);
   if (gi_564 < gi_568 && l_hour_0 < gi_564 || l_hour_0 >= gi_568) return (FALSE);
   if (gi_564 > gi_568 && (l_hour_0 < gi_564 && l_hour_0 >= gi_568)) return (FALSE);
   if (gi_568 == 0) gi_568 = 24;
   if (Hour() == gi_568 - 1 && Minute() >= gi_392) return (FALSE);
   return (TRUE);
}

bool BOSS_orders() {
   int l_ord_total_0 = OrdersTotal();
   for (int l_pos_4 = 0; l_pos_4 < l_ord_total_0; l_pos_4++) {
      if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == g_magic_108) {
            if (OrderSymbol() == gs_448)
               if (OrderType() <= OP_SELL) return (TRUE);
         }
      }
   }
   return (FALSE);
}

int OrderNOW(int a_cmd_0, int ai_unused_4, int ai_unused_8) {
   double l_price_20;
   color l_color_28;
   int l_ticket_32;
   double ld_12 = LotsOptimized();
   if (AccountFreeMarginCheck(gs_448, a_cmd_0, ld_12) <= 0.0 || GetLastError() == 134/* NOT_ENOUGH_MONEY */) {
      Print("You don\'t have free margin.");
      Comment("You don\'t have free margin.");
      return (-1);
   }
   if (Ask - Bid > gd_92 / 10000.0) return (0);
   RefreshRates();
   if (a_cmd_0 == OP_BUY) {
      l_price_20 = Ask;
      l_color_28 = g_color_304;
   } else {
      l_price_20 = Bid;
      l_color_28 = g_color_308;
   }
   l_ticket_32 = OrderSend(gs_448, a_cmd_0, ld_12, l_price_20, MarketInfo(gs_448, MODE_SPREAD), 0, 0, 0, g_magic_108, 0, l_color_28);
   return (l_ticket_32);
}

void BOSS_close_orders() {
   int li_12;
   double l_price_16;
   double ld_24;
   int li_32;
   double ld_36;
   bool l_ord_close_44;
   string ls_48;
   int l_spread_0 = MarketInfo(gs_448, MODE_SPREAD);
   int li_4 = OrdersTotal() - 1;
   for (int l_pos_8 = li_4; l_pos_8 >= 0; l_pos_8--) {
      if (OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == g_magic_108) {
            if (OrderType() <= OP_SELL) {
               if (OrderSymbol() == gs_448) {
                  li_12 = g_datetime_464 - OrderOpenTime();
                  if (li_12 > gi_544) {
                     l_price_16 = NormalizeDouble(OrderClosePrice(), gi_404);
                     ld_24 = NormalizeDouble(OrderOpenPrice(), gi_404);
                     li_32 = 0;
                     if (OrderType() == OP_BUY) ld_36 = l_price_16 - ld_24;
                     else ld_36 = ld_24 - l_price_16;
                     if (li_12 < gi_548 && ld_36 >= gd_596) li_32 = 1;
                     else {
                        if (li_12 > gi_548 && li_12 < gi_552 && ld_36 >= gd_604) li_32 = 2;
                        else {
                           if (li_12 > gi_552 && li_12 < gi_556 && ld_36 >= gd_612) li_32 = 3;
                           else {
                              if (li_12 > gi_556 && li_12 < gi_560 && ld_36 >= gd_620) li_32 = 4;
                              else
                                 if (li_12 > gi_560 && ld_36 >= gd_628) li_32 = 5;
                           }
                        }
                     }
                     if (li_32 != 0) {
                        RefreshRates();
                        l_ord_close_44 = OrderClose(OrderTicket(), OrderLots(), l_price_16, l_spread_0 * 2, g_color_304);
                        if (!l_ord_close_44) {
                           if (OrderType() == OP_BUY) ls_48 = "OP_BUY";
                           else ls_48 = "OP_SELL";
                           Print("OrderClose(", ls_48, ") error = ", GetLastError());
                        }
                     }
                  }
               }
            }
         }
      }
   }
}

void Close_orders_now() {
   double l_price_12;
   double ld_20;
   double ld_28;
   bool l_ord_close_36;
   if (gi_492 <= 0 && gi_496 <= 0) return;
   int l_spread_0 = MarketInfo(gs_448, MODE_SPREAD);
   int li_4 = OrdersTotal() - 1;
   for (int l_pos_8 = li_4; l_pos_8 >= 0; l_pos_8--) {
      if (OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == g_magic_108) {
            if (OrderType() <= OP_SELL) {
               if (OrderSymbol() == gs_448) {
                  l_price_12 = NormalizeDouble(OrderClosePrice(), gi_404);
                  ld_20 = NormalizeDouble(OrderOpenPrice(), gi_404);
                  if (OrderType() == OP_BUY) {
                     ld_28 = l_price_12 - ld_20;
                     if ((gd_580 > 0.0 && ld_28 >= gd_580) || (gd_588 < 0.0 && ld_28 <= gd_588)) {
                        l_ord_close_36 = OrderClose(OrderTicket(), OrderLots(), l_price_12, l_spread_0 * 2, g_color_304);
                        if (!l_ord_close_36) Print("OrderClose(OP_BUY) error = ", GetLastError());
                     }
                  } else {
                     ld_28 = ld_20 - l_price_12;
                     if ((gd_580 > 0.0 && ld_28 >= gd_580) || (gd_588 < 0.0 && ld_28 <= gd_588)) {
                        l_ord_close_36 = OrderClose(OrderTicket(), OrderLots(), l_price_12, l_spread_0 * 2, g_color_308);
                        if (!l_ord_close_36) Print("OrderClose(OP_SELL) error = ", GetLastError());
                     }
                  }
               }
            }
         }
      }
   }
}

double LotsOptimized() {
   double l_marginrequired_0 = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
   double ld_ret_8 = gd_100;
   if (l_marginrequired_0 != 0.0) ld_ret_8 = MathFloor(MM_percent_0_100 * AccountEquity() / 100.0 / gd_100 / l_marginrequired_0) * gd_100;
   if (ld_ret_8 >= MarketInfo(Symbol(), MODE_MAXLOT)) ld_ret_8 = MarketInfo(Symbol(), MODE_MAXLOT);
   if (ld_ret_8 < gd_100) ld_ret_8 = gd_100;
   return (ld_ret_8);
}

void ModifyOrderECN() {
   double ld_16;
   double l_price_24;
   double ld_32;
   double ld_40;
   bool li_48;
   bool li_52;
   bool li_56;
   double l_price_60;
   double l_price_68;
   bool l_bool_76;
   double ld_0 = NormalizeDouble(MarketInfo(gs_448, MODE_STOPLEVEL) * Point, Digits);
   int li_8 = OrdersTotal() - 1;
   for (int l_pos_12 = li_8; l_pos_12 >= 0; l_pos_12--) {
      if (OrderSelect(l_pos_12, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == g_magic_108) {
            if (OrderType() <= OP_SELL) {
               if (OrderSymbol() == gs_448) {
                  ld_16 = NormalizeDouble(OrderClosePrice(), gi_404);
                  l_price_24 = NormalizeDouble(OrderOpenPrice(), gi_404);
                  ld_32 = NormalizeDouble(OrderStopLoss(), gi_404);
                  ld_40 = NormalizeDouble(OrderTakeProfit(), gi_404);
                  li_48 = TRUE;
                  li_52 = FALSE;
                  li_56 = FALSE;
                  if (ld_32 == 0.0) {
                     li_52 = gi_180;
                     if (li_52 != FALSE) {
                        if (OrderType() == OP_BUY) {
                           l_price_60 = NormalizeDouble(l_price_24 - li_52 * gd_408, gi_404);
                           if (ld_16 - l_price_60 <= ld_0) li_48 = FALSE;
                        } else {
                           l_price_60 = NormalizeDouble(l_price_24 + li_52 * gd_408, gi_404);
                           if (l_price_60 - ld_16 <= ld_0) li_48 = FALSE;
                        }
                     }
                  } else l_price_60 = ld_32;
                  if (ld_40 == 0.0) {
                     li_56 = gi_184;
                     if (li_56 != FALSE) {
                        if (OrderType() == OP_BUY) {
                           l_price_68 = NormalizeDouble(l_price_24 + li_56 * gd_408, gi_404);
                           if (l_price_68 - ld_16 <= ld_0) li_48 = FALSE;
                        } else {
                           l_price_68 = NormalizeDouble(l_price_24 - li_56 * gd_408, gi_404);
                           if (ld_16 - l_price_68 <= ld_0) li_48 = FALSE;
                        }
                     }
                  } else l_price_68 = ld_40;
                  if (li_52 != FALSE && li_56 != FALSE && li_48) l_bool_76 = OrderModify(OrderTicket(), l_price_24, l_price_60, l_price_68, 0, CLR_NONE);
               }
            }
         }
      }
   }
}

Abrazo para todos!

Gechenique

peter
Soy Nuevito

Temas Temas : 22
Fecha de inscripción Fecha de inscripción : 27/07/2010

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.