clusterdeltaexpert_4.12_ibwmfi.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «clusterdeltaexpert_4.12_ibwmfi.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматической торговли на основе анализа объёмов и индикатора iBWMFI.
Основная логика работы реализована в обработчике OnTick и активируется при формировании нового бара. Советник анализирует соотношение объёмов свечей и сигналы индикатора iBWMFI для определения направления входа в позицию. При достижении определённых условий открываются ордера BUY или SELL с расчётом тейкпрофита на основе размера тела свечи.
Советник включает механизм безубыточного ордера, который срабатывает при достижении заданного количества открытых позиций и определённой цены. Также реализована система управления рисками — при превышении заданного процента убытка от баланса торговля автоматически останавливается.
Для расчёта объёмов используются два режима: стандартный и премиальный индикаторы ClusterDelta, а также возможность использования тикового объёма. Параметр Magic позволяет идентифицировать ордера, управляемые данным советником.
Настройки программы
| Настройка | Описание |
|---|---|
| CommonSettings | Общие настройки — Текстовый параметр для общих настроек советника |
| Lots | Размер лота — Размер лота для открытия позиции |
| Body | Тело свечи — Порог по абсолютному значению разницы между ценой закрытия и открытия предыдущей свечи для активации сигнала |
| VolumePercent | Процент объёма — Процентное превышение объёма текущей свечи над предыдущей для сигнала |
| MinVolume | Минимальный объём — Минимальный объём для признания сигнала валидным |
| TpShift | Сдвиг тейкпрофита — Сдвиг тейкпрофита в пунктах относительно цены входа |
| RiskPercent | Процент риска — Процент убытка от баланса, при превышении которого торговля останавливается |
| Distance | Расстояние — Базовое расстояние в пунктах от цены входа до тейкпрофита |
| DeltaDistance | Дельта-расстояние — Дополнительное расстояние в пунктах для корректировки уровней входа и тейкпрофита |
| AfterOrder | После ордера — Количество ордеров после которого применяется дельта-расстояние при проверке условий |
| OrderForBreakeven | Ордеров для безубытка — Количество ордеров на стороне, при достижении которого активируется безубыток |
| BreakEven | Безубыток — Количество пунктов для установки безубыточного уровня на ордерах |
| Magic | Магический номер — Магический номер для идентификации ордеров, управляемых советником |
| Setka | Сетка — Переключатель режима расчёта лота (0 — фиксированный, -1 — с шагом) |
| ClusterDeltaSettings | Настройки ClusterDelta — Текстовый параметр для настроек ClusterDelta |
| CD_Premium | Премиум объём — Переключатель между премиальным и стандартным индикаторами объёма ClusterDelta |
| Update_C_D_Standart_sec | Обновление стандартного объёма — Интервал обновления стандартного индикатора объёма в секундах |
| Instrument | Инструмент — Название торгового инструмента или AUTO для автоматического определения |
| MetaTrader_GMT | Часовой пояс — Часовой пояс MetaTrader или AUTO для автоматического определения |
| TikVolume | Тиковый объём — Переключатель использования тикового объёма вместо индикаторного |
| Days_in_History | Дни в истории — Количество дней истории для загрузки данных объёмов |
| Custom_Start_time | Начальное время — Начальная дата и время для отбора истории объёмов |
| Custom_End_time | Конечное время — Конечная дата и время для отбора истории объёмов |
Поиск по коду файла
#property version "4.12"
#property strict
input string CommonSettings="--- Общие настройки ---";
input double Lots=0.1;
input int Body=15;
input double VolumePercent=20.0;
input double MinVolume=700;
input int TpShift=490;
input double RiskPercent=0;
input int Distance=100;
input int DeltaDistance=190;
input int AfterOrder=5;
input int OrderForBreakeven=20;
input int BreakEven=10;
input int Magic=987;
input bool Setka=True;
input string ClusterDeltaSettings="--- Настройки ClusterDelta ---";
input bool CD_Premium=true;
input int Update_C_D_Standart_sec=12;
input string Help_Url="";
input string Instrument="AUTO";
input string MetaTrader_GMT="AUTO";
input bool TikVolume=false;
string Comment_History="--- Premium Settings";
input int Days_in_History=0;
input datetime Custom_Start_time=D'2017.01.01';
input datetime Custom_End_time=D'2017.01.01';
color Current_Volume=clrRed;
int Font_Size=8;
bool TradeOn=false;
bool sig=false;
double LotStepPercent=0;
int OnInit() {
// код доступен только после оплаты
}//+--------------------------- End OnInit ---------------------------------------+
void OnDeinit(const int reason) {
}//+--------------------------- End OnDeinit ---------------------------------------+
void OnTick() {
// код доступен только после оплаты
}
static datetime t0=0;
bool NewBar= t0!=Time[0] && t0!=0;
t0=Time[0];
if(NewBar) {
if (Setka) LotStepPercent=0;
else LotStepPercent=-1;
if(!TradeOn) {
for(int i=OrdersTotal()-1; i>=0; i--)
if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
bool Res=OrderClose(OrderTicket(),OrderLots(),
OrderType()==OP_BUY ? Bid : Ask,(int)MarketInfo(_Symbol,MODE_SPREAD));
return;
}
double Profit=0;
for(int i=0; i<OrdersTotal(); i++)
if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
Profit+=OrderProfit();
if(RiskPercent>0 && Profit<=-RiskPercent*AccountBalance()/100) {
TradeOn=false;
Alert("Торговля остановлена");
return;
}
static bool CheckBuy=false, CheckSell=false, CheckCloseBuy=false, CheckCloseSell=false;
static bool Check=false;
CheckBuy=CheckSell=false;
Check=true;
int Totals[2]={0};
double Aver[2]={0},Vol[2]={0};
for(int i=0; i<OrdersTotal(); i++)
if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==_Symbol && OrderMagicNumber()==Magic &&
OrderType()<=OP_SELL) {
Totals[OrderType()]++;
Vol[OrderType()]+=OrderLots();
Aver[OrderType()]+=OrderOpenPrice()*OrderLots();
}
Aver[OP_BUY]=Vol[OP_BUY]==0 ? 0 : Aver[OP_BUY]/Vol[OP_BUY];
Aver[OP_SELL]=Vol[OP_SELL]==0 ? 0 : Aver[OP_SELL]/Vol[OP_SELL];
if(OrderForBreakeven>0) {
if(Totals[OP_BUY]>=OrderForBreakeven && Bid>=Aver[OP_BUY]+BreakEven*_Point)
CheckCloseBuy=true;
if(Totals[OP_SELL]>=OrderForBreakeven && Ask<=Aver[OP_SELL]-BreakEven*_Point)
CheckCloseSell=true;
}
if(CheckCloseBuy)
CheckCloseBuy=!CloseAll(OP_BUY);
if(CheckCloseSell)
CheckCloseSell=!CloseAll(OP_SELL);
if(Check) {
if(MathAbs(Close[1]-Open[1])>Body*_Point) {
double Vol1,Vol2;
if(TikVolume) {
Vol1=(double)Volume[1];
Vol2=(double)Volume[2];
}
else {
if (CD_Premium)
{
Vol1=iCustom(_Symbol,PERIOD_CURRENT,"ClusterDelta_PremiumVolume_4.1.ex4",
Help_Url,Instrument,MetaTrader_GMT,Comment_History,Days_in_History,
Custom_Start_time,Custom_End_time,Current_Volume,Font_Size,0,1);
Vol2=iCustom(_Symbol,PERIOD_CURRENT,"ClusterDelta_PremiumVolume_4.1.ex4",
Help_Url,Instrument,MetaTrader_GMT,Comment_History,Days_in_History,
Custom_Start_time,Custom_End_time,Current_Volume,Font_Size,0,2);
}
else
{
Vol1=iCustom(_Symbol,PERIOD_CURRENT,"ClusterDelta_Volume_3.5.ex4","--- Futures Ticker or AUTO",Instrument,Update_C_D_Standart_sec,MetaTrader_GMT,0,1);
Vol2=iCustom(_Symbol,PERIOD_CURRENT,"ClusterDelta_Volume_3.5.ex4","--- Futures Ticker or AUTO",Instrument,Update_C_D_Standart_sec,MetaTrader_GMT,0,2);
}
}
if(Vol1>=MinVolume && (Vol2==0 || (Vol1-Vol2)/Vol2*100>VolumePercent))
{
sig=true;
}
Показано первые 50% кода (символов: 7123)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.