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

dynamic_zones_composite_rsi.mq5

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

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 5, написанный на языке MQL5. Он рассчитывает композитную версию индикатора RSI на основе нескольких сглаженных ценовых рядов и отображает результаты в отдельном окне графика.

Индикатор применяет анализ динамических зон через внешнюю библиотеку для определения уровней вероятности покупки и продажи. Это позволяет трейдеру визуально оценивать зоны вероятностных перегибов на основе композитного RSI.

На графике отображаются три уровня зон (покупка, продажа, нейтральный уровень), а также линия композитного RSI и маркеры направления его наклона. Параметры периода, глубины сглаживания и порогов вероятности настраиваются пользователем.

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

НастройкаОписание
RsiPeriod Период расчёта композитного индикатора RSI, задаётся в виде числового значения.
RsiPrice Тип цены, используемой в расчёте RSI. Значение 0 соответствует цене закрытия (Close).
RsiDepth Количество уровней сглаживания, используемых в композитном расчёте RSI. Реальное значение ограничивается диапазоном от 2 до 25.
RsiFast Логический переключатель, определяющий режим сглаживания. При значении true используется ускоренный расчёт, при false — стандартный.
DzLookBack Количество баров, используемых для расчёта динамических зон вероятности. Определяет глубину исторического диапазона анализа.
DzBuyProbability Порог вероятности, при достижении которого зона считается зоной покупки. Значение задаётся в виде дробного числа от 0 до 1.
DzSellProbability Порог вероятности, при достижении которого зона считается зоной продажи. Значение задаётся в виде дробного числа от 0 до 1.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1  DarkGray
#property indicator_color2  PaleVioletRed
#property indicator_color3  LimeGreen
#property indicator_color4  LimeGreen
#property indicator_color5  PaleVioletRed
#property indicator_color6  PaleVioletRed
#property indicator_style1  STYLE_DOT
#property indicator_style2  STYLE_DOT
#property indicator_style3  STYLE_DOT
#property indicator_width4  2
#property indicator_width5  2
#property indicator_width6  2
#property indicator_minimum -0.1
#property indicator_maximum  1.1
#property indicator_levelcolor DarkGray

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

extern double RsiPeriod         = 10;
extern int    RsiPrice          = 0;
extern int    RsiDepth          = 10;
extern bool   RsiFast           = false;
extern int    DzLookBack        = 35;
extern double DzBuyProbability  = 0.90;
extern double DzSellProbability = 0.90;

double rsi[];
double zli[];
double bli[];
double sli[];
double rsiDa[];
double rsiDb[];
double slope[];

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

int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = MathMin(Bars - counted_bars,Bars-1);
         if (slope[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);

      for(int i = limit; i >= 0 ; i--)
      {
         rsi[i]   = iCompRsi(iMA(NULL,0,1,0,MODE_SMA,RsiPrice,i),RsiPeriod,RsiDepth,RsiFast,i);
         rsiDa[i] = EMPTY_VALUE;
         rsiDb[i] = EMPTY_VALUE;
         slope[i] = slope[i+1];
            if (rsi[i] > rsi[i+1]) slope[i] =  1;
  

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

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

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

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

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

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

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