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

dema_macd_zones_amp_alerts_arrows_2.02.mq5

Похожие материалы по тегам

! macd+.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!macd_adx.mq4MQL4 / MetaTrader 4 · 1 общих теговxauusd_gold_perfect.mq4MQL4 / MetaTrader 4 · 1 общих теговtm sniper pro.pineTradingView · 1 общих теговsource code of grid with 100 pips stop loss.mq4MQL4 / MetaTrader 4 · 1 общих теговsniper pro.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор рассчитывает MACD на основе двойных экспоненциальных скользящих средних (DEMA). Основная линия формируется как разность DEMA с быстрым и медленным периодами, а сигнальная линия — это DEMA от основной линии с заданным сигналовым периодом. На основе соотношения MACD и сигнала, а также положения MACD относительно нуля, индикатор раскрашивает зоны на графике четырьмя способами.

На графике отрисовываются прямоугольные зоны с цветовой индикацией, привязанные к моментам смены состояния. При необходимости отображаются стрелки в точках переключения. Индикатор поддерживает работу на различных таймфреймах и может автоматически переключаться на нужный период.

Система уведомлений позволяет получать всплывающие сообщения, звуковые сигналы и email-оповещения при смене тренда MACD. Настраивается, будут ли уведомления срабатывать на текущем баре или на предыдущем.

Настройки программы

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм, на котором работает индикатор
FastEMA Период быстрой EMA — Период быстрой экспоненциальной скользящей средней для расчёта DEMA
SlowEMA Период медленной EMA — Период медленной экспоненциальной скользящей средней для расчёта DEMA
SignalEMA Период сигнальной EMA — Период сигнальной экспоненциальной скользящей средней для расчёта DEMA сигнальной линии
Price Тип цены — Тип цены, используемой для расчёта индикатора
UniqueID Уникальный идентификатор — Уникальный идентификатор для именования объектов на графике
ColorUp Цвет зоны Up — Цвет зоны при бычьем сигнале
ColorNeutralUp Цвет нейтральной зоны Up — Цвет нейтральной зоны при бычьем сигнале
ColorDown Цвет зоны Down — Цвет зоны при медвежьем сигнале
ColorNeutralDown Цвет нейтральной зоны Down — Цвет нейтральной зоны при медвежьем сигнале
Вариант отображения боксов (ShowBox) Вариант отображения боксов — Вариант отображения боксов на графике
MaxValue Максимальное значение — Максимальное значение для начальной настройки диапазона цен
Показать стрелки (Arr_On) Показать стрелки — Включает или отключает отображение стрелок на графике
Отступ стрелок (Arr_otstup) Отступ стрелок — Отступ стрелок от цены в пунктах
Размер стрелок (Arr_width) Размер стрелок — Размер стрелок на графике
Цвет стрелки Up (Arr_Up_col) Цвет стрелки Up — Цвет стрелки, указывающей направление вверх
Цвет стрелки Dn (Arr_Dn_col) Цвет стрелки Dn — Цвет стрелки, указывающей направление вниз
alertsOn Включить уведомления — Включает или отключает систему уведомлений
alertsOnCurrent Уведомления на текущем баре — Определяет, на каком баре срабатывают уведомления: на текущем или на предыдущем
alertsMessage Всплывающие сообщения — Включает всплывающие сообщения при смене тренда
alertsSound Звуковые уведомления — Включает звуковое уведомление при смене тренда
alertsEmail Email-уведомления — Включает отправку email-уведомлений при смене тренда
Dummy Служебный параметр — Служебный параметр для управления обновлением на текущем баре
Получить полный код

Поиск по коду файла

#property description "modif. by Mobidik"

#property indicator_chart_window
#property indicator_buffers 0
#property strict

enum MyEnum
 {
   v0, // стандартный
   v1, // по H/L 
   v2  // по H/L 1 бара
 };

extern string TimeFrame        = "current time frame";
extern int    FastEMA          = 12;
extern int    SlowEMA          = 26;
extern int    SignalEMA        =  9;
extern int    Price            = PRICE_CLOSE;
extern string UniqueID         = "MACD zones";
extern color  ColorUp          = C'165,245,216';
extern color  ColorNeutralUp   = C'249,227,225';
extern color  ColorDown        = C'249,200,225';
extern color  ColorNeutralDown = C'216,245,216';

