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

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

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

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

О программе

Индикатор AdaptiveLaguerreRSI_v3.2 реализует расчёт модифицированного индикатора RSI на основе фильтра Лагера в среде MetaTrader 5. Он позволяет анализировать ценовые данные, применяя адаптивный коэффициент гамма для корректировки чувствительности фильтра в зависимости от текущей волатильности рынка.

Индикатор отображает основной расчётный буфер в отдельном окне с уровнями 25, 50 и 75, а при включённом цветном отображении дополнительно рисует линии восходящего и нисходящего трендов. Поддерживается выбор различных типов цен (включая Heikin Ashi) и таймфреймов, а также несколько режимов сглаживания адаптивного фактора.

Внутренняя логика включает расчёт адаптивного гамма-фактора на основе диапазона изменения цены, применение фильтра Лагера заданного порядка и генерацию усреднённого значения методом TriMA. Индикатор предназначен для технического анализа и визуализации трендовой динамики.

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм, на котором выполняется расчёт индикатора. Если выбран таймфрейм текущего графика или ниже, используется текущий период.
Price (Price) Тип цены — Тип цены для расчёта: Close, Open, High, Low, Median, Typical, Weighted Close или различные варианты Heikin Ashi.
Length (Length) Длина периода — Длина расчётного периода индикатора, определяющая количество баров для анализа.
Laguerre Filter Order (Order) Порядок фильтра Лагера — Порядок фильтра Лагера, задающий количество коэффициентов в фильтрующей цепочке.
Adaptive Mode On/Off (AdaptiveModeOn) Адаптивный режим включён — Включает или отключает адаптивный режим расчёта коэффициента гамма. При отключении используется фиксированное значение гамма.
Adaptive Factor Smoothing Period (AdaptiveSmooth) Период сглаживания адаптивного фактора — Период сглаживания адаптивного фактора, используемый при расчёте усреднённого значения гамма.
Adaptive Factor Smoothing Mode (AdaptiveSmoothMode) Режим сглаживания адаптивного фактора — Метод сглаживания адаптивного фактора: SMA, EMA, Wilder, LWMA или Moving Median.
Show in Color (ShowInColor) Отображение в цвет — Включает или отключает цветное отображение линий трендов восходящего и нисходящего направления.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1  clrTomato
#property indicator_width1  2  
#property indicator_color2  clrDeepSkyBlue
#property indicator_width2  2
#property indicator_color3  clrDeepSkyBlue
#property indicator_width3  2

#property indicator_level1  50
#property indicator_level2  25
#property indicator_level3  75

enum ENUM_PRICE
{
   close,               // Close
   open,                // Open
   high,                // High
   low,                 // Low
   median,              // Median
   typical,             // Typical
   weightedClose,       // Weighted Close
   heikenAshiClose,     // Heiken Ashi Close
   heikenAshiOpen,      // Heiken Ashi Open
   heikenAshiHigh,      // Heiken Ashi High   
   heikenAshiLow,       // Heiken Ashi Low
   heikenAshiMedian,    // Heiken Ashi Median
   heikenAshiTypical,   // Heiken Ashi Typical
   heikenAshiWeighted   // Heiken Ashi Weighted Close   
};

enum ENUM_SMOOTHMODE
{
   SMA,                 // Simple Moving Average
   EMA,                 // Exponential Moving Average
   Wilder,              // Wilder Exponential Moving Average
   LWMA,                // Linear Weighted Moving Average
   Median               // Moving Median
};

input ENUM_TIMEFRAMES   TimeFrame            =        0;       //
input ENUM_PRICE        Price                =        0;       // Price
input int               Length               =       50;       // Length  
input int               Order                =        4;       // Laguerre Filter Order 
input bool              AdaptiveModeOn       =     true;       // Adaptive Mode On/Off 
input int               AdaptiveSmooth       =        5;       // Adaptive Factor Smoothing Period
input ENUM_SMOOTHMODE   AdaptiveSmoothMode   =        4;       // Adaptive Factor Smoothing Mode
input bool              ShowInColor          =     true;       // Show in Color

double  laguerreRSI[];
double  upTrend1[];
double  upTrend2[];
double  trend[];
double  iprice[];
double  diff[];
double  gamma[];

int      timeframe;
double   L[][2], ema[2], laguerre[2];
datetime prevtime, ptime, prevTime;
bool     ftime = true;
string   TF, IndicatorName, short_name;

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

int start()
{
      // код доступен только после оплаты
   }
   int    limit, i, shift, counted_bars = IndicatorCounted(); 
   double sgamma, rsi;

   if(counted_bars > 0) limit=Bars-counted_bars-1;
   if(counted_bars < 0) return(0);
   if(counted_bars < 1)
   { 
   limit = Bars - 1;   
      for(i=limit;i>=0;i--) 
      {
      laguerreRSI[i] = 0;
      upTrend1[i]    = EMPTY_VALUE; 
      upTrend2[i]    = EMPTY_VALUE; 
      }
   }   

   if(timeframe != Period())
	{
   limit = MathMax(limit,timeframe/Period());   

      for(shift = 0;shift < limit;shift++) 
      {	
      int y = iBarShift(NULL,timeframe,Time[shift]);

      double RSI   = iCustom(NULL,TimeFrame,IndicatorName,0,Price,Length,Order,AdaptiveModeOn,AdaptiveSmooth,AdaptiveSmoothMode,ShowInColor,0,y);      

      laguerreRSI[shift] = RSI;

         if(ShowInColor)
         {
         int rsitrend = iCustom(NULL,TimeFrame,IndicatorName,0,Price,Length,Order,AdaptiveModeOn,AdaptiveSmooth,AdaptiveSmoothMode,ShowInColor,3,y);      

         upTrend1[shift] = EMPTY_VALUE;
         upTrend2[shift] = EMPTY_VALUE;
         if(rsitrend > 0) upTrend1[shift] = laguerreRSI[shift]; 
         }
      } 

      if(ShowInColor)
      {
         for(shift = limit;shift >= 0;shift--) 
         {	
            if(laguerreRSI[shift] > laguerreRSI[shift+1] && timeframe > Period()) 
            {
            upTrend2[shift]   = laguerreRSI[shift];
            upTrend2[shift+1] = laguerreRSI[shift+1];
            }	
         }
      }   

	return(0);
	}
	else 
   {
      for(shift=limit;shift>=0;shift--)
      {
         if(prevTime != Time[shift])
         {
         laguerre[1] = laguerre[0];
         prevTime    = Time[shift]; 
         }

         if((int)Price <= 6) iprice[shift] = iMA(NULL,0,1,0,0,(int)Price,shift);   
         else
         if((int)Price > 6 && (int)Price <= 13) iprice[shift] = HeikenAshi((int)Price-7,Bars,shift);

      diff[shift] = MathAbs(iprice[shift] - laguerre[1]);

         if(AdaptiveModeOn && shift < Bars - Length - AdaptiveSmooth) 
         {
         gamma[shift] = AdaptiveGamma(diff,Length,shift);

            switch(AdaptiveSmoothMode)
            {
            case 1 : sgamma = EMA   (gamma[shift],AdaptiveSmooth    ,Time[shift],shift); break;
            case 2 : sgamma = EMA   (gamma[shift],2*AdaptiveSmooth-1,Time[shift],shift); break;  
            case 3 : sgamma = LWMA  (gamma       ,AdaptiveSmooth    ,shift); break;   
            case 4 : sgamma = Median(gamma       ,AdaptiveSmooth    ,shift); break; 
            default: sgamma = SMA   (gamma       ,AdaptiveSmoo

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

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

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

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

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

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

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