ilan dynamic new.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ilan dynamic new.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматического управления торговыми позициями на валютном рынке.
Советник поддерживает работу в двух направлениях — покупку и продажу — и позволяет ограничивать количество одновременно открытых позиций для каждого направления. Встроена система управления размером лотов с возможностью их увеличения при открытии последующих позиций в рамках одной серии.
Для фильтрации входов в позиции используется индикатор RSI с настраиваемыми верхней и нижней границами. Советник предоставляет несколько средств защиты: трейлинг-стоп, стоп по эквити и таймаут для зависших ордеров. Также реализована возможность ограничения торговли по заданному временному диапазону и на определённом таймфрейме.
Настройки программы
| Настройка | Описание |
|---|---|
| TradeMode (TradeMode) | TradeMode — Режим работы советника (торговля лонг, шорт или оба направления) |
| Close and Stop (close_all_and_stop) | close_all_and_stop — Логический переключатель для немедленного закрытия всех ордеров и остановки советника |
| cmt (cmt) | cmt — Имя советника, отображаемое в комментарии к ордерам |
| Magic (MagicNumber) | MagicNumber — Волшебное число для идентификации ордеров, открытых данным советником |
| Trade Time (work_time) | work_time — Торговый временной диапазон, в пределах которого разрешено открытие позиций |
| LotExponent (LotExponent) | LotExponent — Степень, на которую возводится множитель при увеличении лота для каждого следующего колена серии |
| DefaultPips (DefaultPips) | DefaultPips — Шаг между выставлением новых колен при выключенном динамическом расчёте |
| DinamicPips (DynamicPips) | DynamicPips — Переключатель динамического расчёта шага на основе ценового диапазона |
| Glubina | Glubina — Количество баров, используемых для расчёта ценового диапазона |
| DEL | DEL — Делитель, используемый при расчёте шага между коленами серии позиций |
| Lot (Lots) | Lots — Начальный лот для открытия первой позиции |
| TakeProfit (TakeProfit) | TakeProfit — Уровень прибыли в пунктах для закрытия сделки |
| StopLoss Maximum (Stoploss) | Stoploss — Максимальный стоп-лосс от точки безубытства |
| Open NewBar Use (NewBarUse) | NewBarUse — Переключатель открытия сделок только на открытии нового бара |
| Equity Stop Use (UseEquityStop) | UseEquityStop — Переключатель стопа по эквити |
| Total Equity Risk (TotalEquityRisk) | TotalEquityRisk — Процент эквити, при превышении убытка которого срабатывает стоп по эквити |
| Trailing Use (UseTrailingStop) | UseTrailingStop — Переключатель трейлинг-стопа |
| Trailing Start (TrailStart) | TrailStart — Уровень прибыли в пунктах, при достижении которого включается трейлинг-стоп |
| Trailing Stop (TrailStop) | TrailStop — Отступ трейлинг-стопа в пунктах от текущей цены |
| Timeout order use (UseTimeOut) | UseTimeOut — Переключатель таймаута для закрытия зависших ордеров |
| Max Trade Open Hours (MaxTradeOpenHours) | MaxTradeOpenHours — Максимальное время нахождения сделки в открытом состоянии в часах до принудительного закрытия |
| TF (tf) | tf — Рабочий временной период для анализа ценовых данных |
| RSI Signal Use (UseSignals) | UseSignals — Переключатель использования сигналов RSI для фильтрации входов |
| RSI TF (rsi_tf) | rsi_tf — Таймфрейм для расчёта индикатора RSI |
| RSI Period (rsi_period) | rsi_period — Период расчёта индикатора RSI |
| RSI Minimum (RsiMinimum) | RsiMinimum — Нижняя граница RSI для допустимых сигналов на покупку |
| RSI Maximum (RsiMaximum) | RsiMaximum — Верхняя граница RSI для допустимых сигналов на продажу |
| Max Trades (MaxTrades) | MaxTrades — Максимальное количество одновременно открытых ордеров в каждом направлении |
Поиск по коду файла
#property version "2.00"
#property strict
#include <sovetnikovNET\Orders.mqh>
#include <sovetnikovNET\Time.mqh>
input ENUM_TRADEMODE TradeMode=TRADEMODE_ALL; //TradeMode
B close_all_and_stop=false; //Close and Stop
S cmt="Ilan New";//cmt
input int MagicNumber=2019; //Magic
S work_time="00:00-24:00"; //Trade Time
D LotExponent=1.56;//LotExponent
I DefaultPips=12;//DefaultPips
B DynamicPips=true; //DinamicPips
I Glubina=24;
I DEL=3;
D Lots=0.01; //Lot
D TakeProfit=10.0; //TakeProfit
D Stoploss=0.0; //StopLoss Maximum
B NewBarUse=true; //Open NewBar Use
B UseEquityStop=false; //Equity Stop Use
D TotalEquityRisk=20.0; //Total Equity Risk
B UseTrailingStop=true; //Trailing Use
D TrailStart=10.0; //Trailing Start
D TrailStop=10.0; //Trailing Stop
B UseTimeOut=false; //Timeout order use
I MaxTradeOpenHours=48; //Max Trade Open Hours
TF tf=PERIOD_M15; //TF
B UseSignals=true; //RSI Signal Use
TF rsi_tf=PERIOD_M15; //RSI TF
I rsi_period=14; //RSI Period
D RsiMinimum=0.0; //RSI Minimum
D RsiMaximum= 100.0; //RSI Maximum
I MaxTrades=10; //Max Trades
datetime tm_bar=0;
double AccountEquityHighAmt=0,PrevEquity=0;
double last_avg=0;
class CMyOrders: public COrders
{
public:
};
class CMain: public CMainDefault
{
protected:
CMyOrders m_main;
CNewBar m_bar;
CDraw m_draw;
CTime m_time;
public:
virtual int OnInit()
{
// код доступен только после оплаты
}
virtual void OnDeinit(const int reason)
{
m_main.OnDeinit();
m_draw.OnDeinit();
HideTestIndicators(false);
}
virtual void OnTick()
{
// код доступен только после оплаты
}
if(!m_main.IsWork())
return; //торговля не разрешена
m_main.OnTick();
if(close_all_and_stop)
{
if(m_main.m_all>0)
m_main.OrderCloseAll(ALL);
return;
}
double dPipStep=0;
double _Ask=m_main._Ask;
double _Bid=m_main._Bid;
if(DynamicPips)
{
double hival=iHigh(_Symbol,tf,iHighest(_Symbol,tf,MODE_HIGH,Glubina,1)); // calculate highest and lowest price from last bar to 24 bars ago
double loval=iLow(_Symbol,tf,iLowest(_Symbol,tf,MODE_LOW,Glubina,1)); // chart used for symbol and m_time period
dPipStep=NormalizeDouble((hival-loval)/DEL/m_main.p,1); // calculate pips for spread between orders
if(dPipStep<DefaultPips)
dPipStep=NormalizeDouble(DefaultPips,1);
}
else
{
dPipStep=DefaultPips;
}
if(UseEquityStop && TotalEquityRisk>0)
{
double CurrentPairProfit=m_main.getProfit(ALL);
if(CurrentPairProfit<0.0 && MathAbs(CurrentPairProfit)>TotalEquityRisk/100.0*AccountEquityHigh())
{
Print("Closed All due to StopOut Total Equity Risk");
m_main.OrderCloseAll(ALL);
return;
}
}
if(UseTimeOut && MaxTradeOpenHours>0)
{
for(int i=::OrdersTotal()-1; i>=0; i--)
{
if(!::OrderSelect(i,SELECT_BY_POS))
continue;
if(::OrderMagicNumber()==MagicNumber && ::OrderSymbol()==_Symbol)
{
if((int)((TimeCurrent()-::OrderOpenTime())/3600)>=MaxTradeOpenHours)
{
m_main.OrderClose(::OrderTicket());
}
}
}
}
if(m_main.m_all==0)
last_avg=0;
int direct=0;
ulong t=0;
double avg=0;
if(UseTrailingStop && TrailStop>0)
{
if(m_main.orders[OP_BUY]>0)
{
m_main.SetAll_AverageTrailing(OP_BUY,TakeProfit,TrailStart,TrailStop,0,true);
}
if(m_main.orders[OP_SELL]>0)
{
m_main.SetAll_AverageTrailing(OP_SELL,TakeProfit,TrailStart,TrailStop,0,true);
}
}//tral
bool bNew=(tm_bar!=iTime(_Symbol,tf,0) && tm_bar!=0);
if(tm_bar==0)
tm_bar=iTime(_Symbol,tf,0);
double drsi=iRSI(_Symbol,rsi_tf,rsi_period,PRICE_CLOSE,0);
bool bLong=((drsi<=RsiMaximum && UseSignals) || !UseSignals);
Показано первые 50% кода (символов: 5944)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.