Valor de retorno do handle de um indicador

 

Bom! Estou com uma duvida em relação a chamada dos indicadores no codigo, pois apesar de saber programar isso, eu ainda não entendei a estrutura por trás disso. Quando chamo um indicador no meu codigo, eu o chamo dessa maneira:

int OnInit()
  {
//---
   rsi = iRSI(Symbol(),Period(),14,PRICE_CLOSE);
//---
   return(INIT_SUCCEEDED);
  }

e indico essa variavel "ma" como sendo int. Então eu exibi o valor dessa variavel "ma" por curiosidade, pra saber o que afinal ela guarda, e me retornou o numero "10". Tentei com A média movel e me retornou o mesmo valor. Afinal, qual é a logica por trás disso, porque a váriavel tem que ser int, e retorna o valor 10 ?

 

Olá Henrique,

Segue como chamar os valores do iRSI, como exemplo.

void OnTick()
{
   
   double RSIArrayClose[];
      
   int RSIDefClose = iRSI(_Symbol,_Period,14,PRICE_CLOSE);
   ArraySetAsSeries(RSIArrayClose,true);
   CopyBuffer(RSIDefClose,0,0,3, RSIArrayClose);
  
   double RSIClose0 = NormalizeDouble(RSIArrayClose[0],2);
}

O valor final está na variável RSIClose0.

Para chamar este valor coloque dentro do OnTick() para ter o valor sempre atualizado.

 

hahaha boa pergunta!

Tinha reparado nisso mas nunca fui atrás para saber pq o retorno era sempre o 10

 
HENRIQUE ARAUJO DOS SANTOS:

Bom! Estou com uma duvida em relação a chamada dos indicadores no codigo, pois apesar de saber programar isso, eu ainda não entendei a estrutura por trás disso. Quando chamo um indicador no meu codigo, eu o chamo dessa maneira:

e indico essa variavel "ma" como sendo int. Então eu exibi o valor dessa variavel "ma" por curiosidade, pra saber o que afinal ela guarda, e me retornou o numero "10". Tentei com A média movel e me retornou o mesmo valor. Afinal, qual é a logica por trás disso, porque a váriavel tem que ser int, e retorna o valor 10 ?

Olá Henrique,

os handles de indicadores são identificados por um sequence  iniciando em 10. Se você usar mais um indicador o handle será o 11 e assim por diante.

Agora porque começa com 10 ? Para onde aponta os handles 0 a 9 ? Não tenho a menor ideia.

Os dados de um indicador são obtidos usando CopyBuffer() como exemplificado acima.

 
Rogerio Giannetti Torres:

Olá Henrique,

os handles de indicadores são identificados por um sequence  iniciando em 10. Se você usar mais um indicador o handle será o 11 e assim por diante.

Agora porque começa com 10 ? Para onde aponta os handles 0 a 9 ? Não tenho a menor ideia.

Os dados de um indicador são obtidos usando CopyBuffer() como exemplificado acima.

Boa!! A duvida era mais em relação ao handler, eu sei copiar os dados e bla bla bla... kkk