Como mudar de MA para RSI

 

Bom dia crianças.

Tenho o código abaixo (somente linhas relevantes) que usa informações do MA. Como faço para mudar para RSI?

input int      MA_Period1=4;        // Moving Average Period
int MA1                             // ma handle 
///////////////////////////////////////////////////////////////////////////////
onInit()
{
 MA1=iMA(_Symbol,_Period,MA_Period1,0,MODE_EMA,PRICE_CLOSE);
 if(MA1<0 || MA2<0 ||MA3<0)
 {
  Comment("Error Creating Handles for indicators - error: ",GetLastError(),"!!");
  return(-1);
 }
 return(INIT_SUCCEEDED);
}
///////////////////////////////////////////////////////////////////////////////
void OnTick()
{
 ArraySetAsSeries(ma01,true);  // the MA values arrays
 if(CopyBuffer(MA1,0,0,7,ma01)<0)
 {
  Comment(" 0001  -  Error copying Moving Average MA1 indicator buffer - error:",GetLastError());
  ResetLastError();
  return;
 }
 /////////// Abaixo faço o código que usa ma01[n] sendo n=de 0 até 6 /////////////// 
}



 
josemanoel:

Bom dia crianças.

Tenho o código abaixo (somente linhas relevantes) que usa informações do MA. Como faço para mudar para RSI?

Olá josemanoel,

Por favor dê uma olha da documentação:

https://www.mql5.com/pt/docs/indicators/irsi

Abraços,
Malacarne 

Documentação sobre MQL5: Indicadores Técnicos / iRSI
Documentação sobre MQL5: Indicadores Técnicos / iRSI
  • www.mql5.com
Indicadores Técnicos / iRSI - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 
josemanoel:

Bom dia crianças.

Tenho o código abaixo (somente linhas relevantes) que usa informações do MA. Como faço para mudar para RSI?

Olá josemanoel, apenas para contribuir com meus dois centavos, e caso não tenhas pensado nisso, lembre que não basta trocar de indicador e deves ajustar também a lógica da estratégia, já que a saída do RSI é um oscilador (0 a 100) e a saída do MA é um preço médio.
 

Obrigado Rodrigo e Rogério

Caro Rogério, tu me mostrou um indicador e os meios de capturar e usar valores são bem diferentes dos códigos de um EA.

Pesquisei bastante mas não encontrei um EA que use o RSI.

Por favor, onde encontro um exemplo de EA com RSI?


Obrigado meninos.


 
josemanoel:

Bom dia crianças.

Tenho o código abaixo (somente linhas relevantes) que usa informações do MA. Como faço para mudar para RSI?

Segue abaixo o seu código com as devidas modificações para capturar dados do indicador RSI

Mantive as suas linhas originais com "//"

//input int      MA_Period1=4;   // Moving Average Period
input int   RSIPeriod=13;         // period of RSI
//int MA1                                // ma handle 
int RSI1                                  // rsi handle  

double rsi01[];                        // use este no lugar da seu ma01[]

///////////////////////////////////////////////////////////////////////////////
onInit()
{
// MA1=iMA(_Symbol,_Period,MA_Period1,0,MODE_EMA,PRICE_CLOSE);
 RSI1=iRSI(Symbol(),period,RSIPeriod,PRICE_CLOSE);

// if(MA1<0 || MA2<0 ||MA3<0)
if(RSI1==INVALID_HANDLE)
 {
  Comment("Error Creating Handles for indicators - error: ",GetLastError(),"!!");
  return(-1);
 }
 return(INIT_SUCCEEDED);
}
///////////////////////////////////////////////////////////////////////////////
void OnTick()
{
// ArraySetAsSeries(ma01,true);  // the MA values arrays
 ArraySetAsSeries(rsi01,true);
// if(CopyBuffer(MA1,0,0,7,ma01)<0)
 if(CopyBuffer(RSI1,0,0,7,rsi01)==-1)
 {
  Comment(" 0001  -  Error copying Moving Average MA1 indicator buffer - error:",GetLastError());
  ResetLastError();
  return;
 }
 ///////////// Abaixo faço o código que usa ma01[n] sendo n=de 0 até 6 /////////////// 
 /////////// Abaixo faço o código que usa rsi01[n] sendo n=de 0 até 6 /////////////// 
}
// rsi01[0] contem o valor atual da linha do indicador RSI
 
josemanoel:

Obrigado Rodrigo e Rogério

Caro Rogério, tu me mostrou um indicador e os meios de capturar e usar valores são bem diferentes dos códigos de um EA.

Pesquisei bastante mas não encontrei um EA que use o RSI.

Por favor, onde encontro um exemplo de EA com RSI?


Obrigado meninos.


Olá josemanoel, perfeitamente, dá uma olhada no EA abaixo:

Renko Line Break vs RSI EA - expert para MetaTrader 5

Obs: esse EA foi projetado originalmente para Forex, tenha cuidado se for utilizar alguma operação diretamente em BM&FBovespa.

Melhores cumprimentos,

Rogério Figurelli 

 

Muito obrigado Sr Figurelli e Gelli

Problema resolvido!

Razão: