← К каталогу
Исходный код · ID 3693

EA - Budak Ubat

ea - budak ubat v1.51_5341427908642636608.mq4

Похожие материалы по тегам

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

EA - Budak Ubat — это торговый советник для платформы MetaTrader 4, предназначенный для автоматической торговли на таймфрейме M5. Советник работает с несколькими валютными парами и поддерживает различные типы ордеров, включая рыночные и отложенные.

Советник реализует управление размером лота через настраиваемый множитель, а также включает механизм трейлинг-стопа и стоп-аут по уровню собственного капитала. Все ордера фильтруются по магическому числу и текущему символу.

Для генерации торговых сигналов используется индикатор RSI на периоде M15. Советник отслеживает количество открытых позиций и при необходимости открывает новые ордера с корректировкой размера лота. Встроена проверка истечения срока действия советника.

Параметры торговли, такие как начальный лот, тейк-профит и шаг добавления ордеров, настраиваются пользователем через входные параметры советника.

Настройки программы

НастройкаОписание
StartingLots Начальный лот — Начальный размер лота, используемый при открытии первой позиции.
TakeProfit Тейк-профит в пунктах — Расстояние в пунктах до уровня тейк-профита для фиксации прибыли по позиции.
Layer_Multiplier Множитель слоя лота — Множитель увеличения размера лота при нарастании количества открытых ордеров (от x1 до x2).
PipStep Шаг в пунктах — Шаг в пунктах, при достижении которого цена считается достаточной для открытия дополнительного ордера.
Identifier Идентификатор (точность лота) — Параметр, задающий количество знаков после запятой при отображении размера лота (значения от 1 до 4).
Получить полный код

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

#property description "                                           "
#property description "timeframe M5, pair EurUsd, GbpUsd, UsdJpy, EurJpy or or EurGbp recommended"
#property description "                                           "
#property description "Recommended using a cent account for 100 usd capital"
#property description "                                           "
#property description "Join our Telegram channel : t.me/EABudakUbat"
#property description "Facebook : "
#property description "+6282218855288 (Budak Ubat)"

string ea_times_up  = "9999.12.30"; //year.month.day ------> for set expired EA
string Password     = "*******";

string Default   = "Default set All Pair";
string Timeframe = "TimeFrame M5";
string created   = "";

enum M      
{   
  a, //x2
  b, //x1.9
  c, //x1.8
  d, //x1.7
  e, //x1.6
  f, //x1.5
  g, //x1.4
  h, //x1.3 
  i, //x1.2(Default)
  j, //x1.1 
  k  //x1
}; 
enum N
{
l, //1
m, //2
n, //3
o, //4
};

double Stoploss = 5000.0;           
double TrailStart = 100.0;
double TrailStop = 100.0;

extern double StartingLots = 0.01;          
extern double TakeProfit = 58.0;  
double Multiplier;
input M Layer_Multiplier = i;
extern double PipStep = 48.0;      
bool AutoCompound = False;
int MagicNumber = 12345;    
double slip = 30.0;           
int MaxTrades = 99999;                 
int identifier = 2;          
input N Identifier = l;

string MoneyManagement = "AutoLot";
bool AutoMoneyManagement = FALSE;
double PercentToRisk = 0.02;
double TahananModal = 10000.0;

bool UseEquityStop = FALSE;
double TotalEquityRisk = 20.0;
bool UseTrailingStop = FALSE;
bool UseTimeOut = FALSE;
double MaxTradeOpenHours = 48.0;

double PriceTarget, StartEquity, BuyTarget, SellTarget ;
double AveragePrice, SellLimit, BuyLimit ;
double LastBuyPrice, LastSellPrice, Spread;
bool flag;
extern string EAName = "[";
int timeprev = 0, expiration;
int NumOfTrades = 0;
double iLots;
int cnt = 0, total;
double Stopper = 0.0;
bool TradeNow = FALSE, LongTrade = FALSE, ShortTrade = FALSE;
int ticket;
bool NewOrdersPlaced = FALSE;
double AccountEquityHighAmt, PrevEquity;

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

int deinit() {
   return (0);
}

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

 string expire_date = ea_times_up; //<-- hard coded datetime
  datetime e_d = StrToTime(expire_date);
  if (CurTime() >= e_d)
{
Alert ("Trial EA Finished!!! Contact: ");
return(0);
}
string NEA = "EA - Budak Ubat v1.51"; 
if (NEA != WindowExpertName()) 
    {
      Comment(" \nEXPERT NAME WAS RENAMED/CHANGED! \nTRADE IS STOPED/NOT ALLOWED!");
      Print("Trade STOPED! RENAMED NAME EA, WITHOUT PERMIT! update your license to owner...");
      return (0);
   }

Info();

Info();
double Lots = MarketInfo(Symbol(),MODE_MINLOT);  
switch(Layer_Multiplier)
   {
   case a:
      Multiplier = 2;
      break;
   case b:
      Multiplier = 1.9;
      break;
   case c:
      Multiplier = 1.8;
      break;
   case d:
      Multiplier = 1.7;
      break;
   case e:
      Multiplier = 1.6;
      break;
   case f:
      Multiplier = 1.5;
      break;
   case g:
      Multiplier = 1.4;
      break;
   case h:
      Multiplier = 1.3;
      break;
   case i:
      Multiplier = 1.2;
      break;
   case j:
      Multiplier = 1.1;
      break;
   case k:
      Multiplier = 1;
      break;
      }

