Merci nous y sommes presque, mais sur un dax 1minute en faible volatilité par exemple, on s’aperçoit que notre ST change de sens sans que le ST soit cassé par la clôture.
D’ailleurs sur le graphe joint au dessus on voit qu’ à 13h il change de sens sans pourtant avoir cassé.
On devrait y arriver ! Pour bien comprendre le principe, tu pourrais nous en dire un peu plus sur la finalité et l’utilisation ? Merci. (ai bien compris qu’on essayé de filtrer la volatilité).
//Supertrend
multiplier = 3
//Période ATR
moy = AverageTrueRange[14](Close)
price = (high+low)/2
up = price+(multiplier*moy)
dn = price-(multiplier*moy)
once trend=1
//
//if close>up[1] then
//trend=1
//elsif close<dn[1] then
//trend=-1
//endif
if close>iline[1] then
trend=1
elsif close<iline[1] then
trend=-1
endif
if trend<0 and trend[1]>0 then
flag=1
else
flag=0
endif
if trend>0 and trend[1]<0 then
flagh=1
else
flagh=0
endif
if trend>0 and dn<dn[1] then
dn=dn[1]
endif
if trend<0 and up>up[1] then
up=up[1]
endif
if flag=1 then
up=price+multiplier*moy
endif
if flagh=1 then
dn=price-multiplier*moy
endif
if trend=1 then
ist=dn
else
ist=up
endif
if close> iline[1] then
color1=0
color2=255
color3=0
elsif close < iline[1] then
color1=255
color2=0
color3=0
endif
//final cut
top = ist=ist[1] and ist[1]<ist[2]
bottom = ist=ist[1] and ist[1]>ist[2]
if top or bottom then
lastprice=price
endif
if ist=ist[1] and close<iline[1] then
iline=lastprice+(multiplier*moy)//+(lastatr-moy)
elsif ist=ist[1] and close>iline[1] then
iline=lastprice-(multiplier*moy)
else
iline=ist
endif
//if close crosses over iline then
//iline=dn
//elsif close crosses under iline then
//iline=up
//endif
return iline coloured (color1,color2,color3) style(dottedline,2)//, ist coloured (color1,color2,color3) as "SuperTrend",trend
Bien sûr.
Mon idée est basée sur la remarque suivante : quand le prix casse le ST, le nouveau ST est calculé avec le dernier MidPrice et le dernier ATR, c’est le principe.
Mais dans les périodes de range qui durent, sur des UT comme par exemple le H1, je souhaite plus de justesse, d’ajustement, selon les variations de l’ATR, sur plusieurs heures (selon la période de la journée) c’est évident que l’on va avoir souvent de fortes variations de l’ATR.
Variations que le ST ne prend pas en compte si les prix vont contre le ST, le ST n’est recalculé qu’en cas de cassure ou de nouveau MidPrice s’éloignant du ST.
En résumé dans les zones de “plat” du ST, qui souvent sont des zones de range je veux un recalcul pour forcer le ST à s’ajuster, ce que nous voyons sur le graphe
Je vais essayer de voir si dans les périodes de range, ce nouvel ST peut être plus filtrant en utilisant l’ATR à l’instant T.
Et peut-être aussi réduire la période de l’ATR grâce à ce filtre dans les ranges.
Pas simple d’expliquer des choses que l’on trouve soi-même simple 🙂 .
Merci pour avoir compris ma demande et un double merci pour l’avoir traduite.
Je vais essayer de voir si dans les périodes de range, ce nouvel ST peut être plus filtrant en utilisant l’ATR à l’instant T.
D’après mes premières (courtes) observations, je pense que oui en effet. Moins d’aller/retour inutile selon moi. Merci pour les explications, si besoin d’autres modifications, tu pourras les poster à la suite.
J’ai trouvé une anomalie, sur le graphe joint on voit bien que dés que le nouvel ST prend en compte la valeur de l’ATR, il s’éloigne des prix d’une valeur qui ne correspond pas à la faible variation de l’ATR * coef, alors qu’une baisse de l’ATR devrait rapprocher le ST des prix.
Après cette première valeur erronée, les variations de l’ATR semblent s’appliquer, mais sur une base de départ non valide.
Cela est dut au fait que l’on prend le midprice sur la bougie qui constate le plat et non sur la bougie d’avant comme tu le fais remarquer. Tu peux changer la ligne 67 par:
lastprice=price[1]
Je retombe sur le sujet par hasard. Est-ce concluant dans ton trading ? Merci pour le retour.