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

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

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

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

О программе

Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, который рассчитывает и отображает сглаженную версию индикатора RSI (Relative Strength Index). Вместо стандартного расчёта применяется специализированный алгоритм сглаживания к ценовым данным или значениям RSI, что позволяет получить более чистую аналитическую линию.

Индикатор поддерживает анализ на различных таймфреймах и работу с несколькими типами цен (Close, Open, High, Low, Median, Typical, Weighted). Доступны настраиваемые пороговые уровни для определения направления тренда: при превышении верхнего уровня линия отображается в одном цвете, при снижении ниже нижнего — в другом.

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

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм, на котором выполняется расчёт индикатора
Length Длина RSI — Период расчёта индикатора RSI
Price Тип цены — Тип цены, используемый для расчёта (Close, Open, High, Low, Median, Typical, Weighted)
LevelUp Верхний уровень — Верхний пороговый уровень для определения восходящего тренда
LevelDown Нижний уровень — Нижний пороговый уровень для определения нисходящего тренда
SmoothLength Длина сглаживания — Период сглаживания применяемого к ценовым данным или значениям RSI
Interpolate Интерполяция — Переключатель интерполяции между барами при отображении данных с другого таймфрейма
Получить полный код

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

#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 1

    extern ENUM_TIMEFRAMES    TimeFrame    = PERIOD_CURRENT;
    extern int                Length       = 14;
    extern ENUM_APPLIED_PRICE Price        = PRICE_CLOSE;
    extern double             LevelUp      = 0.70;
    extern double             LevelDown    = 0.30;
    extern double             SmoothLength = 20;
    extern bool               Interpolate  = true;

    double rsi[];
    double rsiUa[];
    double rsiUb[];
    double rsiDa[];
    double rsiDb[];
    double prc[];
    double trend[];
string indicatorFileName;
bool   returnBars;

    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 (returnBars) { rsi[0] = limit+1; return(0); }
         if (TimeFrame!=Period())
         {
            limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,TimeFrame,indicatorFileName,-99,0,0)*TimeFrame/Period()));
            if (trend[limit]== 1) CleanPoint(limit,rsiUa,rsiUb);
            if (trend[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
            for (int i=limit;i>=0; i--)
            {
               int y = iBarShift(NULL,TimeFrame,Time[i]);
                  rsi[i]   = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,Length,Price,LevelUp,LevelDown,SmoothLength,0,y);
                  trend[i] = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,Length,Price,LevelUp,LevelDown,SmoothLength,6,y);
                  rsiUa[i] = EMPTY_VALUE;
                  rsiUb[i] = EMPTY_VALUE;
                  rsiDa[i] = EMPTY_VALUE;
                  rsiDb[i] = EMPTY_VALUE;

                  if (!Interpolate || (i>0 && y==iBarShift(NULL,TimeFrame,Time[i-1]))) continue;

                  datetime time = iTime(NULL,TimeFrame,y);
                     for(int n = 1; i+n < Bars && Time[i+n] >= time; n++) continue;	
                     for(int l = 1; l < n && (i+l<Bars) && (i+n)<Bars; l++) rsi[i+l] = rsi[i] + (rsi[i+n] - rsi[i] )*l/n;
               }
               for(i=limit; i>=0; i--)
               {                           
              

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

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

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

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

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

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

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