Ma в RSI

 
Всем доброго дня
Подскажите пожалуйста, как добавить скользящую средню в rsi чтобы ее можно было использовать в коде советника ?
 
MA on ATR
MA on ATR
  • www.mql5.com
Индикатор Moving Average по значениям индикатора Average True Range
 
Alexey Viktorov #:
Пользуйтесь.

Привет, Алексей! Ох, сейчас начнётся - MA не для ATR, а для RSI и, как его потом вставить в код советника, а ещё лучше - сразу напишите мне весь советник! )))

С уважением, Владимир.

 
MrBrooklin #:

Привет, Алексей! Ох, сейчас начнётся - MA не для ATR, а для RSI и, как его потом вставить в код советника, а ещё лучше - сразу напишите мне весь советник! )))

С уважением, Владимир.

Привет. А я давно заметил свою невнимательность. Так и до старческого маразма недалеко… А учитывая склероз, я могу и забыть ответить в следующий раз. Так-что пусть просят, как в той поговорке, «Просите больше, всё равно ……… посылать».

 
Cav1ty IM:
Всем доброго дня
Подскажите пожалуйста, как добавить скользящую средню в rsi чтобы ее можно было использовать в коде советника ?

кидаете на массив рси

https://www.mql5.com/ru/articles/81


double iMAOnArray(double array[],
                  int total,
                  int period,
                  int ma_shift,
                  int ma_method,
                  int shift)

        

double iMAOnArrayMQL4(double &array[],
                      int total,
                      int period,
                      int ma_shift,
                      int ma_method,
                      int shift)
  {
   double buf[],arr[];
   if(total==0) total=ArraySize(array);
   if(total>0 && total<=period) return(0);
   if(shift>total-period-ma_shift) return(0);
   switch(ma_method)
     {
      case MODE_SMA :
        {
         total=ArrayCopy(arr,array,0,shift+ma_shift,period);
         if(ArrayResize(buf,total)<0) return(0);
         double sum=0;
         int    i,pos=total-1;
         for(i=1;i<period;i++,pos--)
            sum+=arr[pos];
         while(pos>=0)
           {
            sum+=arr[pos];
            buf[pos]=sum/period;
            sum-=arr[pos+period-1];
            pos--;
           }
         return(buf[0]);
        }
      case MODE_EMA :
        {
         if(ArrayResize(buf,total)<0) return(0);
         double pr=2.0/(period+1);
         int    pos=total-2;
         while(pos>=0)
           {
            if(pos==total-2) buf[pos+1]=array[pos+1];
            buf[pos]=array[pos]*pr+buf[pos+1]*(1-pr);
            pos--;
           }
         return(buf[shift+ma_shift]);
        }
      case MODE_SMMA :
        {
         if(ArrayResize(buf,total)<0) return(0);
         double sum=0;
         int    i,k,pos;
         pos=total-period;
         while(pos>=0)
           {
            if(pos==total-period)
              {
               for(i=0,k=pos;i<period;i++,k++)
                 {
                  sum+=array[k];
                  buf[k]=0;
                 }
              }
            else sum=buf[pos+1]*(period-1)+array[pos];
            buf[pos]=sum/period;
            pos--;
           }
         return(buf[shift+ma_shift]);
        }
      case MODE_LWMA :
        {
         if(ArrayResize(buf,total)<0) return(0);
         double sum=0.0,lsum=0.0;
         double price;
         int    i,weight=0,pos=total-1;
         for(i=1;i<=period;i++,pos--)
           {
            price=array[pos];
            sum+=price*i;
            lsum+=price;
            weight+=i;
           }
         pos++;
         i=pos+period;
         while(pos>=0)
           {
            buf[pos]=sum/weight;
            if(pos==0) break;
            pos--;
            i--;
            price=array[pos];
            sum=sum-lsum+price*period;
            lsum-=array[i];
            lsum+=price;
           }
         return(buf[shift+ma_shift]);
        }
      default: return(0);
     }
   return(0);
  }

        iMAOnArray
Расчет скользящего среднего на данных, хранящихся в массиве.

2. вариант (или - или)

double iRSIOnArray(double array[],
                   int total,
                   int period,
                   int shift)
Аналога НЕТ
(см. статью "Индикатор от индикатора в MQL5")
iRSIOnArray
Расчет индикатора Relative Strength Index на данных, хранящихся в массиве.
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
Roman Shiredchenko #:

кидаете на массив рси

https://www.mql5.com/ru/articles/81


2. вариант (или - или)

Аналога НЕТ
(см. статью "Индикатор от индикатора в MQL5")
iRSIOnArray
Расчет индикатора Relative Strength Index на данных, хранящихся в массиве.
double iRSIOnArray(double array[],
                   int total,
                   int period,
                   int shift)

Это совсем из другой оперы. Это значения полученные по формуле RSI по пользовательскому массиву. А человек просил МА по значениям RSI

Так-что остаётся только один вариант…

 
Alexey Viktorov #:

Это совсем из другой оперы. Это значения полученные по формуле RSI по пользовательскому массиву. А человек просил МА по значениям RSI

Так-что остаётся только один вариант…

Ну есть ещё вариант: в iМА вместо цены поставить хэндл рси

 
Alexey Viktorov #:

Это совсем из другой оперы. Это значения полученные по формуле RSI по пользовательскому массиву. А человек просил МА по значениям RSI

Так-что остаётся только один вариант…

:-)

Вот ему - как раз сам работаю по ней:

статье

https://www.mql5.com/ru/articles/5


Таким же образом можно организовать обработку данных прямо в коде индикатора:

  {
   //...
   RSIHandle = iRSI(NULL, 0, RSIPeriod, AppliedPrice);
   SmoothHandle = iMA(NULL, 0, SmoothPeriod, 0, MODE_EMA, RSIHandle);
   //...
  }

а может ему уже ничего не надо.... 

что - то его нет.... :-)

Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
Причина обращения: