← К каталогу
Исходный код · ID 2404

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 и перейдите к оплате.

Стоимость полного кода
712,30₽ ≈ $8.71