adaptivelaguerrersi_v3.2 600z.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «adaptivelaguerrersi_v3.2 600z.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.