forex winner ea (full2019).mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «forex winner ea (full2019).mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник поддерживает защиту по эквити: при превышении допустимого процента убытка все позиции закрываются. Доступен таймаут сделок — ордера, открытые дольше указанного времени, принудительно закрываются. При превышении максимального количества одновременных сделок все позиции закрываются по текущей рыночной цене.
Настройки программы
| Настройка | Описание |
|---|---|
| StopLoss (Stoploss) | Стоп-лосс — Размер стоп-лосса в пунктах, устанавливаемый при модификации ордера после его открытия |
| TrailStart | Начало трейлинга — Уровень прибыли в пунктах, начиная с которого трейлинг-стоп начинает сдвигать стоп-лосс вверх |
| TrailStop | Шаг трейлинга — Расстояние в пунктах, на которое сдвигается стоп-лосс при активном трейлинге |
| Lot Multiplyer e.g 0.1, series: 0.16, 0.26, 0.43 ... (LotExponent) | Множитель лота — Коэффициент возведения в степень для увеличения размера лота при каждой новой сделке |
| DynamicPips | Динамические пипы — Включает автоматический пересчёт расстояния между ордерами на основе текущей волатильности |
| DefaultPips | Пипы по умолчанию — Базовое значение расстояния между ордерами в пунктах, используемое при динамическом режиме |
| _GLUBINA_ | Глубина расчёта — Текстовое описание параметра количества баров для расчёта волатильности |
| number of last bars for calculation of volatility (Glubina) | Глубина — Количество последних баров, используемых для определения диапазона цен при расчёте волатильности |
| DEL | Делитель — Делитель для расчёта расстояния между ордерами на основе диапазона цен за указанное количество баров |
| how much the price may differ if the DC prompts requotes (the last time a little change the price) (slip) | Слиппаж — Допустимое отклонение цены при исполнении рыночного или отложенного ордера |
| LOT SIZE (Lots) | Размер лота — Базовый размер лота для открытия новых сделок |
| EQUITY PER LOT (Equity_per_lot) | Эквити на лот — Значение эквити, используемое для расчёта размера лота на основе текущего баланса |
| how many decimal places in the lot count 0 - normal items (1) 1 - mini lots (0.1), 2 - micro (0.01) (lotdecimal) | Десятичные знаки лота — Количество знаков после запятой при округлении рассчитанного размера лота |
| Number of pips to close the trade (TakeProfit) | Тейк-профит — Количество пунктов для фиксации прибыли по позиции |
| Lower Boundry RSI (RsiMinimum) | Минимум RSI — Объявленный параметр нижней границы RSI (не используется в текущей логике советника) |
| Upper Boundry RSI (RsiMaximum) | Максимум RSI — Объявленный параметр верхней границы RSI (не используется в текущей логике советника) |
| magic number (Advisor uses this to distinguish trades) (MagicNumber) | Магический номер — Идентификатор ордеров советника для отделения своих позиций от чужих |
| PipStep | Шаг в пипах — Расстояние между ордерами в пунктах; рассчитывается автоматически при включённом динамическом режиме |
| the maximum number of simultaneously opened orders (MaxTrades) | Максимум сделок — Максимальное количество одновременно открытых позиций на одном символе |
| UseEquityStop | Стоп по эквити — Включает принудительное закрытие всех позиций при превышении допустимого убытка по эквити |
| TotalEquityRisk | Риск по эквити — Максимальный процент убытка от текущего эквити, при превышении которого закрываются все позиции |
| UseTrailingStop | Трейлинг-стоп — Включает автоматическое сдвигание стоп-лосса в прибыльную зону по мере роста позиции |
| use a timeout (to close the treade if they "hang" for too long) (UseTimeOut) | Таймаут сделок — Включает принудительное закрытие позиций, находящихся открытыми дольше заданного времени |
| timeout trade hours (how many hovering close the transaction) (MaxTradeOpenHours) | Максимальное время сделки — Максимальное время в часах, в течение которого позиция может оставаться открытой перед принудительным закрытием |
Поиск по коду файла
#property description"CONTRACT"// Only change Test Into "Change Text"
#property description"Email: s*****t*@forexwinnerea.com"// Only change Test Into "Change Text"
#property description"Skype: live:support_55314"// Only change Test Into "Change Text"
#property description"Mobile: +447452658001"// Only change Test Into "Change Text"
#property description"This copy will working only run on the following account REAL# 1002229"// Only change Test Into "Change Text"
#property description "forexearnbdico"
enum priod
{
priod1 =PERIOD_M1,//M1
priod2 = PERIOD_M5,//M5
priod3 =PERIOD_M15, // M15
priod4 =PERIOD_M30, // M30
priod5 =PERIOD_H1, // H1
priod6 =PERIOD_H4, //H4
priod7 =PERIOD_D1, //D1
priod8 =PERIOD_W1,//W1
priod9 =PERIOD_MN1//MN
};
priod period= priod5; //BUY TIME FRAME
extern int Stoploss = 500; // StopLoss
extern int TrailStart = 10;
extern int TrailStop = 10;
extern double LotExponent = 1.2651; // Lot Multiplyer e.g 0.1, series: 0.16, 0.26, 0.43 ...
extern bool DynamicPips = true;
extern int DefaultPips = 12;
extern string _GLUBINA_ = "GLUBINA = number of last bars to calculate volatility";
extern int Glubina = 24; // number of last bars for calculation of volatility
extern int DEL = 3;
extern int slip = 3; // how much the price may differ if the DC prompts requotes (the last time a little change the price)
extern double Lots = 0.01; // LOT SIZE
extern int Equity_per_lot = 10; // EQUITY PER LOT
extern int lotdecimal = 2; // how many decimal places in the lot count 0 - normal items (1) 1 - mini lots (0.1), 2 - micro (0.01)
extern double TakeProfit = 230.0; // Number of pips to close the trade
double Drop = 5000;
extern double RsiMinimum = 30.0; // Lower Boundry RSI
extern double RsiMaximum = 70.0; // Upper Boundry RSI
extern int MagicNumber = 1111111; // magic number (Advisor uses this to distinguish trades)
extern double PipStep=0;
bool komoles=0;
extern int MaxTrades = 17; // the maximum number of simultaneously opened orders
extern bool UseEquityStop = FALSE;
extern double TotalEquityRisk = 20.0;
extern bool UseTrailingStop = FALSE;
extern bool UseTimeOut = FALSE; // use a timeout (to close the treade if they "hang" for too long)
extern double MaxTradeOpenHours = 960.0; // timeout trade hours (how many hovering close the transaction)
datetime Date_Time=D'2034.07.19 08:24:00'; //I.E: D'YYYY.MM.DD HH:MM:SS'
double PriceTarget, StartEquity, BuyTarget, SellTarget;
double AveragePrice, SellLimit, BuyLimit;
double LastBuyPrice, LastSellPrice, Spread;
bool flag;
string EAName="Forex WINNER EA";
datetime timeprev = 0, expiration;
int NumOfTrades = 0;
double iLots,l,ordprof;
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()
{
// код доступен только после оплаты
}
/* if (AccountNumber() !=Account_Number)
{
ExpertRemove();
Alert("Your VPS/PC is not supported, Kindly update VPS!!!");
} */
if (TimeCurrent()>Date_Time )
{
ExpertRemove();
Alert("Your VPS Payment is due. Kindly pay your due VPS amount!!!");
}
l=MathFloor((AccountEquity()/Equity_per_lot/10000)/MarketInfo(Symbol(),24))*MarketInfo(Symbol(),24);
Lots=l;
if (Lots<MarketInfo(Symbol(),23)) Lots=MarketInfo(Symbol(),23);
if (Lots>MarketInfo(Symbol(),25)) Lots=MarketInfo(Symbol(),25);
if (DynamicPips) {
double hival=High[iHighest(NULL,period,MODE_HIGH,Glubina,1)]; // calculate highest and lowest price from last bar to 24 bars ago
double loval=Low[iLowest(NULL,period,MODE_LOW,Glubina,1)]; // chart used for symbol and time period
PipStep=NormalizeDouble((hival-loval)/DEL/Point,0); // calculate pips for spread between orders
if (PipStep<DefaultPips/DEL) PipStep = NormalizeDouble(DefaultPips/DEL,0);
if (PipStep>DefaultPips*DEL) PipStep = NormalizeDouble(DefaultPips*DEL,0); // if dynamic pips fail, assign pips extreme value
}// else PipStep = DefaultPips;
double PrevCl;
double CurrCl;
if (UseTrailingStop) TrailingAlls(TrailStart, TrailStop, AveragePrice);
if ((iCCI(NULL,15,55,0,0)>Drop && ShortTrade)||(iCCI(NULL,15,55,0,0)<(-Drop) && LongTrade)) {
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--) {
komoles=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(Lots * MathPow(LotExponent, NumOfTrades), lotdecimal);
if (iLots<MarketInfo(Symbol(),23)) iLots=MarketInfo(Symbol(),23);
if (iLots>MarketInfo(Symbol(),25)) iLots=MarketInfo(Symbol(),25);
RefreshRates();
ticket = OpenPendingOrder(1, iLots, Bid, slip, Ask, 0, 0, EAName + "-" + Symbol() +period+ "-" + NumOfTrades+ "-" + PipStep, MagicNumber, 0, HotPink);
if (ticket < 0) {
Print("Error: ", GetLastError());
return (0);
}
LastSellPrice = FindLastSellPrice();
TradeNow = FALSE;
NewOrdersPlaced = TRUE;
} else {
if (LongTrade) {
NumOfTrades = total;
iLots = NormalizeDouble(Lots * MathPow(LotExponent, NumOfTrades), lotdecimal);
if (iLots<MarketInfo(Symbol(),23)) iLots=MarketInfo(Symbol(),23);
if (iLots>MarketInfo(Symbol(),25)) iLots=MarketInfo(Symbol(),25);
ticket = OpenPendingOrder(0, iLots, Ask, slip, Bid, 0, 0, EAName + "-" + Symbol() + period + "-" +NumOfTrades + "-" +PipStep, MagicNumber, 0, Lime);
if (ticket < 0) {
Print("Error: ", GetLastError());
return (0);
}
LastBuyPrice = FindLastBuyPrice();
TradeNow = FALSE;
NewOrdersPlaced = TRUE;
}
}
}
if (TradeNow && total < 1) {
PrevCl = iClose(Symbol(), period, 2);
CurrCl = iClose(Symbol(), period, 1);
SellLimit = Bid;
BuyLimit = Ask;
if (!LongTrade) {
NumOfTrades = total;
iLots = NormalizeDouble(Lots * MathPow(LotExponent, NumOfTrades), lotdecimal);
if (iLots<MarketInfo(Symbol(),23)) iLots=MarketInfo(Symbol(),23);
if (iLots>MarketInfo(Symbol(),25)) iLots=MarketInfo(Symbol(),25);
if (!LongTrade) {
ticket = OpenPendingOrder(0, iLots, BuyLimit, slip, BuyLimit, 0, 0, EAName + "-" + Symbol() +period+ "-" +NumOfTrades, MagicNumber, 0, Lime);
if (ticket < 0) {
Print("Error: ", GetLastError());
return (0);
}
LastBuyPrice = FindLastBuyPrice();
NewOrdersPlaced = TRUE;
}
if (ticket > 0) expiration = datetime(TimeCurrent() + 60.0 * (60.0 * MaxTradeOpenHours));
TradeNow = FALSE;
}
}
total = CountTrades();
AveragePrice = 0;
double Count = 0;
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
komoles=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--) {
komoles=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 = AveragePrice - TakeProfit * Point;
SellTarget = PriceTarget;
Stopper = AveragePrice + Stoploss * Point;
flag = TRUE;
}
}
}
}
if (NewOrdersPlaced) {
if (flag == TRUE) {
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
komoles=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
komoles=OrderModify(OrderTicket(), NormalizeDouble(AveragePrice,Digits), NormalizeDouble(OrderStopLoss(),Digits), NormalizeDouble(PriceTarget,Digits), 0, Yellow);
NewOrdersPlaced = FALSE;
Показано первые 50% кода (символов: 15715)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.