JurikRSI
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «jurikrsi_v2.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
JurikRSI — это пользовательский индикатор для MetaTrader 4, рассчитывающий аналитический показатель на основе RSI со сглаживанием по методу Jurik и отображающий результаты в отдельном окне. Индикатор поддерживает различные режимы ценовых данных — от стандартных (Close, Open, High, Low) до цен Heikin Ashi, а также работу с несколькими таймфреймами. Визуализация включает основные линии индикатора, линии трендов и сигналов, а также режимы отображения фильтра или полос. Предусмотрены звуковые уведомления о событиях и режим предупреждений для отслеживания изменений тренда.
Индикатор предоставляет настраиваемые параметры сглаживания, фильтрации, цветового и сигнального режимов, что позволяет адаптировать его под различные стили анализа. Звуковые оповещения срабатывают при смене направления тренда на текущем баре. Визуальные режимы позволяют отображать либо фильтрованные значения индикатора, либо верхние и нижние полосы.
Настройки программы
| Настройка | Описание |
|---|---|
| Time Frame in min (TimeFrame) | Таймфрейм — Таймфрейм в минутах |
| Price Mode (0...10) (Price) | Режим цены — Режим цены (0...10) |
| Period of smoothing (Length) | Длина сглаживания — Период сглаживания |
| 100...100 (Phase) | Фаза — Параметр фазы (-100...100) |
| Percent Filter (PctFilter) | Процентный фильтр — Процентный фильтр |
| 0-final smoothing,1- 1st pre-smoothing,2-2nd pre-smoothing,3-without pre-smoothing (FilterMode) | Режим фильтрации — 0-финальное сглаживание, 1-1-е предварительное сглаживание, 2-2-е предварительное сглаживание, 3-без предварительного сглаживания |
| Switch of Color mode (1-color) (ColorMode) | Цветовой режим — Переключение цветового режима (1-цвет) |
| Switch of Signal mode(0-off,1-on) (SignalMode) | Режим сигналов — Переключение режима сигналов (0-выкл, 1-вкл) |
| Sound Alert switch(0...2) (AlertMode) | Режим оповещений — Переключатель звуковых оповещений (0...2) |
| Warning Mode (0-off,1-on) (WarningMode) | Режим предупреждений — Режим предупреждений (0-выкл, 1-вкл) |
| 0-Filter,1-Bands (VisualMode) | Визуальный режим — 0-Фильтр, 1-Полосы |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 Linen
#property indicator_width1 1
#property indicator_color2 SkyBlue
#property indicator_width2 1
#property indicator_color3 Tomato
#property indicator_width3 1
#property indicator_color4 SkyBlue
#property indicator_width4 2
#property indicator_color5 Tomato
#property indicator_width5 2
#property indicator_maximum 100
#property indicator_minimum 0
#property indicator_level1 70
#property indicator_level2 30
#property indicator_level3 50
extern int TimeFrame = 0; //Time Frame in min
extern int Price = 0; //Price Mode (0...10)
extern int Length = 14; //Period of smoothing
extern double Phase = 0; //-100...100
extern double PctFilter = 0; //Percent Filter
extern int FilterMode = 0; //0-final smoothing,1- 1st pre-smoothing,2-2nd pre-smoothing,3-without pre-smoothing
extern int ColorMode = 0; //Switch of Color mode (1-color)
extern int SignalMode = 0; //Switch of Signal mode(0-off,1-on)
extern int AlertMode = 0; //Sound Alert switch(0...2)
extern int WarningMode = 0; //Warning Mode (0-off,1-on)
extern int VisualMode = 0; //0-Filter,1-Bands
double JRSI[];
double UpTrend[];
double DnTrend[];
double UpSignal[];
double DnSignal[];
double sig[];
double tmp[][5];
double haClose[], haOpen[], haHigh[], haLow[];
double lastLo[], lastHi[];
int draw_begin, pBars, mcnt_bars;
string short_name;
datetime pTime;
bool UpTrendAlert=false, DnTrendAlert=false;
double len, len1, len2, pow1, bet, R, len3;
int AvgLen = 65;
int StdLen = 20;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int limit, y, i, shift, cnt_bars=IndicatorCounted();
double price0, price1, mJ[], bsmax[], bsmin[], Volty[], AvgVolty[], mUp[], mDn[], mUpsig[], mDnsig[], trend[], vSum[];
double AvgBulls[], AvgBears[];
if(TimeFrame!=Period()) int mBars = iBars(NULL,TimeFrame); else mBars = Bars;
if(mBars != pBars)
{
ArrayResize(mJ,mBars);
ArrayResize(tmp,mBars);
ArrayResize(bsmin,mBars);
ArrayResize(bsmax,mBars);
ArrayResize(AvgVolty,mBars);
ArrayResize(Volty,mBars);
ArrayResize(vSum,mBars);
ArrayResize(AvgBulls,mBars);
ArrayResize(AvgBears,mBars);
if(Price > 6 && Price <= 10)
{
ArrayResize(haClose,mBars);
ArrayResize(haOpen,mBars);
ArrayResize(haHigh,mBars);
ArrayResize(haLow,mBars);
}
if(ColorMode>0)
{
ArrayResize(trend,mBars);
ArrayResize(mUp,mBars);
ArrayResize(mDn,mBars);
ArrayResize(mUpsig,mBars);
ArrayResize(mDnsig,mBars);
ArrayResize(lastLo,mBars);
ArrayResize(lastHi,mBars);
}
pBars = mBars;
}
if(cnt_bars<1)
{
for(i=Bars-1;i>0;i--)
{
JRSI[i]=EMPTY_VALUE;
UpTrend[i]=EMPTY_VALUE;
DnTrend[i]=EMPTY_VALUE;
UpSignal[i]=EMPTY_VALUE;
DnSignal[i]=EMPTY_VALUE;
}
mcnt_bars = 0;
}
if(mcnt_bars > 0) mcnt_bars--;
for(y=mcnt_bars;y<mBars;y++)
{
if(y > len3)
{
if(Price <= 6)
{
price0 = iMA(NULL,TimeFrame,1,0,0,Price,mBars-y-1);
price1 = iMA(NULL,TimeFrame,1,0,0,Price,mBars-y);
}
else
if(Price > 6 && Price <= 10)
{
price0 = HeikenAshi(TimeFrame,Price-7,mBars-y-1);
price1 = HeikenAshi(TimeFrame,Price-7,mBars-y);
}
double Bulls = 0.5*(MathAbs(price0-price1)+(price0-price1));
double Bears = 0.5*(MathAbs(price0-price1)-(price0-price1));
AvgBulls[y] = Wilder(Bulls,AvgBulls,len3,y);
AvgBears[y] = Wilder(Bears,AvgBears,len3,y);
if((AvgBulls[y] + AvgBears[y]) != 0)
double RS = 100 * AvgBulls[y]/(AvgBulls[y] + AvgBears[y]);
else RS =0;
if(y == len3+1) {bsmax[y] = RS; bsmin[y] = RS;}
else
{
double del1 = RS - bsmax[y-1];
double del2 = RS - bsmin[y-1];
if(MathAbs(del1) > MathAbs(del2)) Volty[y] = MathAbs(del1);
else
if(MathAbs(del1) < MathAbs(del2)) Volty[y] = MathAbs(del2);
else
if(MathAbs(del1) == MathAbs(del2)) Volty[y] = 0;
vSum[y] = vSum[y-1] + 0.1*(Volty[y] - Volty[y-10]);
if(y <= AvgLen+Length+1) AvgVolty[y] = AvgVolty[y-1] + 2.0*(vSum[y] - AvgVolty[y-1])/(AvgLen+1);
else
AvgVolty[y] = SMA(vSum,AvgLen,y);
if (AvgVolty[y] > 0) double dVolty = Volty[y]/AvgVolty[y];
if (dVolty > MathPow(len1,1.0/pow1)) dVolty = MathPow(len1,1.0/pow1);
if (dVolty < 1) dVolty = 1.0;
double pow2 = MathPow(dVolty, pow1);
double Kv = MathPow(bet, MathSqrt(pow2));
if (del1 > 0) bsmax[y] = RS; else bsmax[y] = RS - Kv*del1;
if (del2 < 0) bsmin[y] = RS; else bsmin[y] = RS - Kv*del2;
if(VisualMode == 0)
{
mJ[y] = JSmooth(FilterMode,RS, Length, pow2, 0, y);
if(ColorMode > 0)
{
if (PctFilter>0)
{
double sumdel=0;
for (i=0;i<StdLen;i++) sumdel = sumdel+MathAbs(mJ[y-i] - mJ[y-i-1]);
double AvgDel = sumdel/StdLen;
double sumpow = 0;
for (i=0;i<StdLen;i++) sumpow+=MathPow(MathAbs(mJ[y-i] - mJ[y-i-1])-AvgDel,2);
double StdDev = MathPow(sumpow/StdLen,0.5);
Показано первые 50% кода (символов: 9495)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.