Bonjour,
Je souhaite afficher une moyenne mobile pondérée, (par exemple une somme des MM3 et MM20).
Par contre mon indicateur ne s’affiche pas sur les 20 premières périodes, la MM20 n’étant pas encore définie. Je souhaite donc afficher uniquement la MM3 durant ce laps de temps puis la MM20 quand la valeur devient disponible. J’ai essayé le code ci-dessous mais je n’ai apparemment pas la bonne condition pour indiquer que la valeur n’est pas encore définie.
sma3 = Average[3]
sma20 = Average[20]
if sma20 = undefined then
smasum = sma3
else
smasum = 0.5*sma3+0.5*sma20
endif
return smasum
Merci d’avance pour votre aide
On ne peut pas tester “undefined”, dans ce cas il faudrait plutôt tester la valeur 0, soit :
if sma20 = 0 then …
ou sinon tester le BARINDEX pour savoir si l’historique est suffisant:
sma3 = Average[3]
sma20 = Average[20]
if barindex<20 then
smasum = sma3
else
smasum = 0.5*sma3+0.5*sma20
endif
return smasum
non testé
Bonjour,
Merci beaucoup Nicolas pour ta réponse précise et rapide.
Je ne connaissais pas le BARINDEX, c’est ce que je cherchais
Comme “undefined” n’est pas évaluable, personnellement je teste les indicateurs en question (ici sma) en les comparant à une valeur qu’ils ne devraient pas avoir. En effet, parfois les indicateurs sont complexes et peuvent dépasser le “BarIndex” estimé de façon fixe préalablement.
Exemple :
if indicateur1 >0 AND indicateur2 >-999 …. then
Go = 1 //…. alors c’est OK
else
Go = 0//… suite du code ignoré
endif