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

ind_divpeaktroughrsi_sw_v1.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный индикатор рассчитывает осциллятор на основе индикатора RSI, смещённый на 50 единиц, что позволяет анализировать ценовые данные и технические показатели в отдельном окне. Индикатор выявляет пики и впадины осциллятора, используя заданные пороги чувствительности и количество баров для поиска экстремумов. Результаты отображаются стрелками и линиями трендов с настраиваемыми цветами.

Индикатор поддерживает настройку периода RSI и типа цены для расчёта, а также позволяет включать или отключая отрисовку линий трендов в отдельном окне индикатора и на графике. При пересечении нулевого уровня пики и впадины переключаются между двумя буферами для визуализации разворотов.

Продукт работает в среде MetaTrader 5 как пользовательский индикатор с отдельным окном отображения. Все расчёты выполняются на каждом тике при обновлении ценовых данных.

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

НастройкаОписание
RSIPeriod Период расчёта индикатора RSI. Определяет количество баров, используемых для вычисления значения RSI. По умолчанию 14.
RSIPrice Тип цены для расчёта RSI: 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted. Определяет, какая цена используется в расчёте.
ExtrLeftBars Количество баров слева от текущего для подтверждения экстремума. Определяет глубину поиска локального максимума или минимума осциллятора влево от точки проверки.
ExtrRightBars Количество баров справа от текущего для подтверждения экстремума. Определяет глубину поиска локального максимума или минимума осциллятора вправо от точки проверки.
PlusSens Верхний порог чувствительности осциллятора. Значение осциллятора выше этого порога инициирует поиск пиков. По умолчанию 1.
MinusSens Нижний порог чувствительности осциллятора. Значение осциллятора ниже этого порога инициирует поиск впадин. По умолчанию -1.
DrawLinesSW Переключатель отрисовки линий трендов в окне индикатора. При значении true линии трендов отображаются в отдельном окне индикатора.
DrawLinesChW Переключатель отрисовки линий трендов на графике (основном окне). При значении true линии трендов отображаются непосредственно на ценовом графике.
Col_Peak_1 Цвет линий трендов для первого типа пиков. Определяет визуальное отображение линий, проводимых при обнаружении верхних разворотов осциллятора.
Col_Peak_2 Цвет линий трендов для второго типа пиков. Используется при условии, когда осциллятор растёт, а цена формирует более низкий максимум.
Col_Trough_1 Цвет линий трендов для первого типа впадин. Определяет визуальное отображение линий, проводимых при обнаружении нижних разворотов осциллятора.
Col_Trough_2 Цвет линий трендов для второго типа впадин. Используется при условии, когда осциллятор падает, а цена формирует более высокий минимум.
ShortName Текстовый параметр, задающий короткое имя индикатора. Используется для префикса объектов и названия в окне индикатора. По умолчанию DPTRSI.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Orange
#property indicator_color2 Silver
#property indicator_color3 SlateGray
#property indicator_width2 1
#property indicator_width3 1

extern int RSIPeriod=14;
extern int RSIPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
extern int ExtrLeftBars=2; // ????? ????? ?? ??????????
extern int ExtrRightBars=1; // ????? ?????? ?? ??????????
extern double PlusSens=1;
extern double MinusSens=-1;
extern bool DrawLinesSW=true;
extern bool DrawLinesChW=true;
extern color Col_Peak_1=Red;
extern color Col_Peak_2=DeepPink;
extern color Col_Trough_1=LimeGreen;
extern color Col_Trough_2=YellowGreen;
extern string ShortName="DPTRSI";

double osma[];
double Sig1[];
double Sig2[];
double peack_1_i[];
double peack_2_i[];
double trogh_1_i[];
double trogh_2_i[];

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

int deinit()
  {

   if(DrawLinesSW || DrawLinesChW)fObjDeleteByPrefix(ShortName);

   return(0);
  }

int start(){
      // код доступен только после оплаты
   }

         int limit=Bars-IndicatorCounted();

            for(int i=limit-1;i>=0;i--){
               osma[i]=iRSI(NULL,0,RSIPeriod,RSIPrice,i)-50;
               int extri=i+ExtrRightBars;

               Sig1[i]=EMPTY_VALUE;
               Sig2[i]=EMPTY_VALUE;                            

               peack_1_i[i]=peack_1_i[i+1];
               peack_2_i[i]=peack_2_i[i+1];               
               trogh_1_i[i]=trogh_1_i[i+1];
               trogh_2_i[i]=trogh_2_i[i+1];               

               bool PeackNow=false;
               bool TroghNow=false;

                  double extrv=osma[extri];

                  if(extrv>PlusSens){
                     for(int j=i;j<extri;j++){
                        if(extrv<=osma[j]){
                           break;
                        }
                     }
                     if(j==extri){
                        int extril=extri+ExtrLeftBars;
                           for(j=extril;j>extri;j--){
                              if(extrv<=osma[j]){
                                 break;
                              }
                           }
                           if(j==extri){
                              PeackNow=true;
                                    if(peack_1_i[i]==EMPTY_VALUE){
                                       peack_1_i[i]=Time[extri];
                                    }
                                    else{
                                       if(osma[extri]>osma[iBarShift(NULL,0,peack_1_i[i],false)]){
                                          peack_1_i[i]=Time[extri];
                                       }
                                    }
                           }
                     }
                  }
                  if(extrv<MinusSens){                  
                     for(j=i;j<extri;j++){
                        if(extrv>=osma[j]){
                           break;
                        }
                     }
                     if(j==extri){
                        extril=extri+ExtrLeftBars;
                           for(j=extril;j>extri;j--){
                              if(extrv>=osma[j]){
                                 break;
                              }
                           }
                           if(j==extri){
                              TroghNow=true;
                                    if(trogh_1_i[i]==EMPTY_VALUE){
                                       trogh_1_i[i]=Time[extri];
                                    }
                                    else{
                                       if(osma[extri]<osma[iBarShift(NULL,0,trogh_1_i[i],false)]){
                                          trogh_1_i[i]=Time[extri];
                                       }
                                    }                              
                           }
                     }                  
                  }  

                  if(osma[i]>0 && osma[i+1]<=0){
                     peack_2_i[i]=peack_1_i[i];
                     peack_1_i[i]=EMPTY_VALUE;
                  }                    

                  if(osma[i]<0 && osma[i+1]>=0){
                     trogh_2_i[i]=trogh_1_i[i];
                     trogh_1_i[i]=EMPTY_VALUE;                  
                

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

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

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

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

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

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

Стоимость полного кода
534,70₽ ≈ $6.54