← Назад к списку файлов

eurusd 1m scalper ea.mq4

Поиск по коду файла

#property description "EA uses Price action, Hedging, Correlations to predict the future price in forex market and due to many factors that affect the forex market all the time, The parameters values need to be updated once in a year or two so that the EA can adapt to the market new condtions or environment."
#property description "Manual trading requires the trader spend a lot of time in front of the computer screen to monitor the market and all of his or her trades at the same time."
#property description "Also, human manual trading is always affected by emotions like greed and fear. Using an auto trading software will eliminate the chances of the trader's emotions affecting his or her decisions."
#property strict

extern bool Display = TRUE; // Display Parameters
extern bool Hedging = TRUE;
extern int MaxTrades = 10; //MaxOrders
extern bool AutoLots = FALSE; //Auto Lots
extern double Lots = 0.01;
extern bool CheckFreeMargin = TRUE; //Check Free Margin
extern double TakeProfit = 19.0;
extern double Stoploss = 800.0;
extern double PositionsGap = 75.0; //Distance Btwn Orders
extern bool TrailSL = TRUE; //Trailing StopLoss
extern int  TrailPips = 12;  //Trailing Pips
extern int        MagicNumber    = 82379;
extern int        Slippage       = 3;
extern int        SpreadOp       = 55.0;  //Spread Max allowed

int MagicNumber2=MagicNumber-10000;
int MagicNumber3=MagicNumber-20000;

string descriptionM;
bool once = true;

double RangeInPoint=8500;

double OneOverPoint=10000.0;

string ActivationKey=739;

double gd_140;
double gd_148;
double gd_156;
bool gi_164 = TRUE;
bool gi_168 = FALSE;
double gd_172;
double g_ima_180;
double g_ienvelopes_188;
double g_ienvelopes_196;
double g_ienvelopes_204;
double g_ienvelopes_212;
double g_ichimoku_220;
int gi_228 = 1;
bool gi_232 = FALSE;
bool gi_236 = TRUE;
double gd_240 = 1.667;
int g_magic_248;
double g_price_252;
double gd_260;
double gd_unused_268;
double gd_unused_276;
bool gi_unused_284 = FALSE;
double gd_unused_288 = 20.0;
double g_price_296;
double g_bid_304;
double g_ask_312;
double gd_320;
double gd_328;
double gd_344;
double gd_352 = 3.0;
double gd_360;
int gi_368 = 0;
int gi_372 = 0;
bool gi_380;
string gs_384 = "EURUSD M1 Scalper";
int gi_392 = 0;
bool gi_396 = FALSE;
bool gi_400 = FALSE;
bool gi_404 = FALSE;
int gi_unused_408;
int gi_412;
double gd_416;
int g_pos_424 = 0;
int gi_428;
double gd_432 = 0.0;
bool gi_440 = FALSE;
int g_datetime_444 = 0;
int g_datetime_448 = 0;
double point;

int init() {
      // код доступен только после оплаты
   }

int deinit() {
   return (0);
}

