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

Dynamic zone ab RSI of MACD

dynamic zone ab rsi of macd.mq5

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

xauusd_gold_perfect.mq4MQL4 / MetaTrader 4 · 2 общих теговtm sniper pro.pineTradingView · 2 общих теговsniper pro.mq5MQL5 / MetaTrader 5 · 2 общих теговpro +.pineTradingView · 2 общих теговofada_gold_trader_v230.mq5MQL5 / MetaTrader 5 · 2 общих теговmulti strategy algo combined by enigma mode.pineTradingView · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный продукт представляет собой пользовательский индикатор для MetaTrader 4, который отображает в отдельном окне несколько графических буферов: линию RSI, рассчитанную на основе значений MACD, а также динамические верхнюю и нижнюю зоны и среднюю линию. Индикатор использует стандартные средства платформы для расчёта MACD и сглаживания по методу Вилдса, формируя аналитические уровни на основе диапазона значений за заданный период наблюдения.

Продукт поддерживает работу на различных таймфреймах, включая возможность пересчёта данных с более высоких таймфреймов с интерполяцией промежуточных баров. Два специальных режима активируются через параметр TimeFrame: возврат количества баров и передача расчёта RSI внешнему вызову, что обеспечивает корректную работу при мультитаймфреймовом анализе.

Средняя линия индикатора может ограничиваться пользователем заданными верхним и нижним пороговыми уровнями, при достижении которых она фиксируется на граничных значениях. Все расчёты выполняются на каждом тике в рамках обработчика start(), что обеспечивает актуальность отображаемых данных.

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм, на котором выполняется расчёт индикатора; поддерживает специальные значения для внутреннего переключения режимов
MacdFastPeriod Быстрый период MACD — Быстрый период для расчёта MACD
MacdSlowPeriod Медленный период MACD — Медленный период для расчёта MACD
MacdPrice Цена MACD — Тип цены, используемой для расчёта MACD (например, PRICE_CLOSE)
RsiPeriod Период RSI — Период сглаживания для расчёта RSI на основе дельт MACD
LookBack Период наблюдения — Количество баров, используемых для определения диапазона значений при построении динамических зон
Percent Процент диапазона — Процент диапазона, определяющий ширину динамических зон относительно размаха значений за период наблюдения
OBLevel Верхний уровень OB — Верхний пороговый уровень, при превышении которого средняя линия фиксируется на значении 100
OSLevel Нижний уровень OS — Нижний пороговый уровень, при достижении которого средняя линия фиксируется на значении 0
Interpolate Интерполяция — Включает или отключает интерполяцию значений при пересчёте с более высоких таймфреймов
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1  DeepSkyBlue
#property indicator_color2  LimeGreen
#property indicator_color3  DimGray
#property indicator_color4  Red
#property indicator_style3  STYLE_DOT
#property indicator_width1  2
#property indicator_minimum   0
#property indicator_maximum 100

extern string TimeFrame      = "current time frame";
extern int    MacdFastPeriod =  12;
extern int    MacdSlowPeriod =  26;
extern int    MacdPrice      =  PRICE_CLOSE;
extern int    RsiPeriod      =  14;
extern int    LookBack       =  60;
extern double Percent        =  95; 
extern double OBLevel        =  90;
extern double OSLevel        =  10;
extern bool   Interpolate    = true;

double Rsi[];
double upBuffer[];
double miBuffer[];
double dnBuffer[];
double macd[];

int    timeFrame;
string IndicatorFileName;
bool   CalculatingRsi;
bool   ReturningBars;

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

int deinit()
{
   return(0);
}

int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
   int i,limit;

   if(counted_bars < 0)   return(-1);
   if(counted_bars > 0)   counted_bars--;
           limit = MathMin(Bars-counted_bars,Bars-1);
           if (ReturningBars)  { Rsi[0] = limit+1; return(0); }

   if (CalculatingRsi || timeFrame==Period())
   {  
      for(i=limit; i>=0; i--)
      {
         macd[i]  = iMACD(NULL,0,MacdFastPeriod,MacdSlowPeriod,1,MacdPrice,MODE_MAIN,i);
         double macdU = 0;
         double macdD = 0;
            if (macd[i]>macd[i+1]) macdU = macd[i]-macd[i+1];
            if (macd[i]<macd[i+1]) macdD = macd[i+1]-macd[i];

         double up = Wilders(macdU,0,RsiPeriod,i);
         double dn = Wilders(macdD,2,RsiPeriod,i);
            if ((up+dn)!=0) 
                  Rsi[i] = 100.0*up/(dn+up);
            else  Rsi[i] =  50.0;             

         double max = Rsi[ArrayMaximum(Rsi,LookBack,i)];
         double min = Rsi[ArrayMinimum(Rsi,LookBack,i)];
         double rng = (max-min)*Percent/100.0;
            upBuffer[i] = min+rng;
            dnBuffer[i] = max-rng;

         miBuffer[i] = (max+min)/2.0;
            if (Rsi[i]>OBLevel) miBuffer[i] = 100;
            if (Rsi[i]<OSLevel) miBuffer[i] =   0;
      }

      return(0);
   }

   limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,IndicatorFileName,"returnBars",0,0)*timeFrame/Period()));
   for(i=limit; i>=0; i--)
   {
      int y = iBarShift(NULL,timeFrame,Time[i]);
     

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

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

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

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

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

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

Стоимость полного кода
476,20₽ ≈ $5.82