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

t3_rsi_zigzag.mq5

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

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор для MetaTrader 4, рассчитывающий сглаженную версию индикатора RSI с выделением локальных экстремумов в виде ZigZag-линии. Использует пользовательские параметры для настройки периода RSI, коэффициента сглаживания T3 и параметров поиска пиков и впадин. Отображает результат в отдельном окне в виде двух буферов: основная линия сглаженного RSI и линия ZigZag.

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

НастройкаОписание
RSIPeriod Период RSI — Период расчёта индикатора относительной силы RSI.
t3_period Период T3 — Период сглаживающего фильтра T3, применяемого к значениям RSI.
b Коэффициент b — Коэффициент сглаживания фильтра T3 в диапазоне от 0 до 1.
ExtDepth Глубина поиска — Максимальная глубина поиска локальных экстремумов ZigZag в барах.
ExtDeviation Отклонение — Минимальное отклонение в пунктах от предыдущего экстремума для подтверждения нового пика или впадины.
ExtBackstep Шаг отката — Количество баров для отката при проверке и удаления перекрывающихся экстремумов.
LowLevel Нижний уровень — Значение нижнего уровня индикатора.
MedLevel Средний уровень — Значение среднего уровня индикатора.
HighLevel Верхний уровень — Значение верхнего уровня индикатора.
Window Номер окна — Номер окна графика, на котором строится канал между точками ZigZag.
Channel Тип канала — Тип канала: 0 — канал стандартного отклонения, ненулевое значение — регрессионный канал.
STD_width Ширина канала — Множитель ширины канала стандартного отклонения.
0 = Close (Price) Тип цены — Тип цены для расчёта RSI: 0 = Close, 1 = Open, 2 = High, 3 = Low, 4 = (H+L)/2, 5 = (H+L+C)/3, 6 = (H+L+C+C)/4, другие значения = Close.
Получить полный код

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

#property indicator_separate_window

#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_color2 Red

extern int RSIPeriod=14;
extern int t3_period=8;
extern double b=0.7;
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
extern int LowLevel=30;
extern int MedLevel=50;
extern int HighLevel=70;
extern int Window=1;
extern int Channel=0;
extern double STD_width=1.0;
extern int Price=0; // 0 = Close             

double RSIBuffer[];
double t3_RSIBuffer[];
double ExtMapBuffer[];
double ExtMapBuffer2[];

double e1, e2, e3, e4, e5, e6, c1, c2, c3, c4, n, w1, w2, b2, b3;
int OldLastZigZag, OldPreviousZigZag;

int init()
  {
      // код доступен только после оплаты
   }
int deinit()
{
	ObjectDelete("Channel");
}  

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

   int    shift, back,lasthighpos,lastlowpos,index;
   double val,res;
   double curlow,curhigh,lasthigh,lastlow;

   if(Bars<=RSIPeriod) return(0);

   if(counted_bars<1)
      for(i=1;i<=RSIPeriod;i++) RSIBuffer[Bars-i]=0.0;

   i=Bars-RSIPeriod-1;
   if(counted_bars>=RSIPeriod) i=Bars-counted_bars-1;
   if(Price<0 || Price>6) Price=0;
   for(; i>=0; i--)
    {
     RSIBuffer[i]=iRSI(NULL,0,RSIPeriod,Price,i);
    } 
   for(i=Bars-1; i>=0; i--)
    {
     e1 = w1*RSIBuffer[i] + w2*e1;
     e2 = w1*e1 + w2*e2;
     e3 = w1*e2 + w2*e3;
     e4 = w1*e3 + w2*e4;
     e5 = w1*e4 + w2*e5;
     e6 = w1*e5 + w2*e6;

     t3_RSIBuffer[i] = c1*e6 + c2*e5 + c3*e4 + c4*e3;
    }
   for(shift=Bars-1; shift>=0; shift--)
     {
      int n, sn, r, result;
      bool ft=true;
      for(n=1; n<ExtDepth; n++)
       {
        sn=shift+n;
        if(ft)
         {
          if(t3_RSIBuffer[shift]<t3_RSIBuffer[sn]) result=shift;
          else result=sn;
          r=result;
          ft=false;
         } 
        else
         {
          if(t3_RSIBuffer[r]<t3_RSIBuffer[sn]) result=r;
          else result=sn;
          r=result;
         }
       }    
      index=r;
      val=t3_RSIBuffer[index];
      if(val==lastlow) val=0.0;
      else 
        { 
         lastlow=val; 
         if((t3_RSIBuffer[shift]-val)>(ExtDeviation*Point)) val=0.0;
         else
           {
            for(back=1; back<=ExtBackstep; back++)
              {
               res=ExtMapBuffer[shift+back];
               if((res!=0)&&(res>val)) ExtMapBuffer[shift+back]=0.0; 
              }
           }
        } 
      ExtMapBuffer[shift]=

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

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

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

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

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

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

Стоимость полного кода
435,30₽ ≈ $5.32