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

Dynamic zone RSI of MACD

dynamic zone 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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Dynamic zone RSI of MACD — пользовательский индикатор для MetaTrader 4, отображаемый в отдельном окне. Он рассчитывает RSI по значениям MACD и строит четыре буферные линии: основную линию RSI of MACD и дополнительные динамические границы. Индикатор поддерживает работу на текущем или заданном таймфрейме, а также режимы вспомогательного расчёта и возврата количества баров для использования из других индикаторов через iCustom.

Входные параметры позволяют задать таймфрейм, периоды быстрой и медленной EMA для MACD, цену расчёта MACD, период RSI, отображение средней линии, глубину анализа, стартовые вероятности покупки и продажи, уровни перекупленности и переподкупленности, а также интерполяцию значений на младших таймфреймах. Расчёт опирается на встроенный индикатор iMACD и внешнюю библиотеку dynamicZone.dll, предоставляющую функции dzBuy и dzSell.

Индикатор не содержит торговых операций и не даёт гарантий прибыли; его назначение — визуализация аналитической кривой и динамических зон на графике.

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм для расчёта индикатора; значение "current time frame" означает текущий таймфрейм, также поддерживаются специальные режимы.
MacdFastPeriod Период быстрой EMA MACD — Период быстрой скользящей средней для расчёта MACD.
MacdSlowPeriod Период медленной EMA MACD — Период медленной скользящей средней для расчёта MACD.
MacdPrice Цена MACD — Цена, по которой рассчитывается MACD.
RsiPeriod Период RSI — Период расчёта RSI по значениям MACD.
DzShowZeroLine Показывать среднюю линию — Включает или отключает отображение средней линии динамической зоны.
DzLookBackBars Глубина анализа баров — Количество баров, учитываемых при расчёте динамических зон.
DzStartBuyProbability Вероятность покупки — Стартовая вероятность для построения зоны покупки; при значении больше нуля соответствующая линия рассчитывается.
DzStartSellProbability Вероятность продажи — Стартовая вероятность для построения зоны продажи; при значении больше нуля соответствующая линия рассчитывается.
OBLevel Уровень перекупленности — Уровень перекупленности, выше которого средняя линия принимает максимальное значение.
OSLevel Уровень переподкупленности — Уровень переподкупленности, ниже которого средняя линия принимает минимальное значение.
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

#import "dynamicZone.dll"
   double dzBuy(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i );
   double dzSell(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i );
#import

extern string TimeFrame              = "current time frame";
extern int    MacdFastPeriod         =  12;
extern int    MacdSlowPeriod         =  26;
extern int    MacdPrice              =  PRICE_CLOSE;
extern int    RsiPeriod              =  14;
extern bool   DzShowZeroLine         = true;
extern int    DzLookBackBars         = 60;
extern double DzStartBuyProbability  = 0.10;
extern double DzStartSellProbability = 0.10;
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;             

         if (DzStartBuyProbability  > 0) dnBuffer[i] = dzBuy (Rsi, DzStartBuyProbability,  DzLookBackBars, Bars, i);
         if (DzStartSellProbability > 0) upBuffer[i] = dzSell(Rsi, DzStartSellProbability, DzLookBackBars, Bars, i);
         if (DzShowZeroLine)
         {
            miBuffer[i] = dzSell(Rsi,0.5,DzLookBackBars,Bars,i);
               if (Rsi[i]>OBLevel) miBuffer[i] = 100;
               if (Rsi[i]<OSLevel) miBuffer[i] =   0;
         }               
      }

      return(0);
   }

   limit = MathMax(limit,MathMin(Bars

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

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

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

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

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

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

Стоимость полного кода
528₽ ≈ $6.45