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

Leader of the MACD

leader of the macd - mtf.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

«Leader of the MACD» — это пользовательский индикатор для MetaTrader 4, работающий в отдельном окне с семью буферами. Он строит гистограммы и линии на основе модифицированных расчётов MACD, используя экспоненциальные скользящие средние с настраиваемыми периодами быстрой, медленной и сигнальной EMA.

Индикатор поддерживает мультитаймфрейм (MTF) режим: через вызовы iCustom он запрашивает рассчитанные значения того же индикатора на другом таймфрейме и отображает их на текущем графике. При включённой интерполяции значения линейно заполняются между барами целевого таймфрейма для более плавной визуализации.

Цветовая индикация может основываться на направлении наклона MACD или на пересечении MACD со сигнальной линией, что выбирается параметром ColorOnSlope. Гистограммы отображают положительные и отрицательные значения лидерской линии отдельно.

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

НастройкаОписание
TimeFrame TimeFrame — Таймфрейм, на котором рассчитываются данные индикатора (например, M1, H1, D1 или current time frame).
FastEMA FastEMA — Период быстрой экспоненциальной скользящей средней, используемой в расчёте MACD.
SlowEMA SlowEMA — Период медленной экспоненциальной скользящей средней, используемой в расчёте MACD.
SignalEMA SignalEMA — Период сигнальной экспоненциальной скользящей средней, применяемой для сглаживания MACD.
Price Price — Тип цены, используемой при расчёте индикатора (например, PRICE_CLOSE).
ColorOnSlope ColorOnSlope — Если true, цвет определяется по направлению наклона MACD; если false — по пересечению MACD и сигнальной линии.
Interpolate Interpolate — Если true, значения интерполируются между барами целевого таймфрейма для сглаживания отображения на текущем графике.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 7
#property indicator_color1  C'216,234,243'
#property indicator_color2  MistyRose
#property indicator_color3  DarkGray
#property indicator_color4  DeepSkyBlue
#property indicator_color5  PaleVioletRed
#property indicator_color6  PaleVioletRed
#property indicator_color7  DarkGray
#property indicator_width1  2
#property indicator_width2  2
#property indicator_width4  2
#property indicator_width5  2
#property indicator_width6  2
#property indicator_style7  STYLE_DOT

extern string TimeFrame    = "current time frame";
extern int    FastEMA      = 12;
extern int    SlowEMA      = 26;
extern int    SignalEMA    =  9;
extern int    Price        = PRICE_CLOSE;
extern bool   ColorOnSlope = false;
extern bool   Interpolate  = true;

double macd[];
double macdda[];
double macddb[];
double leader[];
double leaderhu[];
double leaderhd[];
double signal[];

string indicatorFileName;
bool   calculateValue;
bool   returnBars;
int    timeFrame;

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

double work[][5];
#define _ema10 0
#define _ema11 1
#define _ema20 2
#define _ema21 3
#define _color 4

int start()
{
      // код доступен только после оплаты
   }
   int i,r,counted_bars=IndicatorCounted();
   if (counted_bars>0) counted_bars--;
            int limit=MathMin(Bars-counted_bars,Bars-1);
            if (returnBars) { leaderhu[0] = limit+1; return(0); }
            if (ArrayRange(work,0) != Bars) ArrayResize(work,Bars);

   if (calculateValue || timeFrame==Period())
   {
      if (work[Bars-limit-1][_color]==-1) CleanPoint(limit,macdda,macddb);
      double fastAlpha   = 2.0/(1.0+FastEMA);
      double slowAlpha   = 2.0/(1.0+SlowEMA);
      double signalAlpha = 2.0/(1.0+SignalEMA);

      for(i=limit, r=Bars-i-1; i>=0; i--,r++)
      {
         double price = iMA(NULL,0,1,0,MODE_SMA,Price,i);
            work[r][_color] = work[r-1][_color];
            work[r][_ema10] = work[r-1][_ema10]+fastAlpha*(price                -work[r-1][_ema10]);
            work[r][_ema11] = work[r-1][_ema11]+fastAlpha*(price-work[r][_ema10]-work[r-1][_ema11]);
            work[r][_ema20] = work[r-1][_ema20]+slowAlpha*(price                -work[r-1][_ema20]);
            work[r][_ema21] = work[r-1][_ema21]+slowAlpha*(price-work[r][_ema20]-work[r-1][_ema21]);
            macd[i]         = work[r][_ema10]-work[r][_ema20];
            leader[i]       = work[r][_ema11]-work[r][_ema21]+macd[i];
            signal[i]       = signal[i+1]+signalAlpha*(macd[i]-signal[i+1]);

            leaderhu[i] = EMPTY_VALUE;
            leaderhd[i] = EMPTY_VALUE;
            macdda[i]   = EMPTY_VALUE;
            macddb[i]   = EMPTY_VALUE;
               if (leader[i] > 0) leaderhu[i] = leader[i];
               if (leader[i] < 0) leaderhd[i] = leader[i];
               if (ColorOnSlope)
               {
                  if (macd[i]>macd[i+1]) work[r][_color] =  1;
                  if (macd[i]<macd[i+1]) work[r][_color] = -1;
               }
               else
               {
                  if (macd[i]>signal[i]) work[r][_color] =  1;
                  if (macd[i]<signal[i]) work[r][_color] = -1;
               }
               if (work[r][_color]==-1) PlotPoint(i,macdda,macddb,macd);
      }
      return(0);
   }

   limit = MathMax(limit,MathMin(Bars,iCusto

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

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

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

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

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

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

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