MA on RSI Expert Advisor on MQL5

 

hello,

What I want to code is as follow:
 1> calculate RSI on (14 period close)

 2> calculate EMA 9 on (RSI value)

i have try so many times but unable to solve.    *** But it shows an error that is "Invalid Array Access".

here is my code:

   double vwap, ema, ema_1, wma, rsi, rsi_1;
   double rsi_array[], ema_array[], wma_array[];





void indicator(){    
   
   // RSI Current Timeframe
   rsi = iRSI(NULL,0,rsi_len,PRICE_CLOSE); 
   ArraySetAsSeries(rsi_array,true);
   CopyBuffer(rsi,0,0,30,rsi_array);
   rsi_1 = NormalizeDouble(rsi_array[1],2);
   
   
   // EMA Current Timeframe
   //ema = iMA(NULL,0,3,0,MODE_EMA,rsi_array);
   ema = iCustom(NULL,0,"abc", ema_len, 0, MODE_EMA, rsi_array); 
   ArraySetAsSeries(ema_array,true);
   CopyBuffer(ema,0,0,5,ema_array);
   ema_1 = NormalizeDouble(ema_array[1],2);
   
   
   //Alert("ema "+ema_1);


}

 

  *** it shows an error that "Invalid Array Access".


Please help it already took too much times.

Thanks in advance.

 

Perhaps you should read the manual, especially the examples.
   How To Ask Questions The Smart Way. 2004
      How To Interpret Answers.
         RTFM and STFW: How To Tell You've Seriously Screwed Up.

They all (including iCustom) return a handle (an int). You get that in OnInit. In OnTick/OnCalculate (after the indicator has updated its buffers), you use the handle, shift and count to get the data.
          Technical Indicators - Reference on algorithmic/automated trading language for MetaTrader 5
          Timeseries and Indicators Access / CopyBuffer - Reference on algorithmic/automated trading language for MetaTrader 5
          How to start with MQL5 - General - MQL5 programming forum - Page 3 #22 2020.03.08
          How to start with MQL5 - MetaTrader 5 - General - MQL5 programming forum - Page 7 #61 2020.07.05
          How to call indicators in MQL5 - MQL5 Articles 12 March 2010

 

sourav2452: What I want to code is as follow:

 1> calculate RSI on (14 period close)

 2> calculate EMA 9 on (RSI value)

i have try so many times but unable to solve.    *** But it shows an error that is "Invalid Array Access".

here is my code:   *** it shows an error that "Invalid Array Access".

Please help it already took too much times.

You can't use iMA or iCustom with an array of data as an input. Please read the documentation properly!

Instead, include the file "MovingAverages.mqh" in your code and use one of the moving average functions from that file to carry out the calculation on the array (e.g. "ExponentialMA()").

 

@sourav2452, you can find an example when you press F1 on the "ENUM_APPLIED_PRICE" text in your IDE.

You will have to use the Handle instead of the array as a parameter.

Hope this helps other people searching for this kind of information