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

Unsmoothed RSI

unsmoothed_rsi_3.mq5
Вы автор или правообладатель?

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

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

О программе

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

В основе расчёта лежит анализ изменения цены выбранного типа (Applied price) за один бар. Положительные и отрицательные изменения накапливаются отдельно, после чего вычисляется их соотношение. Итоговое значение дополнительно сглаживается с использованием настраиваемого параметра Smooth. При отсутствии отрицательных изменений индикатор принимает максимальное значение.

Индикатор предоставляет три входных параметра: Length (период усреднения), Price (тип цены) и Smooth (степень сглаживания). Все параметры объявлены как extern и доступны для изменения в настройках индикатора. Индикатор не содержит торговых функций и предназначен исключительно для визуального анализа.

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

НастройкаОписание
Length Период усреднения для расчёта положительных и отрицательных изменений цены. Определяет количество баров, участвующих в вычислении соотношения. Значение по умолчанию 14.
Price Тип цены, используемой для расчёта. Значения: 0 - Close, 1 - Open, 2 - High, 3 - Low, 4 - Median, 5 - Typical, 6 - Weighted. Значение по умолчанию 0 (Close).
Smooth Параметр сглаживания итогового значения индикатора. Чем выше значение, тем сильнее сглаживание. Значение по умолчанию 5.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1  Yellow
#property indicator_minimum 0
#property indicator_maximum 100

extern int Length=14;
extern int Price=0;      // Applied price

extern double Smooth = 5;

double U_RSI[];
double Pos[], Neg[];

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);

   for (int pos=limit; pos>=0; pos--)
   {
      double Diff=iMA(NULL, 0, 1, 0, MODE_SMA, Price, pos)-iMA(NULL, 0, 1, 0, MODE_SMA, Price, pos+1);
      if (Diff>0)
            { Pos[pos]=Diff; Neg[pos]=0;     }
      else  { Pos[pos]=0;    Neg[pos]=-Diff; }
   } 
   for (pos=limit; pos>=0; pos--)
   {
      double P=iMAOnArray(Pos, 0, Length, 0, MODE_SMA, pos);
      double N=iMAOnArray(Neg, 0, Length, 0, MODE_SMA, pos);
      if (N==0)
            U_RSI[pos

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

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

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

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

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

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

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