fx pro expert v3
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «fx pro expert v3.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
fx pro expert v3 — торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник автоматизирует управление торговыми позициями, включая открытие, закрытие и корректировку ордеров на текущем инструменте.
В основе работы лежит система управления размером лота с несколькими режимами расчёта, включая экспоненциальное увеличение. Советник размещает отложенные ордера при достижении заданного ценового шага PipStep и способен усреднять цену открытия позиций.
Продукт включает средства защиты капитала: стоп по эквити, трейлинг-стоп и таймаут открытых сделок. Также поддерживается принудительное закрытие всех позиций на символе при определённых условиях.
Настройки программы
| Настройка | Описание |
|---|---|
| MMType | Метод расчёта размера лота: 0 — фиксированный, 1 — экспоненциальное увеличение, 2 — корректировка по результатам закрытых позиций. |
| UseClose | Переключатель режима закрытия позиций с корректировкой размера лота. |
| UseAdd | Переключатель режима добавления позиций с увеличением размера лота. |
| LotExponent | Коэффициент для экспоненциального расчёта размера лота при добавлении позиций. |
| slip | Допустимое проскальзывание цены в пунктах при размещении торговых ордеров. |
| Lots | Начальный (базовый) размер лота для торговых операций. |
| LotsDigits | Количество знаков после запятой для округления размера лота (2 — 0.01, 1 — 0.1, 0 — 1.0). |
| TakeProfit | Расстояние до тейк-профита в пунктах от средней цены открытия позиции. |
| PipStep | Ценовой шаг в пунктах, при достижении которого открываются дополнительные позиции. |
| MaxTrades | Максимальное количество одновременно открытых позиций на символе. |
| UseEquityStop | Включает автоматическое закрытие всех позиций при превышении допустимого риска эквити. |
| TotalEquityRisk | Процент эквити, при превышении которого убытком срабатывает принудительное закрытие всех позиций. |
| UseTrailingStop | Включает трейлинг-стоп для защиты прибыли по открытым позициям. |
| UseTimeOut | Включает автоматическое закрытие всех позиций на символе по истечении заданного времени. |
| MaxTradeOpenHours | Максимальное время удержания открытых позиций в часах, после истечения которого все позиции закрываются. |
Поиск по коду файла
extern int MMType=1; /// LotExponent
extern bool UseClose=false; /// PipStep = false
extern bool UseAdd=true; /// LotExponent MMType = true
extern double LotExponent=1.777; /// 0.1, 0.16, 0.26, 0.43
extern double slip=3;
extern double Lots=0.1; /// 0.01 0.1 0.16
extern double LotsDigits=2; /// 2 - 0.01, 1 - 0.1, 0 - 1.0
extern double TakeProfit=10;
double Stoploss=0.0;
double TrailStart=0;
double TrailStop=0;
extern double PipStep=7;
extern int MaxTrades=2;
extern bool UseEquityStop=false;
extern double TotalEquityRisk=0.10;
extern bool UseTrailingStop=false;
extern bool UseTimeOut=false;
extern double MaxTradeOpenHours=0;
int MagicNumber=12324;
double PriceTarget, StartEquity, BuyTarget, SellTarget;
int sav;
double AveragePrice, SellLimit, BuyLimit;
double LastBuyPrice, LastSellPrice, ClosePrice, Spread;
int flag;
string EAName="fx pro expert v3";
int vee;
datetime timeprev=0, expiration;
int NumOfTrades=0;
int wbf;
double iLots;
int cnt=0, total;
double Stopper=0;
bool TradeNow=true, LongTrade=true, ShortTrade=true;
int ticket;
bool NewOrdersPlaced=true;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
double ND(double v){return(NormalizeDouble(v,Digits));}
int fOrderCloseMarket(bool aCloseBuy=true,bool aCloseSell=true)
{
int tErr=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY && aCloseBuy)
{
RefreshRates();
if(!IsTradeContextBusy())
{
if(!OrderClose(OrderTicket(),OrderLots(),ND(Bid),5,CLR_NONE))
{
Print("Error close BUY "+OrderTicket());//+" "+fMyErDesc(GetLastError()));
tErr=-1;
}
}
else
{
static int lt1=0;
if(lt1!=iTime(NULL,0,0))
{
lt1=iTime(NULL,0,0);
Print("Need close BUY "+OrderTicket()+". Trade Context Busy");
}
return(-2);
}
}
if(OrderType()==OP_SELL && aCloseSell)
{
RefreshRates();
if(!IsTradeContextBusy())
{
if(!OrderClose(OrderTicket(),OrderLots(),ND(Ask),5,CLR_NONE))
{
Print("Error close SELL "+OrderTicket());//+" "+fMyErDesc(GetLastError()));
tErr=-1;
}
}
else
{
static int lt2=0;
if(lt2!=iTime(NULL,0,0))
{
lt2=iTime(NULL,0,0);
Print("Need close SELL "+OrderTicket()+". Trade Context Busy");
}
return(-2);
}
}
}
}
}
return(tErr);
}
double fGetLots(int aTradeType)
{
double tLots;
switch(MMType)
{
case 0:
tLots=Lots;
break;
case 1:
tLots=NormalizeDouble(Lots*MathPow(LotExponent,NumOfTrades),LotsDigits);
break;
case 2:
int LastClosedTime=0;
tLots=Lots;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
if(LastClosedTime<OrderCloseTime())
{
LastClosedTime=OrderCloseTime();
if(OrderProfit()<0)
{
tLots=NormalizeDouble(OrderLots()*LotExponent,LotsDigits);
}
else
{
tLots=Lots;
}
}
}
}
else
{
return(-3);
}
}
break;
}
if(AccountFreeMarginCheck(Symbol(),aTradeType,tLots)<=0)
{
return(-1);
}
if(GetLastError()==134)
{
return(-2);
}
return(tLots);
}
int CountTrades()
{
int count=0;
int trade;
for(trade=OrdersTotal()-1;trade>=0;trade--)
{
Показано первые 50% кода (символов: 13064)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.