int start() 
{
      // код доступен только после оплаты
   }

   int li_0;
   int li_4;
   int li_8;
   bool li_12;
   int l_timeframe_24;
   double l_str2dbl_28;
   double ld_36;
   double ld_44;
   double l_str2dbl_52;
   double l_str2dbl_60;
   double l_str2dbl_68;
   string ls_76;
   string ls_84;
   double ld_unused_92;
   double ld_unused_100;
   int li_unused_108;
   int li_112;
   int li_unused_116;
   double ld_120;
   double l_ord_lots_128;
   double l_ord_lots_136;
   double l_iclose_144;
   double l_iclose_152;
   double ld_160;
   int li_168;
   int li_172;

      if(Display)
      {
          ls_84 =   "Hedging            : " + Hedging                      
                  + "\nMax Trades       : " + MaxTrades
                  + "\nAutoLots         : " + AutoLots
                  + "\nLots             : " + Lots
                  + "\nCheckFreeMargin  : " + CheckFreeMargin
                  + "\nTakeProfit       : " + TakeProfit
                  + "\nStoploss         : " + Stoploss
                  + "\nPositionsGap     : " + PositionsGap
                  + "\nTrail StopLoss   : " + TrailSL
                  + "\nTrailPips        : " + TrailPips
                  + "\nMagic Number     : " + MagicNumber
                  + "\nSlippage         : " + Slippage
                  + "\nSpread Operation : " + SpreadOp;        

          Comment(ls_84);
      }

      if (MarketInfo(Symbol(), MODE_LOTSTEP) == 0.1) gd_360 = 1;
      else gd_360 = 2;
      li_12 = FALSE;
      li_0 = 7;
      li_4 = 12;
      li_8 = 2009;

            gd_172 = PositionsGap;
            for (int l_pos_16 = 0; l_pos_16 <= OrdersTotal() - 1; l_pos_16++) {
               OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES);
               if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber || OrderMagicNumber() == MagicNumber2) {
                  if (OrderType() == OP_BUY)
                     if (OrderOpenPrice() - Bid > Stoploss / OneOverPoint) OrderClose(OrderTicket(), OrderLots(), Bid, 2, CLR_NONE);
                  if (OrderType() == OP_SELL)
                     if (Ask - OrderOpenPrice() > Stoploss / OneOverPoint) OrderClose(OrderTicket(), OrderLots(), Ask, 2, CLR_NONE);
               }
            }
            if (TrailSL == TRUE) {
               if (CountTradesB() == 1) {
                  for (int l_pos_20 = 0; l_pos_20 <= OrdersTotal() - 1; l_pos_20++) {
                     OrderSelect(l_pos_20, SELECT_BY_POS, MODE_TRADES);
                     if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber || OrderMagicNumber() == MagicNumber3) {
                        if (OrderType() == OP_BUY)
                           if (Bid - OrderOpenPrice() >= TrailPips / OneOverPoint && OrderStopLoss() < Bid - TrailPips / OneOverPoint - 0.0002)
                           if(OrderModifyCheck(OrderTicket(),OrderOpenPrice(),Bid - TrailPips / OneOverPoint + 0.0002,Bid - TrailPips / OneOverPoint + 0.0002 + 0.002)) 
                           {
                           if(CheckStopLoss_Takeprofit(OP_BUY,Bid - TrailPips / OneOverPoint + 0.0002,Bid - TrailPips / OneOverPoint + 0.0002 + 0.002))
                           OrderModify(OrderTicket(), OrderOpenPrice(), Bid - TrailPips / OneOverPoint + 0.0002, Bid - TrailPips / OneOverPoint + 0.0002 + 0.002, 0, Yellow);
                           }
                     }
                  }
               }
               if (CountTradesS() == 1) {
                  for (int l_pos_20 = 0; l_pos_20 <= OrdersTotal() - 1; l_pos_20++) {
                     OrderSelect(l_pos_20, SELECT_BY_POS, MODE_TRADES);
                     if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber2 || OrderMagicNumber() == MagicNumber3) {
                        if (OrderType() == OP_SELL)
                           if (OrderOpenPrice() - Ask >= TrailPips / OneOverPoint && OrderStopLoss() > Ask + TrailPips / OneOverPoint - 0.0002)
                           if(OrderModifyCheck(OrderTicket(),OrderOpenPrice(),Ask + TrailPips / OneOverPoint - 0.0002,Ask + TrailPips / OneOverPoint - 0.0002 - 0.002))
                           {
                           if(CheckStopLoss_Takeprofit(OP_SELL,Ask + TrailPips / OneOverPoint - 0.0002,Ask + TrailPips / OneOverPoint - 0.0002 - 0.002))
                           OrderModify(OrderTicket(), OrderOpenPrice(), Ask + TrailPips / OneOverPoint - 0.0002, Ask + TrailPips / OneOverPoint - 0.0002 - 0.002, 0, Yellow);
                           }
                     }
                  }
               }
            }
            l_timeframe_24 = Period();
            if (Hedging == TRUE) {
               if (gi_164 == TRUE) g_magic_248 = MagicNumber;
               else g_magic_248 = 12378;

               if(true){
                  if (IsDemo() == TRUE) {
                     l_str2dbl_28 = StrToDouble(ActivationKey);
                     ls_76 = AccountNumber();
                     ld_44 = StringLen(ls_76);
                     l_str2dbl_52 = StrToDouble(StringSubstr(ls_76, 0, 1));
                     l_str2dbl_60 = StrToDouble(StringSubstr(ls_76, 1, 1));
                     l_str2dbl_68 = StrToDouble(StringSubstr(ls_76, ld_44 - 1.0, 1));

                     ld_36=739;
                  } else {
                     l_str2dbl_28 = StrToDouble(ActivationKey);
                     ls_76 = AccountNumber();
                     ld_44 = StringLen(ls_76);
                     l_str2dbl_52 = StrToDouble(StringSubstr(ls_76, 0, 1));
                     l_str2dbl_60 = StrToDouble(StringSubstr(ls_76, 1, 1));
                     l_str2dbl_68 = StrToDouble(StringSubstr(ls_76, ld_44 - 1.0, 1));

                     ld_36=739;
                  }
                  if (True) {
                     ls_84 = "";
                     ls_84 = ls_84 
                     + "\nBroker: " + AccountCompany();
                     if (TRUE) {
                        ls_84 = ls_84 
                        + "\nAccount: " + AccountNumber();
                     } else {
                        ls_84 = ls_84 
                        + "\nAccount: " + AccountNumber();
                     }
                     gi_unused_408 = 0;
                     if (gi_164 == TRUE) {
                        gi_440 = FALSE;
                        if (AccountLeverage() <= 1000) {
                           gd_140 = AccountFreeMargin() / 100.0;
                           gd_148 = MarketInfo(Symbol(), MODE_MARGINREQUIRED) * MarketInfo(Symbol(), MODE_MINLOT);
                           if (AutoLots == TRUE) {
                              Lots = 0;
                              gd_156 = MathFloor(AccountFreeMargin() / (100.0 * gd_148)) * MarketInfo(Symbol(), MODE_MINLOT);
                              if (gd_156 < MarketInfo(Symbol(), MODE_MINLOT)) Lots = MarketInfo(Symbol(), MODE_MINLOT);
                              else Lots = gd_156;
                           }
                           if (gd_148 <= gd_140) gi_unused_408 = 1;
                           else {
                              li_112 = 100.0 * gd_148;
                              ls_84 = ls_84 
                              + "\nFree Margin should be around: " + li_112 + " [atleast]";
                           }
                        } else {
                           Lots = 0;
                           Alert("Account Leverage should be 100 or LESS\nYour Account Leverage is: ", AccountLeverage());
                        }
                     }

                     li_unused_116 = TakeProfit;

                     if (gi_368 == Time[0]) return (0);
                     gi_368 = Time[0];
                     ld_120 = CalculateProfit();
                     gi_428 = CountTrades();
                     if (gi_428 == 0) gi_380 = FALSE;
                     for (g_pos_424 = OrdersTotal() - 1; g_pos_424 >= 0; g_pos_424--) {
                        OrderSelect(g_pos_424, SELECT_BY_POS, MODE_TRADES);
                        if (OrderSymbol() != Symbol() || OrderMagicNumber() != g_magic_248) continue;
                        if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                           if (OrderType() == OP_BUY) {
                              gi_400 = TRUE;
                              gi_404 = FALSE;
                              l_ord_lots_128 = OrderLots();
                              break;
                           }
                        }
                        if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                           if (OrderType() == OP_SELL) {
                              gi_400 = FALSE;
                              gi_404 = TRUE;
                              l_ord_lots_136 = OrderLots();
                              break;
                           }
                        }
                     }
                     if (gi_428 > 0 && gi_428 <= MaxTrades) {
                        RefreshRates();
                        gd_320 = LastBuyPrice();
                        gd_328 = LastSellPrice();
                        if (gi_168 != FALSE) gd_172 = 2.5 * (75 * gi_428);
                        if (gi_400 && gd_320 - Ask >= gd_172 / OneOverPoint) gi_396 = TRUE;
                        if (gi_404 && Bid - gd_328 >= gd_172 / OneOverPoint) gi_396 = TRUE;
                     }
                     if (gi_428 < 1) {
                        gi_404 = FALSE;
                        gi_400 = FALSE;
                        gi_396 = TRUE;
                        gd_260 = AccountEquity();
                     }
                     if (gi_396) {
                        gd_320 = LastBuyPrice();
                        gd_328 = LastSellPrice();
                        if (gi_404) {
                           if (gi_232) {
                              fOrderCloseMarket(0, 1);
                              gd_416 = NormalizeDouble(gd_240 * l_ord_lots_136, gd_360);
                           } else gd_416 = fGetLots(OP_SELL);
                           if (gi_236) {
                              gi_392 = gi_428;
                              if (gd_416 > 0.0) {
                                 RefreshRates();
                                 if (gi_412 < 0) {
                                    Print("Error: ", GetLastError());
                                    return (0);
                                 }
                                 gd_328 = LastSellPrice();
                                 gi_396 = FALSE;
                                 gi_440 = TRUE;
                              }
                           }
                        } else {
                           if (gi_400) {
                              if (gi_232) {
                                 fOrderCloseMarket(1, 0);
                                 gd_416 = NormalizeDouble(gd_240 * l_ord_lots_128, gd_360);
                              } else gd_416 = fGetLots(OP_BUY);
                              if (gi_236) {
                                 gi_392 = gi_428;
                                 if (gd_416 > 0.0) {
                                    gi_412 = OpenPendingOrder(0, gd_416, Ask, gd_352, Bid, 0, 0, gs_384 + "-" + gi_392, g_magic_248, 0, Lime);
                                    if (gi_412 < 0) {
                                       Print("Error: ", GetLastError());
                                       return (0);
                                    }
                                    gd_320 = LastBuyPrice();
                                    gi_396 = FALSE;
                                    gi_440 = TRUE;
                                 }
                              }
                           }
                        }
                     }
                     if (gi_396 && gi_428 < 1) {
                        l_iclose_144 = iClose(Symbol(), 0, 2);
                        l_iclose_152 = iClose(Symbol(), 0, 1);
                        g_bid_304 = Bid;
                        g_ask_312 = Ask;
                        if (!gi_404 && !gi_400) {
                           gi_392 = gi_428;
                           if (l_iclose_144 > l_iclose_152) {
                              gd_416 = fGetLots(OP_SELL);
                              if (gd_416 > 0.0) {
                                 if (gi_412 < 0) {
                                    Print(gd_416, "Error: ", GetLastError());
                                    return (0);
                                 }
                                 gd_320 = LastBuyPrice();
                                 gi_440 = TRUE;
                              }
                           } else {
                              gd_416 = fGetLots(OP_BUY);
                              if (gd_416 > 0.0) {
                                 gi_412 = OpenPendingOrder(0, gd_416, g_ask_312, gd_352, g_ask_312, 0, 0, gs_384 + "-" + gi_392, g_magic_248, 0, Lime);
                                 if (gi_412 < 0) {
                                    Print(gd_416, "Error: ", GetLastError());
                                    return (0);
                                 }
                                 gd_328 = LastSellPrice();
                                 gi_440 = TRUE;
                              }
                           }
                        }
                        gi_396 = FALSE;
                     }
                     gi_428 = CountTrades();
                     g_price_296 = 0;
                     ld_160 = 0;
                     for (g_pos_424 = OrdersTotal() - 1; g_pos_424 >= 0; g_pos_424--) {
                        OrderSelect(g_pos_424, SELECT_BY_POS, MODE_TRADES);
                        if (OrderSymbol() != Symbol() || OrderMagicNumber() != g_magic_248) continue;
                        if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                           if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
                              g_price_296 += OrderOpenPrice() * OrderLots();
                              ld_160 += OrderLots();
                           }
                        }
                     }
                     if (gi_428 > 0) g_price_296 = NormalizeDouble(g_price_296 / ld_160, Digits);
                     if (gi_440) {
                        for (g_pos_424 = OrdersTotal() - 1; g_pos_424 >= 0; g_pos_424--) {
                           OrderSelect(g_pos_424, SELECT_BY_POS, MODE_TRADES);
                           if (OrderSymbol() != Symbol() || OrderMagicNumber() != g_magic_248) continue;
                           if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                              if (OrderType() == OP_BUY) {
                                 g_price_252 = g_price_296 + TakeProfit / OneOverPoint;
                                 gd_unused_268 = g_price_252;
                                 gd_432 = g_price_296 - Stoploss * Point;
                                 gi_380 = TRUE;
                              }
                           }
                           if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                              if (OrderType() == OP_SELL) {
                                 g_price_252 = g_price_296 - TakeProfit / OneOverPoint;
                                 gd_unused_276 = g_price_252;
                                 gd_432 = g_price_296 + Stoploss * Point;
                                 gi_380 = TRUE;
                              }
                           }
                        }
                     }
                     if (gi_440) {
                        if (gi_380 == TRUE) {
                           for (g_pos_424 = OrdersTotal() - 1; g_pos_424 >= 0; g_pos_424--) {
                              OrderSelect(g_pos_424, SELECT_BY_POS, MODE_TRADES);
                              if (OrderSymbol() != Symbol() || OrderMagicNumber() != g_magic_248) continue;
                              if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                                 if (OrderStopLoss() > 0.0){

                                 if(OrderModifyCheck(OrderTicket(),g_price_296,OrderStopLoss(),g_price_252))
                                   {

                                    OrderModify(OrderTicket(), g_price_296, 0, g_price_252, 0, Yellow);
                                    OrderModify(OrderTicket(), g_price_296, OrderStopLoss(), g_price_252, 0, Yellow);
                                    }
                                 }
                                 else 

                                 {if(OrderModifyCheck(OrderTicket(),g_price_296,OrderOpenPrice() - Stoploss / OneOverPoint,g_price_252))
                                 {

                                    if(CheckStopLoss_Takeprofit(OP_BUY,OrderOpenPrice() - Stoploss / OneOverPoint,g_price_252))
                                    if(CheckRange(OrderOpenPrice() - Stoploss / OneOverPoint,g_price_252))
                                    OrderModify(OrderTicket(), g_price_296, OrderOpenPrice() - Stoploss / OneOverPoint, g_price_252, 0, Yellow);                             
                                 }
                                 }
                              }
                              gi_440 = FALSE;
                           }
                        }
                     }
                  } else Alert("Please Activate your copy\nof Nemesis Scalper");
               } else {
                  ls_84="Works only on EURUSD 1 Minute Chart but You are trying to use it on "+ Symbol()+ " "+ Period();
                  /*Alert("Works only on EURUSD 1 Minute Chart", 
                  " but You are trying to use it on ", Symbol(), " ", Period()); */
                  if(once){
                  Alert("Works only on EURUSD 1 Minute Chart but You are trying to use it on "+ Symbol()+ " "+ Period()); once =false; }
               }
               if (gi_164 == TRUE) {
                  gi_396 = FALSE;
                  g_magic_248 = MagicNumber2;
               } else g_magic_248 = 12378;

               if(true){
                  l_str2dbl_28 = 0;
                  ld_36 = 0;
                  ld_44 = 0;
                  l_str2dbl_52 = 0;
                  l_str2dbl_60 = 0;
                  l_str2dbl_68 = 0;
                  if (IsDemo() == TRUE) {
                     l_str2dbl_28 = StrToDouble(ActivationKey);
                     ls_76 = AccountNumber();
                     ld_44 = StringLen(ls_76);
                     l_str2dbl_52 = StrToDouble(StringSubstr(ls_76, 0, 1));
                     l_str2dbl_60 = StrToDouble(StringSubstr(ls_76, 1, 1));
                     l_str2dbl_68 = StrToDouble(StringSubstr(ls_76, ld_44 - 1.0, 1));

                     ld_36=739;
                  } else {
                     l_str2dbl_28 = StrToDouble(ActivationKey);
                     ls_76 = AccountNumber();
                     ld_44 = StringLen(ls_76);
                     l_str2dbl_52 = StrToDouble(StringSubstr(ls_76, 0, 1));
                     l_str2dbl_60 = StrToDouble(StringSubstr(ls_76, 1, 1));
                     l_str2dbl_68 = StrToDouble(StringSubstr(ls_76, ld_44 - 1.0, 1));

                     ld_36=739;
                  }
                  if (l_str2dbl_28 == ld_36) {
                     ls_84 = "USE ONLY EURUSD M1";
                     ls_84 = ls_84 
                     + "\nBroker: " + AccountCompany();
                     if (IsDemo() == TRUE) {
                        ls_84 = ls_84 
                        + "\nDemo Account: " + AccountNumber();
                     } else {
                        ls_84 = ls_84 
                        + "\nReal Account: " + AccountNumber();
                     }
                     gi_unused_408 = 0;
                     ld_unused_92 = 0;
                     ld_unused_100 = 0;
                     li_unused_108 = 0;
                     if (gi_164 == TRUE) {
                        gi_440 = FALSE;
                        if (AccountLeverage() <= 1000) {
                           gd_140 = AccountFreeMargin() / 100.0;
                           gd_148 = MarketInfo(Symbol(), MODE_MARGINREQUIRED) * MarketInfo(Symbol(), MODE_MINLOT);
                           if (AutoLots == TRUE) {
                              Lots = 0;
                              gd_156 = MathFloor(AccountFreeMargin() / (100.0 * gd_148)) * MarketInfo(Symbol(), MODE_MINLOT);
                              if (gd_156 < MarketInfo(Symbol(), MODE_MINLOT)) Lots = MarketInfo(Symbol(), MODE_MINLOT);
                              else Lots = gd_156;
                           }
                           if (gd_148 <= gd_140) gi_unused_408 = 1;
                           else {
                              li_168 = 100.0 * gd_148;
                              ls_84 = ls_84 
                              + "\nFree Margin should be around: " + li_168 + " [atleast]";
                           }
                        } else {
                           Lots = 0;
                           Alert("Account Leverage should be 100 or LESS\nYour Account Leverage is: ", AccountLeverage());
                        }
                     }
                     li_unused_116 = TakeProfit;
                     Comment(ls_84);
                     if (gi_372 == Time[0]) return (0);
                     gi_372 = Time[0];
                     ld_120 = CalculateProfit();
                     gi_428 = CountTrades();
                     if (gi_428 == 0) gi_380 = FALSE;
                     l_ord_lots_128 = 0;
                     l_ord_lots_136 = 0;
                     for (g_pos_424 = OrdersTotal() - 1; g_pos_424 >= 0; g_pos_424--) {
                        OrderSelect(g_pos_424, SELECT_BY_POS, MODE_TRADES);
                        if (OrderSymbol() != Symbol() || OrderMagicNumber() != g_magic_248) continue;
                        if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                           if (OrderType() == OP_BUY) {
                              gi_400 = TRUE;
                              gi_404 = FALSE;
                              l_ord_lots_128 = OrderLots();
                              break;
                           }
                        }
                        if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                           if (OrderType() == OP_SELL) {
                              gi_400 = FALSE;
                              gi_404 = TRUE;
                              l_ord_lots_136 = OrderLots();
                              break;
                           }
                        }
                     }
                     if (gi_428 > 0 && gi_428 <= MaxTrades) {
                        RefreshRates();
                        gd_320 = LastBuyPrice();
                        gd_328 = LastSellPrice();
                        if (gi_168 != FALSE) gd_172 = 2.5 * (75 * gi_428);
                        if (gi_400 && gd_320 - Ask >= gd_172 / OneOverPoint) gi_396 = TRUE;
                        if (gi_404 && Bid - gd_328 >= gd_172 / OneOverPoint) gi_396 = TRUE;
                     }
                     if (gi_428 < 1) {
                        gi_404 = FALSE;
                        gi_400 = FALSE;
                        gi_396 = TRUE;
                        gd_260 = AccountEquity();
                     }
                     if (gi_396) {
                        gd_320 = LastBuyPrice();
                        gd_328 = LastSellPrice();
                        if (gi_404) {
                           if (gi_232) {
                              fOrderCloseMarket(0, 1);
                              gd_416 = NormalizeDouble(gd_240 * l_ord_lots_136, gd_360);
                           } else gd_416 = fGetLots(OP_SELL);
                           if (gi_236) {
                              gi_392 = gi_428;
                              if (gd_416 > 0.0) {
                                 RefreshRates();
                                 gi_412 = OpenPendingOrder(1, gd_416, Bid, gd_352, Ask, 0, 0, gs_384 + "-" + gi_392, g_magic_248, 0, HotPink);
                                 if (gi_412 < 0) {
                                    Print("Error: ", GetLastError());
                                    return (0);
                                 }
                                 gd_328 = LastSellPrice();
                                 gi_396 = FALSE;
                                 gi_440 = TRUE;
                              }
                           }
                        } else {
                           if (gi_400) {
                              if (gi_232) {
                                 fOrderCloseMarket(1, 0);
                                 gd_416 = NormalizeDouble(gd_240 * l_ord_lots_128, gd_360);
                              } else gd_416 = fGetLots(OP_BUY);
                              if (gi_236) {
                                 gi_392 = gi_428;
                                 if (gd_416 > 0.0) {
                                    if (gi_412 < 0) {
                                       Print("Error: ", GetLastError());
                                       return (0);
                                    }
                                    gd_320 = LastBuyPrice();
                                    gi_396 = FALSE;
                                    gi_440 = TRUE;
                                 }
                              }
                           }
                        }
                     }
                     if (gi_396 && gi_428 < 1) {
                        l_iclose_144 = iClose(Symbol(), 0, 2);
                        l_iclose_152 = iClose(Symbol(), 0, 1);
                        g_bid_304 = Bid;
                        g_ask_312 = Ask;
                        if (!gi_404 && !gi_400) {
                           gi_392 = gi_428;
                           if (l_iclose_144 > l_iclose_152) {
                              gd_416 = fGetLots(OP_SELL);
                              if (gd_416 > 0.0) {
                                 gi_412 = OpenPendingOrder(1, gd_416, g_bid_304, gd_352, g_bid_304, 0, 0, gs_384 + "-" + gi_392, g_magic_248, 0, HotPink);
                                 if (gi_412 < 0) {
                                    Print(gd_416, "Error: ", GetLastError());
                                    return (0);
                                 }
                                 gd_320 = LastBuyPrice();
                                 gi_440 = TRUE;
                              }
                           } else {
                              gd_416 = fGetLots(OP_BUY);
                              if (gd_416 > 0.0) {
                                 if (gi_412 < 0) {
                                    Print(gd_416, "Error: ", GetLastError());
                                    return (0);
                                 }
                                 gd_328 = LastSellPrice();
                                 gi_440 = TRUE;
                              }
                           }
                        }
                        gi_396 = FALSE;
                     }
                     gi_428 = CountTrades();
                     g_price_296 = 0;
                     ld_160 = 0;
                     for (g_pos_424 = OrdersTotal() - 1; g_pos_424 >= 0; g_pos_424--) {
                        OrderSelect(g_pos_424, SELECT_BY_POS, MODE_TRADES);
                        if (OrderSymbol() != Symbol() || OrderMagicNumber() != g_magic_248) continue;
                        if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                           if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
                              g_price_296 += OrderOpenPrice() * OrderLots();
                              ld_160 += OrderLots();
                           }
                        }
                     }
                     if (gi_428 > 0) g_price_296 = NormalizeDouble(g_price_296 / ld_160, Digits);
                     if (gi_440) {
                        for (g_pos_424 = OrdersTotal() - 1; g_pos_424 >= 0; g_pos_424--) {
                           OrderSelect(g_pos_424, SELECT_BY_POS, MODE_TRADES);
                           if (OrderSymbol() != Symbol() || OrderMagicNumber() != g_magic_248) continue;
                           if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                              if (OrderType() == OP_BUY) {
                                 g_price_252 = g_price_296 + TakeProfit / OneOverPoint;
                                 gd_unused_268 = g_price_252;
                                 gd_432 = g_price_296 - Stoploss * Point;
                                 gi_380 = TRUE;
                              }
                           }
                           if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                              if (OrderType() == OP_SELL) {
                                 g_price_252 = g_price_296 - TakeProfit / OneOverPoint;
                                 gd_unused_276 = g_price_252;
                                 gd_432 = g_price_296 + Stoploss * Point;
                                 gi_380 = TRUE;
                              }
                           }
                        }
                     }
                     if (gi_440) {
                        if (gi_380 == TRUE) {
                           for (g_pos_424 = OrdersTotal() - 1; g_pos_424 >= 0; g_pos_424--) {
                              OrderSelect(g_pos_424, SELECT_BY_POS, MODE_TRADES);
                              if (OrderSymbol() != Symbol() || OrderMagicNumber() != g_magic_248) continue;
                              if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_248) {
                                 if (OrderStopLoss() > 0.0)
                                 {

                                       if(OrderModifyCheck(OrderTicket(),g_price_296,OrderStopLoss(),g_price_252)) 
                                       {
                                         OrderModify(OrderTicket(), g_price_296,0, g_price_252, 0, Yellow);
                                         OrderModify(OrderTicket(), g_price_296, OrderStopLoss(), g_price_252, 0, Yellow);
                                       }

                                 }
                                 else
                                 {
                                 if(OrderModifyCheck(OrderTicket(),g_price_296,OrderOpenPrice() + Stoploss / OneOverPoint,g_price_252)) 
                                 {
                                    if(CheckStopLoss_Takeprofit(OP_SELL,OrderOpenPrice() + Stoploss / OneOverPoint,g_price_252))
                                    if(CheckRange(OrderOpenPrice() + Stoploss / OneOverPoint,g_price_252))
                                    OrderModify(OrderTicket(), g_price_296, OrderOpenPrice() + Stoploss / OneOverPoint, g_price_252, 0, Yellow);

                  

Показано первые 50% кода (символов: 36661)

Как получить полную версию?

Введите ваш email и нажмите кнопку, чтобы перейти к оплате.