Hoy he traducido una estrategia de TV, usando el indicador MACD, comparando FMZ y TV, las tendencias son idénticas, pero las diferencias en los valores son un poco grandes, y me he pasado una noche trabajando duro para averiguar la razón:
Los indicadores se pueden encontrar en: TA.MACD, talin.MACD, y en una base de datos de código abierto de la comunidad. Resultados: Los tres son exactamente iguales. Pero la MACD no coincide con el gráfico de TV en la página de respuestas.
El MACD es en realidad el indicador EMA calculado más allá, y para simplificar el análisis del problema, he cambiado la comparación con el MACD por la comparación con el EMA. Pero también encontré inconsistencias, y empecé a sospechar que era el algoritmo de la EMA FMZ y el de la TV.
Después de leer la introducción de TV sobre el algoritmo de EMA, escribí un algoritmo de indicadores de EMA con mis propias manos (apéndice final) Una vez más, los resultados coinciden con los de TA.EMA y no hay ninguna diferencia.
¿Es un problema de fuentes de datos?
Para simplificar aún más el análisis, cambié el parámetro de la EMA a 2, reducí el alcance de la detección, arrastré el gráfico a la izquierda, y me gustaría comparar los valores de la EMA desde la primera línea K para ver cuándo comenzó la discrepancia.
Cuando llegué a la primera línea, me sorprendió descubrir que la primera línea K de la TV y la primera línea K de la FMZ no eran el mismo tiempo, la TV tenía que salir una línea más hacia adelante. En este caso, el valor de la EMA es diferente a partir de la primera, y cada EMA posterior tiene un peso sobre la anterior. No es de extrañar que después de todo los datos fueran inconsistentes, el análisis terminó aquí, la razón es extraña, pero al final se encontró.
function whl_ema(src, length) { var arr = []; var sum = 0; var alpha = 2 / (length + 1) for(var i in src){ if(i