EA - Budak Ubat v1.51
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ea - budak ubat v1.51.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
EA - Budak Ubat v1.51 — торговый советник для платформы MetaTrader 4, работающий на таймфрейме M5. Советник использует усредняющую стратегию с наращиванием позиций при движении цены в выбранном направлении. Начальные условия входа определяются по сигналу индикатора RSI на младшем таймфрейме M15.
Советник поддерживает управление размером лота через множитель слоёв, автоматическую фиксацию прибыли и стоп-лосс. Имеются функции трейлинга, остановки по убытку на уровне эквити и автоматического закрытия по времени. Присутствует проверка имени советника и даты истечения срока работы.
Работа советника привязана к магическому номеру и торговому символу. При достижении максимального количества открытых сделок новые ордера не размещаются. Все позиции закрываются при достижении целевого уровня прибыли или стоп-лосса, а также при срабатывании защитных механизмов.
Настройки программы
| Настройка | Описание |
|---|---|
| StartingLots | Начальный лот — Начальный размер торгового лота при открытии первой позиции |
| TakeProfit | Тейк-профит — Уровень фиксации прибыли в пунктах от цены входа |
| Layer_Multiplier | Множитель слоя — Множитель, определяющий увеличение размера лота на каждом последующем уровне |
| PipStep | Шаг в пунктах — Минимальное расстояние в пунктах между ценой и последней позицией для открытия следующего ордера |
| Identifier | Идентификатор — Параметр нормализации для расчёта размера лота с заданным количеством знаков после запятой |
Поиск по коду файла
#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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.