Aplicar indicador sobre outro indicador

 

Olá.

Nomarlmente aplicamos indicadores sobre os preços (velas). Nas mais variadas combinações tais como Bollinger + RSI.

Agora, como faço por exemplo aplicar uma média móvel sobre os valores do RSI calculados (não a média móvel no preço)?

Estou com dificuldades de utilizar o indicador RENKO + outro indicador qualquer.


Alguém pode dar algumas ideias?

 
rodrigoLBControl:

Olá.

Nomarlmente aplicamos indicadores sobre os preços (velas). Nas mais variadas combinações tais como Bollinger + RSI.

Agora, como faço por exemplo aplicar uma média móvel sobre os valores do RSI calculados (não a média móvel no preço)?

Estou com dificuldades de utilizar o indicador RENKO + outro indicador qualquer.


Alguém pode dar algumas ideias?

Em primeiro lugar, o MT5 não tem Renko.

Então, você começou com a premissa válida de tentar pentear um chimpanzé, e acabou virando um Hair Styler de um Gorila...

Vamos voltar e ficar com o exemplo do RSI...

você pode criar um handle com o iRSI(), nativo do MQL5, e aplicar qualquer cálculo que vc quiser... inclusive uma média movel simples, em um código seu, usado posteriormente à obtenção dos dados do RSI... Exemplo de uma função de Média Simples (bifurcada pelo tipo de dado), onde você passa um vetor com dados quaisquer, o período, e a posição inicial do cálculo da média desejada:

//----------------------------------------------------------------------------------------------------------------
// SIMPLE                   Calculates a SMA
//----------------------------------------------------------------------------------------------------------------
double ML_MA_Simple( const long &array[], int period, int position ) {
    long sum = 0;

    // no data to calculate...
    if (position<period)  {  return 0;  }

    for (int i=position-period+1; i<=position; i++)   { sum += array[i]; }

    return  (double)(sum / period);
}
// AS DOUBLE...////////////////////////////////////////////////////////////////////////////////////////////////////
double ML_MA_Simple( const double &array[], int period, int position ) {
    double sum = 0;

    // no data to calculate...
    if (position<period)  {  return 0;  }

    for (int i=position-period+1; i<=position; i++)   { sum += array[i]; }

    return  sum / period;
}

;)

 
rodrigoLBControl:

Olá.

Nomarlmente aplicamos indicadores sobre os preços (velas). Nas mais variadas combinações tais como Bollinger + RSI.

Agora, como faço por exemplo aplicar uma média móvel sobre os valores do RSI calculados (não a média móvel no preço)?

Estou com dificuldades de utilizar o indicador RENKO + outro indicador qualquer.


Alguém pode dar algumas ideias?

Ou, Você está falando, da maneira visual? no Gráfico??
 
Flavio Jarabeck:

Em primeiro lugar, o MT5 não tem Renko.

Então, você começou com a premissa válida de tentar pentear um chimpanzé, e acabou virando um Hair Styler de um Gorila...

Vamos voltar e ficar com o exemplo do RSI...

você pode criar um handle com o iRSI(), nativo do MQL5, e aplicar qualquer cálculo que vc quiser... inclusive uma média movel simples, em um código seu, usado posteriormente à obtenção dos dados do RSI... Exemplo de uma função de Média Simples (bifurcada pelo tipo de dado), onde você passa um vetor com dados quaisquer, o período, e a posição inicial do cálculo da média desejada:

;)


Olá Flávio.

Sim, o RENKO estou ciente que não é nativo. Tem que fazer uma gambiarra para utilizá-lo. Vamos ao mais simples, depois quebro a cabeça para adaptar o RENKO.

Entendi sua posição, por exemplo fazer uma média móvel no braço utilizando loops com os dados do Array do RSI por exemplo.


Haveria outra maneira utilizando as rotinas do MT5 nativas?

Por exemplo, faço a chamada do RSI utilizando como fonte de fatos as velas do preço do ativo:

//Chamada da rotina RSI, fonte de dados o preço

myRSIDefinition = iRSI(_Symbol,_Period,RSI_Periodo,PRICE_CLOSE);

//Array da saída RSI

CopyBuffer(myRSIDefinition,0,0,5,RSI_Array);



Agora a pergunta... Como poderia chamar a rotina iMA utilizando o RSI_Array como fonte de dados, sem a necessidade de desenvolver no braço o cálculo da média movel?

Mavg_Definition = iMA(_Symbol,_Period,Periodos,0,Tipo_de_Media,PRICE_CLOSE);

CopyBuffer(Mavg_Definition,0,0,nVelas,MavgArray);