0
focar em
5
Seguidores

Análise das razões da inconsistência entre o indicador MACD TV e FMZ (+ indicador EMA manuscrito)

Criado em: 2021-09-24 16:18:35, atualizado em:
comments   12
hits   1186

Hoje traduzi uma estratégia de TV, usei o indicador MACD, comparando FMZ e TV, a tendência é a mesma, mas a diferença de valores é um pouco grande, e eu passei uma noite trabalhando duro e fazendo várias tentativas para descobrir o motivo:

O projeto é desenvolvido em parceria com o Instituto de Pesquisas e Desenvolvimento Econômico (IPPED) e o Instituto de Pesquisas e Desenvolvimento Econômico (IPPED) da Universidade de São Paulo (USP). Resultados: 3 pontos de convergência. Mas o MACD não coincide com o gráfico da TV na página de resenhas.

O MACD é, na verdade, o indicador da EMA, e para simplificar a análise do problema, eu troquei a comparação com o MACD por uma comparação com a EMA. Mas depois de compará-los, também descobri inconsistências, e comecei a suspeitar que fosse o algoritmo da EMA, o FMZ, que não estava de acordo com a TV.

Depois de ler a introdução da TV sobre o algoritmo da EMA, escrevi um algoritmo de indicadores da EMA com as minhas próprias mãos (apêndice final) Comparando novamente, as descobertas são consistentes com o uso direto de TA.EMA, sem qualquer diferença.

Será que é um problema de origem?

Para simplificar ainda mais a análise, eu mudei o parâmetro do EMA para 2, reduzi o intervalo de detecção, puxei o gráfico para o extremo esquerdo, e eu quero começar a comparar o valor do EMA na primeira linha K e ver quando é que o inconsistência começou.

Quando cheguei ao primeiro eixo, fiquei surpreso ao descobrir que o 1o eixo K da TV e o 1o eixo K da FMZ não eram o mesmo tempo. Então, a partir da primeira linha, o EMA é diferente, e cada EMA posterior tem um peso sobre o EMA anterior. Não é de admirar que todos os dados que se seguem não sejam consistentes, a análise termina aqui, o motivo é estranho, mas, no final das contas, é encontrado.

function whl_ema(src, length) { var arr = []; var sum = 0; var alpha = 2 / (length + 1) for(var i in src){ if(i