Bonjour
Je bloque sur un indicateur, le code ci-joint retourne la valeur 1 si plus bas sur les 50 dernières périodes, je souhaiterais que ce signal perdure sur 10 bougies après le dernier plus bas détecté (cf photo).
J’ai essayé plusieurs choses sans résultat.
ll = lowest[50] (low)
if low = ll then
signal = 1
else
signal = 0
endif
return
On enregistre le numéro de la barre qui voit le signal (BARINDEX) et si le décompte depuis ce chiffre est supérieur à 10, alors on annule le signal, on le repasse à la valeur 0 :
ll = lowest[50] (low)
if low = ll then
signal = 1
startbar=barindex
endif
if barindex-startbar>10 then
signal=0
endif
return signal
Merci Nicolas j’ai compris la logique mais je n’aurais jamais trouvé seul.
Et pour le coder sous forme de condition afin de réutiliser cette condition ultérieurement ?
period = 50
ll = lowest[period](low)
indicator2 = BollingerDown[20](close)
c2a = (low < indicator2) OR (low[1] < indicator2[1] OR low[2] < indicator2[2] OR low[3] < indicator2[3] OR low[4] < indicator2[4] OR low[5] < indicator2[5] OR low[6] < indicator2[6] OR low[7] < indicator2[7] OR low[8] < indicator2[8] OR low[9] < indicator2[9])
startbar = barindex
if barindex - startbar > 0 then
if low = ll then
c1a = 1
endif
endif
if c1a AND c2a then
signal = 1
else
signal = 0
endif
return signal
d’ailleurs au passage y a t’il moyen de simplifier c2a avec for i = 1 to 9 ?
Oui on peut simplifier avec une boucle, mais tu auras le même résultat, tu peux essayer .