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

JurikRSI

jurikrsi_v2.mq5

Похожие материалы по тегам

indicator previous session range + projected candles + boschoch protected for tradingview.pineTradingView · 1 общих тегов#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

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 и перейдите к оплате.

Стоимость полного кода
949,50₽ ≈ $11.61