Type/to search
0
Follow
5
Followers
Análise das razões da inconsistência entre o indicador MACD TV e FMZ (+ indicador EMA manuscrito)
FAQ
Created 2021-09-24 16:18:35  
 12
 1454

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<length-1) {
arr[i] = null;
sum += src[i];
}else if(i==length-1){
arr[i] = (sum+src[i])/length;
}else{
arr[i] = alpha * src[i] + (1 - alpha) * arr[i-1]
}
}
return arr;
}

Related Recommendations
Comment
All comments (12)

    今天我又在策略中用到这个指标,比较后发现日线和TV中相差不大,甚至完全一致,但低级别的差别很大,最后一翻尝试,也有了些收获。

    5 years ago

    下面有朋友留言说无所谓、实际这个是要看需求的、如果自己或者客户有这个需求、对我们做开发的人来说,不管它有用没用,你都得认认真真搞明白的。

    5 years ago

    胡哥,那么会不会 FMZ 的 SuperTrend 的指标和TV的总是晚一根K线时间,也是这个原因呢???
    这个问题总是会影响到下单 或者 转向的机会的滞后。。。。愁死我了。。。

    5 years ago

    只要不是高频,趋势类策略不必计较晚点进场早点进场,如果非常在意这些说明策略容错能力有问题,那么指标就更无所谓了

    5 years ago

    只要不是高频,趋势类策略不必计较晚点进场早点进场,如果非常在意这些说明策略容错能力有问题,那么指标就更无所谓了

    5 years ago

    只要不是高频,趋势类策略不必计较晚点进场早点进场,如果非常在意这些说明策略容错能力有问题,那么指标就更无所谓了

    5 years ago

    「TV中的第1根K线和FMZ中的第1根K线不是同一个时间」具体是指?
    K线长度不对等也不影响指标计算的,只要K线数据一样。

    5 years ago

    影响的,每一根都有权重,比如小时线、TV中是第1根是:12:00,而FMZ中第1根是13:00,差了1根,这样计算时,假设EMA参数为2,这样计算第3根K线(FMZ中是第2根)的EMA,FMZ中EMA = (C2+C3)/2,而TV中EMA=(C1+C2)/21/3+C32/3,完全不同的,

    5 years ago

    是K线数据BAR数量不一样,会影响迭代计算的数值。 对应的BAR数据是一样的。

    5 years ago

    胡哥,梦大,那么会不会 FMZ 的 SuperTrend 的指标和TV的总是晚一根K线时间,也是这个原因呢???
    这个问题总是会影响到下单 或者 转向的机会的滞后。。。。愁死我了。。。

    5 years ago

    如果K线数据一样,只是多一根少一根, 不应该差别很大的。。。

    5 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)