Bonjour à tous,
Je cherche à ajouter un Filtre de Butterworth sur un Repulse lissé (Cf. code ci-après).
Malgré tous mes efforts, le filtre de Butterworth reste désespérément à zéro (ligne rose dans le graphique attaché).
Si quelqu’un a une idée d’une modification à faire sur le code, je lui en serai reconnaissant.
Bonne journée à tout le monde.
Bull=exponentialAverage[5*Length](((3*Close)-(2*lowest[Length](low))-Open[Length])/Close*100)
Bear=exponentialAverage[5*Length]((Open[Length]+(2*highest[Length](high))-(3*Close))/Close*100)
Repuls=Bull-Bear
if barindex> Length then
IF BarIndex<2 THEN
Butterworth = Repuls
ELSE
Butterworth = Butterworth[1] - (Butterworth[2] / (G*3.414)) + (Repuls/(G*3.414))
ENDIF
endif
RETURN Repuls as "Smoothed Repulse", 0 as "0", Butterworth as "BW"
Bonjour, il y a un double problème du nombre de barres nécessaires avant d’avoir le calcul de repulse ( 6* length -1 plutôt que length ) , ainsi que de gestion des if barindex (ne pas mettre le <2 à l’intérieur du >length qui d’emblée ne sera pas <2), essayes avec ceci: (j’ai laissé en // commentaire grisé les lignes avant modification pour voir ce qui a changé, mais on peut enlever tous les commentaires // bien sûr)
Bull=exponentialAverage[5*Length](((3*Close)-(2*lowest[Length](low))-Open[Length])/Close*100)
Bear=exponentialAverage[5*Length]((Open[Length]+(2*highest[Length](high))-(3*Close))/Close*100)
Repuls=Bull-Bear
//if barindex> Length then
IF barindex<6*length+1 then// (6*length-1)+2 //remplace if BarIndex<2 THEN
Butterworth = Repuls
ELSE
Butterworth = Butterworth[1] - (Butterworth[2] / (G*3.414)) + (Repuls/(G*3.414))
ENDIF
//endif
RETURN Repuls as "Smoothed Repulse", 0 as "0", Butterworth as "BW"
Bonjour Noobywan,
Merci beaucoup, cela fonctionne en effet.
J’avais testé avec 5*Length mais ça n’avait pas marché.
Et le if barindex<2 figure dans le code d’origine du butterworth qui fonctionne sur les cours alors je l’avais laissé.
Un grand merci en tout cas et belle journée à toi.