J'essaye de coder la MACDV pour l'intégrer à mon système de trading et j'utilise les formules suivantes (code complet : MACDVvbeta06):
MACD-V = [[EMA(12,close) - EMA(26,close)] / ATR(26)] * 100 (personnellement j'utilise 9 et 19 périodes).
ATR:
A = high – low
B = ABS(high – close[i+1])
C = ABS(low – close[i+1])
TrueRange = MAX(A,MAX(B,C))
ATR(26) = WilderAverage 26 périodes du TrueRange ce qui revient au calcul d'une EMA ((26 périodes x2)-1) du TrueRange (personnellement j'utilise le code avec l'EMA et 19 périodes pour être cohérent avec la MACD).
J'ai besoin d'utiliser une boucle (car je code ensuite des signaux) et j'ai 2 erreurs qui me bloquent:
Erreur N°1: Dans l'indicateur MACDVvbeta06 - DEBUG ci-joint:
- La ligne en bleu est celui de la fonction express "AtrAbs"
- La ligne en rose fuchsia est l'ATR codé en express et visiblement il y a une différence donc ma MACD-V codée est différence de la MACD_v de la Nano (indicateur hors indicateur express)
- Question N°1: Est-ce qu'il y a une erreur dans mon code express True Range ou ATR ou est-ce que la fonction express "AtrAbs" utilise une autre moyenne mobile pour calculer la moyenne du True Range (peut-être la Smoothed Moving Average et pas la Wilder ? comme je l'ai vu sur internet pour le calcul de la MACD_v).
Erreur N°2: mon ATR codé en express en rose fuchsia descend très bas (-514490 pts sur le SP500 en 5 minutes voir ci-dessous) sur la période en cours (la période [ 0 ]) ce qui évidemment fausse le calcul de la MACD_v car la division de la MACD par 514490 donne une valeur proche de 0, donc la ligne MACD_v est toujours égale à 0 sur la période [ 0 ].
![Crying or Very Sad :cry:](./../images/smilies/icon_cry.gif)
Question N°2: comment éviter cette erreur de calcul ? J'ai essayé de reduire la boucle à FinalBarIndex() -1 mais cela ne marche pas.
Question N°3: pourquoi est-ce que la plateforme affiche les indicateurs en période [ 0 ] ? en toute rigueur tant que la période n'est pas terminée on ne devrait pas avoir de calcul en situation de CalculateAtEveryTick(false), peut-on donc éviter ceci ?
Est-ce que quelqu'un aurait une idée pour mes 3 questions ?
![Idea :idea:](./../images/smilies/icon_idea.gif)
Mille merci d'avance car là je suis bien bloqué.
![Embarrassed :oops:](./../images/smilies/icon_redface.gif)
Cordialement,
K.