extern MyEnum ShowBox          = 0;                     // Вариант отображения боксов
extern double MaxValue         = 200;                   // 

extern bool   Arr_On           = false;                 // Показать стрелки 
extern int    Arr_otstup       = 0;                     // Отступ стрелок 
extern int    Arr_width        = 2;                     // Размер стрелок
extern color  Arr_Up_col       = clrBlue;               // Цвет стрелки Up
extern color  Arr_Dn_col       = clrRed;                // Цвет стрелки Dn

extern bool   alertsOn         = false;
extern bool   alertsOnCurrent  = true;
extern bool   alertsMessage    = true;
extern bool   alertsSound      = false;
extern bool   alertsEmail      = false;
extern datetime Dummy          = 0;

double macd[];
double signal[];
double colors[];

int    timeFrame;
string indicatorFileName;
double PrH,PrL;

int init()
{
      // код доступен только после оплаты
   }

int deinit()
{
   string lookFor       = UniqueID+":";
   int    lookForLength = StringLen(lookFor);
   for (int i=ObjectsTotal()-1; i>=0; i--)
   {
      string objectName = ObjectName(i);
         if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
   }
   return(0);
}

int start()
{
      // код доступен только после оплаты
   }
   int i,counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = MathMin(Bars-counted_bars,Bars-1);

         datetime tDummy = Dummy;
         if (timeFrame!=Period()) 
         { 
            iCustom(NULL,timeFrame,indicatorFileName,"",FastEMA,SlowEMA,SignalEMA,Price,UniqueID,ColorUp,ColorNeutralUp,ColorDown,ColorNeutralDown,MaxValue,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,Time[0],0,0); 
            return(0); 
         }
         else if (Dummy<=Time[0]) tDummy = Time[0];
         static bool secondTime=false;
         if (secondTime)
         {
            int count=0;
            for (;limit<Bars; limit++) if (colors[limit]!=colors[limit+1]) { count++; if (count>1) break; }
         }
         else secondTime=true;

      for(i = limit; i>=0 ; i--)
      {
         double price = iMA(NULL,0,1,0,MODE_SMA,Price,i);
         if (i>Bars-2)
         {
            macd[i]   = 0;
            signal[i] = 0;
            continue;
         }

         macd[i]   = iDema(price,FastEMA,i,0)-iDema(price,SlowEMA,i,1);
         signal[i] = iDema(macd[i],SignalEMA,i,2);
         colors[i] = colors[i+1];

            if (macd[i]>signal[i] && macd[i]> 0) colors[i] =  1;
            if (macd[i]>signal[i] && macd[i]< 0) colors[i] =  2;
            if (macd[i]<signal[i] && macd[i]< 0) colors[i] = -1;
            if (macd[i]<signal[i] && macd[i]> 0) colors[i] = -2;

            int index;
            for (index=i; index<Bars; index++)
              if (colors[index]!=colors[index+1]) break;

            string name = UniqueID+":"+TimeToStr(Time[index+1]); 
            ObjectDelete(name); 
            ObjectDelete(UniqueID+":"+TimeToStr(Time[1]));

            if(ShowBox>0)
             {
               if(colors[i]!=colors[i+1])
                {
                  PrH = High[i];
                  PrL = Low[i];
                }else{
                 if(ShowBox<2)
                  {
                     if(PrH < High[i]) PrH = High[i];
                     if(PrL > Low[i])  PrL = Low[i];
                  }   
                }   
             }

            datetime lastTime = Time[i]; if (i==0) lastTime = tDummy;
            ObjectCreate(name,OBJ_RECTANGLE,0,Time[index+1],PrL,lastTime,PrH);
            ObjectSet(name,OBJPROP_BACK,true);
            ObjectSet(name,OBJPROP_SELECTABLE,false);
            int col = (int)colors[i];
            switch (col)
             {
               case -1 : ObjectSet(name,OBJPROP_COLOR,ColorDown);        break;
        

Показано первые 50% кода (символов: 6704)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
670,40₽ ≈ $8.19