Bonjour Nicolas,
Toujours dans le même principe, on pourrait ajouter aux précédents niveaux tracés lors de breakout avec filtre, un niveau lors du contact du prix avec le RET (50% du Donchian dans ce cas), les filtres seraient en revanche borne haute, et borne basse, au lieu d’un filtre central :
– Si le prix devient égal à la borne haute puis chute à une valeur égale ou inférieure au RET, un niveau se trace sur ce premier contact.
– Si le prix devient égal à la borne basse puis remonte à une valeur égale ou supérieure au RET, un niveau se trace sur ce premier contact.
J’ai, en reprenant ton code, bidouillé pour réaliser celui-ci, évidemment mal, car les instructions dans le code doivent être mal réparties (voir capture, en rouge ce que l’indicateur fait, en bleu ce qu’il devrait tracer).
Le code erroné bidouillé :
ONCE ILINE = UNDEFINED
ret = (highest[period](high)[0]+lowest[period](low)[0])/2
filterh=highest[PD1](high)[0]
filterl=lowest[PD1](low)[0]
if high = filterh then
hhstart=barindex
lllevel=0
endif
if low = filterl then
llstart=barindex
hhlevel=0
endif
if high crosses over ret[1] and barindex>hhstart and hhlevel=0 then
hhlevel=ret[1]
endif
if low crosses under ret[1] and barindex>llstart and lllevel=0 then
lllevel=ret[1]
endif
if (hhlevel>0 and hhlevel[1]=0) or (lllevel>0 and lllevel[1]=0) then
iline=max(hhlevel,lllevel)
endif
return ILINE,filterh, filterl,ret
Merci… 🙂
Si tu passes par là pour arranger ce code ça serait formidable. 🙂
Merci Nicolas ! 😀
Bonjour à tous,
Je tente toujours de modifier le code afin qu’il soit juste, mais il manque la prise en compte du filtre haut lors d’une cassure du RET. En rouge ce que le code fait, et en bleu ce qu’il devrait faire (voir capture).
ONCE ILINE = UNDEFINED
HH = HIGHEST[20](HIGH)[0]
LL = LOWEST[20](LOW)[0]
RET = (HH+LL)/2
IF HIGH >= HH THEN
HHSTART = BARINDEX
LLLEVEL = 0
ENDIF
IF LOW <= LL THEN
LLSTART = BARINDEX
HHLEVEL = 0
ENDIF
IF HIGH > RET[0] AND BARINDEX > HHSTART AND HHLEVEL = 0 THEN
HHLEVEL = RET[0]
ENDIF
IF LOW < RET[0] AND BARINDEX < LLSTART AND LLLEVEL = 0 THEN
LLLEVEL = RET[0]
ENDIF
IF (HHLEVEL>0 AND HHLEVEL[1]=0) OR (LLLEVEL>0 AND LLLEVEL[1]=0) THEN
ILINE = MAX(HHLEVEL,LLLEVEL)
ENDIF
RETURN HH COLOURED (0,0,0) STYLE (LINE,3) , RET COLOURED (153,0,153) STYLE (LINE,3) , LL COLOURED (0,0,0) STYLE (LINE,3), ILINE COLOURED (255,0,0) STYLE (LINE,3)
Il doit manquer une ligne ou deux de code, mes compétences sont faibles. Help. 🙂
Merci, et bon début de semaine.
Désolé si j’ai fait plusieurs sujets ressemblants, je suppose que c’est pour cela que je n’ai pas de réponses.
Bonne journée. 🙂
Quelle est le bon indicateur à corriger finalement ? J’en vois 2 différents dans ce sujet.
Le dernier code est celui qui se rapproche le plus de ce que je veux, sauf qu’il ne prend que la moitié des cassures.
Merci.
Cela te semble réalisable ?
Merci pour la réponse, mais ce n’est pas ça.
Voir capture avec ce changement de code.
En changeant le code avec le signe “>” ligne 19 j’ai tous les breakout RET avec filtre borne haute.
Et avec mon code avec le signe “<” ligne 19 j’ai tous les breakout RET avec filtre borne basse.
Il me faudrait les cassures des filtres bornes haute et basse, comme sur cette capture (en rouge ce que fait mon code avec “<“, en bleu la seconde moitié des cassures) :
Merci pour ton aide.
CFD Dax avec horaires 8H/22H, sans données week-end.
Avec tous ces topics je n’arrive plus à suivre, ou c’est peut-être mon rhume des foins .. 😮
Bref, la version avec le RSI centré de ce post: https://www.prorealcode.com/topic/breakout-canal-rsi-avec-filtre/#post-93585
Est-elle correcte vis à vis du tracement de cette ligne que tu souhaites obtenir ? Car c’est bien le même principe non ?
En fait avec le Canal RSI, les niveaux tracés étaient les plus haut et plus bas de ce canal RSI avec le filtre de la WMA centrale.
La différence là, c’est que les filtres, au lieu d’être la WMA, sont borne haute et borne basse (que ce soit sur un canal RSI ou Donchian, même principe), et que les niveaux tracés sont au contact du RET central (ou autre moyenne mobile centrale, peu importe).
– Si le prix devient égal à la borne haute puis chute à une valeur égale ou inférieure au RET, un niveau se trace sur ce premier contact à la valeur du RET.
– Si le prix devient égal à la borne basse puis remonte à une valeur égale ou supérieure au RET, un niveau se trace sur ce premier contact à la valeur du RET.
J’espère que c’est plus clair… 🙂