switch(identifier)
   {
   case l:
      identifier = 1;
      break;
   case m:
      identifier = 2;
      break;
   case n:
      identifier = 3;
      break;
   case o:
      identifier = 4;
      break; 
       }
 double Ld_40 = PercentToRisk / TahananModal;
 if (AutoCompound==true) StartingLots = NormalizeDouble(AccountBalance() * Ld_40 / MarketInfo(Symbol(), MODE_TICKVALUE), 2);

   double PrevCl;
   double CurrCl;
   if (UseTrailingStop) TrailingAlls(TrailStart, TrailStop, AveragePrice);
   if (UseTimeOut) {
      if (TimeCurrent() >= expiration) {
         CloseThisSymbolAll();
         Print("Closed All due to TimeOut");
      }
   }
   if (timeprev == Time[0]) return (0);
   timeprev = Time[0];
   double CurrentPairProfit = CalculateProfit();
   if (UseEquityStop) {
      if (CurrentPairProfit < 0.0 && MathAbs(CurrentPairProfit) > TotalEquityRisk / 100.0 * AccountEquityHigh()) {
         CloseThisSymbolAll();
         Print("Closed All due to Stop Out");
         NewOrdersPlaced = FALSE;
      }
   }
   total = CountTrades();
   if (total == 0) flag = FALSE;
   for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
         if (OrderType() == OP_BUY) {
            LongTrade = TRUE;
            ShortTrade = FALSE;
            break;
         }
      }
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
         if (OrderType() == OP_SELL) {
            LongTrade = FALSE;
            ShortTrade = TRUE;
            break;
         }
      }
   }
   if (total > 0 && total <= MaxTrades) {
      RefreshRates();
      LastBuyPrice = FindLastBuyPrice();
      LastSellPrice = FindLastSellPrice();
      if (LongTrade && LastBuyPrice - Ask >= PipStep * Point) TradeNow = TRUE;
      if (ShortTrade && Bid - LastSellPrice >= PipStep * Point) TradeNow = TRUE;
   }
   if (total < 1) {
      ShortTrade = FALSE;
      LongTrade = FALSE;
      TradeNow = TRUE;
      StartEquity = AccountEquity();
   }
   if (TradeNow) {
      LastBuyPrice = FindLastBuyPrice();
      LastSellPrice = FindLastSellPrice();
      if (ShortTrade) {
         NumOfTrades = total;
         iLots = NormalizeDouble(StartingLots * MathPow(Multiplier, NumOfTrades), identifier);
         RefreshRates();
         ticket = OpenPendingOrder(1, iLots, Bid, slip, Ask, 0, 0, EAName + "-" + NumOfTrades, MagicNumber, 0, HotPink);
         if (ticket < 0) {
            Print("Error: ", GetLastError());
            return (0);
         }
         LastSellPrice = FindLastSellPrice();
         TradeNow = FALSE;
         NewOrdersPlaced = TRUE;
      } else {
         if (LongTrade) {
            NumOfTrades = total;
            iLots = NormalizeDouble(StartingLots * MathPow(Multiplier, NumOfTrades), identifier);
            ticket = OpenPendingOrder(0, iLots, Ask, slip, Bid, 0, 0, EAName + "-" + NumOfTrades, MagicNumber, 0, Lime);
            if (ticket < 0) {
               Print("Error: ", GetLastError());
               return (0);
            }
            LastBuyPrice = FindLastBuyPrice();
            TradeNow = FALSE;
            NewOrdersPlaced = TRUE;
         }
      }
   }
   if (TradeNow && total < 1) {
      PrevCl = iClose(Symbol(), 0, 2);
      CurrCl = iClose(Symbol(), 0, 1);
      SellLimit = Bid;
      BuyLimit = Ask;
      if (!ShortTrade && !LongTrade) {
         NumOfTrades = total;
         iLots = NormalizeDouble(StartingLots * MathPow(Multiplier, NumOfTrades), identifier);
         if (PrevCl > CurrCl) {
            if (iRSI(NULL, PERIOD_M15, 5, PRICE_CLOSE, 1) > 56.0) { //больше  >
               ticket = OpenPendingOrder(1, iLots, SellLimit, slip, SellLimit, 0, 0, EAName + "-" + NumOfTrades, MagicNumber, 0, HotPink);
               if (ticket < 0) {
                  Print("Error: ", GetLastError());
                  return (0);
               }
               LastBuyPrice = FindLastBuyPrice();
               NewOrdersPlaced = TRUE;
            }
         } else {
            if (iRSI(NULL, PERIOD_M15, 5, PRICE_CLOSE, 1) < 36.0) { // меньше  <
               ticket = OpenPendingOrder(0, iLots, BuyLimit, slip, BuyLimit, 0, 0, EAName + "-" + NumOfTrades, MagicNumber, 0, Lime);
               if (ticket < 0) {
                  Print("Error: ", GetLastError());
                  return (0);
               }
               LastSellPrice = FindLastSellPrice();
               NewOrdersPlaced = TRUE;
            }
         }
         if (ticket > 0) expiration = TimeCurrent() + 60.0 * (60.0 * MaxTradeOpenHours);
         TradeNow = FALSE;
      }
   }
   total = CountTrades();
   AveragePrice = 0;
   double Count = 0;
   for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
         if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
            AveragePrice += OrderOpenPrice() * OrderLots();
            Count += OrderLots();
         }
      }
   }
   if (total > 0) AveragePrice = NormalizeDouble(AveragePrice / Count, Digits);
   if (NewOrdersPlaced) {
      for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
         if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
            if (OrderType() == OP_BUY) {
               PriceTarget = AveragePrice + TakeProfit * Point;
               BuyTarget = PriceTarget;
               Stopper = AveragePrice - Stoploss * Point;
               flag = TRUE;
            }
         }
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
            if (OrderType() == OP_SELL) {
               PriceTarget = AveragePr

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

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 379,80₽ ≈ $16.86