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

Leader MACD

leadermacd.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 MACD — пользовательский индикатор для MetaTrader 5, реализующий модифицированную версию индикатора MACD с дополнительной «лидерной» линией. Индикатор рассчитывает разницу между быстрой и медленной экспоненциальными скользящими средними и дополняет её сглаженным компонентом, формируя четыре буфера отображения: MACD, Leader, Signal и OSMA (гистограмма).

Индикатор поддерживает работу на различных таймфреймах, включая интерполяцию данных старших таймфреймов на текущий график. Доступны два специальных режима работы — returnBars и CalculateValue — которые используются для корректного отрисовывания на мультитаймфреймных графиках.

В основе расчёта лежат экспоненциальные скользящие средние с настраиваемыми периодами, а также механизм сглаживания сигнальной линии. Линия Leader добавляет опережающий компонент к стандартному MACD, что позволяет анализировать ускорение изменения цены. Индикатор отображается в отдельном окне.

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

НастройкаОписание
TimeFrame Таймфрейм, на котором рассчитывается индикатор. Поддерживается выбор стандартных таймфреймов или специальные режимы returnBars и CalculateValue. По умолчанию: текущий таймфрейм.
FastEMA Период экспоненциальной скользящей средней быстрого уровня. Определяет чувствительность быстрой компоненты индикатора. По умолчанию: 12.
SlowEMA Период экспоненциальной скользящей средней медленного уровня. Определяет медленную компоненту индикатора. По умолчанию: 26.
SignalEMA Период экспоненциальной скользящей средней для сглаживания сигнальной линии. По умолчанию: 9.
Price Тип цены, используемой в расчётах индикатора. По умолчанию: PRICE_CLOSE (цена закрытия).
SignalOnLeader Определяет способ расчёта сигнальной линии. Если включено — сигнал рассчитывается на основе линии Leader, если отключено — на основе стандартной линии MACD. По умолчанию: отключено.
ShowMACD Отображает или скрывает линию MACD на графике. При отключении линия Leader принудительно включается. По умолчанию: включено.
ShowSignal Отображает или скрывает сигнальную линию и гистограмму OSMA. По умолчанию: включено.
Interpolate Включает или отключает интерполяцию значений индикатора при отображении на графике с таймфреймом, отличным от исходного. По умолчанию: включено.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1  DeepSkyBlue
#property indicator_color2  OrangeRed
#property indicator_color3  Goldenrod
#property indicator_color4  Gray
#property indicator_width1  2

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   SignalOnLeader = false;
extern bool   ShowMACD       = true;
extern bool   ShowSignal     = true;
extern bool   Interpolate    = true;

double macd[];
double leader[];
double signal[];
double osma[];

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

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

double tBuffer[][5];
#define iFastEma 0
#define iSlowEma 1
#define iFastEmx 2
#define iSlowEmx 3
#define iSmoothl 4

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

   if (calculateValue || timeFrame == Period())
   {
      if (ArrayRange(tBuffer,0) != Bars) ArrayResize(tBuffer,Bars);
      double alphaFast = 2.0 / (1.0+FastEMA);
      double alphaSlow = 2.0 / (1.0+SlowEMA);
      double alphaSign = 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);

         tBuffer[r][iFastEma] = iMA(NULL,0,FastEMA,0,MODE_EMA,Price,i);
         tBuffer[r][iSlowEma] = iMA(NULL,0,SlowEMA,0,MODE_EMA,Price,i);
         tBuffer[r][iFastEmx] = tBuffer[r-1][iFastEmx] + alphaFast*(price-tBuffer[r][iFastEma]-tBuffer[r-1][iFastEmx]);
         tBuffer[r][iSlowEmx] = tBuffer[r-1][iSlowEmx] + alphaSlow*(price-tBuffer[r][iSlowEma]-tBuffer[r-1][iSlowEmx]);

         leader[i] = tBuffer[r][iFastEma] + tBuffer[r][iFastEmx]   - tBuffer[r][iSlowEma] - tBuffer[r][iSlowEmx];
                     tBuffer[r][iSmoothl] = tBuffer[r-1][iSmoothl] + alphaSign*(leader[i] - tBuffer[r-1][iSmoothl]);

         macd[i] = tBuffer[r][iFastEma]-tBuffer[r][iSlowEma];
         if (ShowSignal)    

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

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

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

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

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

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

Стоимость полного кода
433,50₽ ≈ $5.30