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

rsx_of_super_smoother.mq5

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

!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 2 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 2 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedingvonepointoneone.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.10 optimized.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.09 a (2).mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

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

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

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

НастройкаОписание
Length Длина периода расчёта индикатора RSI. Определяет количество баров, используемых для вычисления ценового импульса. Минимальное значение — 1.
Price Тип цены для расчёта. 0 — Close, 1 — Open, 2 — High, 3 — Low, 4 — Median, 5 — Typical, 6 — Weighted.
LevelUp Верхний уровень индикатора. При значении индикатора выше этого уровня тренд считается направленным вверх.
LevelDown Нижний уровень индикатора. При значении индикатора ниже этого уровня тренд считается направленным вниз.
SmoothLength Период дополнительного сглаживания ценовых данных. Если значение больше 1, перед расчётом RSI цены проходят через алгоритм сглаживания.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers  5
#property indicator_color1   Gray
#property indicator_color2   LimeGreen
#property indicator_color3   LimeGreen
#property indicator_color4   Orange
#property indicator_color5   Orange
#property indicator_width2   3
#property indicator_width3   3
#property indicator_width4   3
#property indicator_width5   3
#property indicator_minimum  0
#property indicator_maximum  100

extern int    Length       = 14;
extern int    Price        = PRICE_CLOSE;
extern double LevelUp      = 70;
extern double LevelDown    = 30;
extern double SmoothLength = 20;

double rsi[];
double rsiUa[];
double rsiUb[];
double rsiDa[];
double rsiDb[];
double prc[];
double trend[];

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

int deinit()
{
   return(0);
}

double wrkBuffer[][13];
int start()
{
      // код доступен только после оплаты
   }
   int i,r,counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = MathMin(Bars-counted_bars,Bars-1);
         if (ArrayRange(wrkBuffer,0) != Bars) ArrayResize(wrkBuffer,Bars);

   double Kg = (3.0)/(2.0+Length); 
   double Hg = 1.0-Kg;
   if (trend[limit]== 1) CleanPoint(limit,rsiUa,rsiUb);
   if (trend[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
   for(i=limit, r=Bars-i-1; i>=0; i--, r++)
   {
      double price = iMA(NULL,0,1,0,MODE_SMA,Price,i);
      if (SmoothLength>1)
               price  = iSsm(price,SmoothLength,i);
      wrkBuffer[r][12] = price;
      if (i==(Bars-1)) { for (int c=0; c<12; c++) wrkBuffer[r][c] = 0; continue; }  

      double mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
      double moa = MathAbs(mom);
      for (int k=0; k<3; k++)
      {
         int kk = k*2;
            wrkBuffer[r][kk+0] = Kg*mom                + Hg*wrkBuffer[r-1][kk+0];
            wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1]; mom = 1.5*wrkBuffer[r][kk+0] - 0.5 * wrkBuffer[r][kk+1];
            wrkBuffe

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

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

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

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

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

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

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