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

Dynamic zone ab RSI of MACD

dynamic_zone_ab_rsi_of_macd_nmc.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 и отображающий динамические зоны в отдельном окне. Использует сглаживание Уилдерса для построения RSI от изменений главной линии MACD, а затем определяет верхнюю, среднюю и нижнюю границы зоны на основе заданного периода отката и процентного уровня. Поддерживает работу на разных таймфреймах с интерполяцией значений между барами.

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

НастройкаОписание
TimeFrame Таймфрейм — Задаёт таймфрейм для расчёта индикатора; может быть указан текстовым именем или числом, а также специальными значениями для внутренних режимов расчёта.
MacdFastPeriod Период быстрой MACD — Период быстрой экспоненциальной скользящей средней, используемой в расчёте MACD.
MacdSlowPeriod Период медленной MACD — Период медленной экспоненциальной скользящей средней, используемой в расчёте MACD.
MacdPrice Цена MACD — Тип цены, используемый для расчёта линии MACD.
RsiPeriod Период RSI — Период сглаживания, применяемый при расчёте RSI на основе значений MACD.
LookBack Период отката — Количество баров назад, используемое для определения диапазона значений при построении динамических зон.
Percent Процент диапазона — Процент от диапазона значений за период отката, определяющий ширину динамических зон.
OBLevel Уровень перекупленности — Пороговое значение RSI, выше которого индикатор считает зону перекупленности и отображает соответствующую маркировку.
OSLevel Уровень перепроданности — Пороговое значение RSI, ниже которого индикатор считает зону перепроданности и отображает соответствующую маркировку.
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]);
         R

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

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

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

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

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

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

Стоимость полного кода
477,10₽ ≈ $5.83