AdaptiveLaguerreRSI_v3
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «adaptivelaguerrersi_v3.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
AdaptiveLaguerreRSI_v3 — это пользовательский индикатор для MetaTrader 4, рассчитывающий значение RSI на основе фильтра Лагерра с возможностью адаптивной настройки сглаживания. Индикатор отображает основной график в отдельном окне и дополнительные линии направления тренда при включённом режиме цветовой индикации.
Индикатор поддерживает выбор таймфрейма, типа цены и параметров фильтра. В мультитаймфреймном режиме вычисления выполняются на указанном таймфрейме с последующей отрисовкой результатов на текущем графике. Доступны несколько режимов адаптивного сглаживания и цветовое отображение тренда.
Вспомогательные линии тренда (upTrend1, upTrend2) строятся при активном цветовом режиме для визуализации направления изменения значений индикатора. Уровни 25, 50 и 75 отображаются горизонтальными линиями на графике.
Настройки программы
| Настройка | Описание |
|---|---|
| Time Frame in min (TimeFrame) | TimeFrame — Таймфрейм в минутах для расчёта индикатора |
| Applied Price: 0-C,1-O,2-H,3-L,4-Median,5-Typical,6-Weighted (Price) | Price — Применяемая цена: 0 — Close, 1 — Open, 2 — High, 3 — Low, 4 — Median, 5 — Typical, 6 — Weighted |
| Length (Length) | Length — Длина фильтра Лагерра |
| Laguerre Filter Order (Order) | Order — Порядок фильтра Лагерра |
| Adaptive Mode:0-off,1-on (AdaptiveMode) | AdaptiveMode — Включение или отключение адаптивного режима (0 — выключен, 1 — включён) |
| Adaptive Factor Smoothing Period (AdaptiveSmooth) | AdaptiveSmooth — Период сглаживания адаптивного коэффициента |
| Adaptive Factor Smoothing Mode:0-SMA,1-EMA,2-Wilder,3-LWMA,4-Median (AdaptiveSmoothMode) | AdaptiveSmoothMode — Режим сглаживания адаптивного коэффициента: 0 — SMA, 1 — EMA, 2 — Wilder, 3 — LWMA, 4 — Median |
| Color Mode(0-off,1-on) (ColorMode) | ColorMode — Включение или отключение цветового режима отображения тренда (0 — выключен, 1 — включён) |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Tomato
#property indicator_width1 2
#property indicator_color2 DeepSkyBlue
#property indicator_width2 2
#property indicator_color3 DeepSkyBlue
#property indicator_width3 2
#property indicator_level1 50
#property indicator_level2 25
#property indicator_level3 75
extern int TimeFrame = 0; //Time Frame in min
extern int Price = 0; //Applied Price: 0-C,1-O,2-H,3-L,4-Median,5-Typical,6-Weighted
extern int Length = 24; //Length
extern int Order = 4; //Laguerre Filter Order
extern int AdaptiveMode = 0; //Adaptive Mode:0-off,1-on
extern int AdaptiveSmooth = 5; //Adaptive Factor Smoothing Period
extern int AdaptiveSmoothMode = 4; //Adaptive Factor Smoothing Mode:0-SMA,1-EMA,2-Wilder,3-LWMA,4-Median
extern int ColorMode = 0; //Color Mode(0-off,1-on)
double laguerreRSI[];
double upTrend1[];
double upTrend2[];
double trend[];
double price[];
double diff[];
double gamma[];
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] = EMPTY_VALUE;
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,AdaptiveMode,AdaptiveSmooth,AdaptiveSmoothMode,ColorMode,0,y);
laguerreRSI[shift] = RSI;
if(ColorMode > 0)
{
int rsitrend = iCustom(NULL,TimeFrame,IndicatorName,0,Price,Length,Order,AdaptiveMode,AdaptiveSmooth,AdaptiveSmoothMode,ColorMode,3,y);
upTrend1[shift] = EMPTY_VALUE;
upTrend2[shift] = EMPTY_VALUE;
if(rsitrend > 0) upTrend1[shift] = laguerreRSI[shift];
}
}
if(ColorMode > 0)
{
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];
}
price[shift] = iMA(NULL,0,1,0,0,Price,shift);
if(shift > Bars - Length) continue;
diff[shift] = MathAbs(price[shift] - laguerre[1]);
if(shift > Bars - 2*Length) continue;
if(AdaptiveMode > 0)
{
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); brПоказано первые 50% кода (символов: 6661)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.