Dúvidas com relação ao RSI - página 2

 
Seria interessante também confirmar em quais partes do EA cada trecho de código está inserido... Certifique-se de que iRSI esteja dentro de OnInit( ) e que ArraySetAsSeries( ) e CopyBuffer( ) estejam dentro de OnTick( )...
 
Divergencia RSI
 
ewertonm:

Muito bom, uma imagem vale mais que mil palavras! Obrigado.

Acredito que você está muito perto, cuide a observação do Malacarne para inicializar os manipuladores dentro de OnInit(), isso evita uma nova chamada a cada tick.

Mas vendo a imagem me parece que o erro agora está no valor do período do RSI utilizado no código, que temos que confirmar se é 14 como no gráfico plotado, você tem o log ou código da atribuição de per[i]?

Outra possibilidade é estar misturando os símbolos, já que está com um vetor de manipuladores. Precisamos checar a posição de EUR/USD e o valor do período para ele, que tem que bater em 14.

 
bom, coloquei o codigo q estou trabalhando, acho q fica melhor para analisarmos...  e entender melhor o resultado
 
ewertonm:
bom, coloquei o codigo q estou trabalhando, acho q fica melhor para analisarmos...  e entender melhor o resultado
Tem certeza que quer abrir o seu código fonte aqui? 
 
entao, esta verificação eu ja havia feito, e nao sei pq, usando a atribuição de per[i] como 14. Assim como esta no codigo
 
figurelli:
Tem certeza que quer abrir o seu código fonte aqui? 
sem problemas, é só uma parte do código, e é só o parte do projeto que estou testando...
 
ewertonm:
sem problemas, é só uma parte do código, e é só o parte do projeto que estou testando...

Perfeitamente, o bug parece estar exatamente onde eu suspeitava, note a declaração:

// --- Parametro Calcular RSI
input int             per_0         =14;           // Periodo para calcular RSI

 E aqui é feito assim:

 if(CopyBuffer(RSI_handle[N],0,per[N],1,RSI_handlex)<=0)

 O correto deveria ser, já que essa é a variável que está armazenando o período de RSI para todos símbolos:

 if(CopyBuffer(RSI_handle[N],0,per_0,1,RSI_handlex)<=0)
 
figurelli:

Perfeitamente, o bug parece estar exatamente onde eu suspeitava, nota a declaração:

 E aqui é feito assim:

 O correto deveria ser, já que essa é a variável que está armazenando o período de RSI para todos símbolos:

Mas na linha 111 ele define 

per[0]=per_0;
 
Malacarne:

Mas na linha 111 ele define 

Boa, é verdade, e N==0?
Razão: