CANAL RSI AVEC BREAKOUT
Forums › ProRealTime forum Français › Support ProBuilder › CANAL RSI AVEC BREAKOUT
- This topic has 15 replies, 4 voices, and was last updated 5 years ago by Martin35.
-
-
02/26/2019 at 9:02 AM #92314
Bonjour à tous,
Je souhaiterais une aide sur un indicateur qui avait été proposé par Louis Winthorp III, je l’ai modifié afin de faire un canal avec en son centre la WMA, donc 3 niveaux, 70% RSI, 50% RSI et 30% RSI.
Voici le code (et en fichier joint):
//////////////////////////////////////////////////
//_RSI_LEVELS_ONCE RSI70 = UNDEFINED
ONCE RSI30 = UNDEFINEDRSIORI = RSI[14](CLOSE)
UPORI = MAX(0,CLOSE-CLOSE[1])
DOWNORI = MAX(0,CLOSE[1]-CLOSE)
UPMAORI = WILDERAVERAGE[14](UPORI)
DOWNMAORI = WILDERAVERAGE[14](DOWNORI)RSREV = (100/((-1*70)+100)) – 1
IF 70 < RSIORI THEN
UPMAREV = UPMAORI * (1-(1/14))
DOWNMAREV = UPMAREV / RSREV
DOWNREV = (DOWNMAREV-(DOWNMAORI*(1-(1/14))))/(1/14)
RSI70 = CLOSE – DOWNREV
ELSIF 70 > RSIORI THEN
DOWNMAREV = DOWNMAORI * (1-(1/14))
UPMAREV = DOWNMAREV * RSREV
UPREV = (UPMAREV-(UPMAORI*(1-(1/14))))/(1/14)
RSI70 = CLOSE + UPREV
ENDIFRSI50 = WILDERAVERAGE[14](CLOSE)
RSIORI2 = RSI[14](CLOSE)
UPORI2 = MAX(0,CLOSE-CLOSE[1])
DOWNORI2 = MAX(0,CLOSE[1]-CLOSE)
UPMAORI2 = WILDERAVERAGE[14](UPORI2)
DOWNMAORI2 = WILDERAVERAGE[14](DOWNORI2)RSREV2 = (100/((-1*30)+100)) – 1
IF 30 < RSIORI2 THEN
UPMAREV2 = UPMAORI2 * (1-(1/14))
DOWNMAREV2 = UPMAREV2 / RSREV2
DOWNREV2 = (DOWNMAREV2-(DOWNMAORI2*(1-(1/14))))/(1/14)
RSI30 = CLOSE – DOWNREV2
ELSIF 30 > RSIORI2 THEN
DOWNMAREV2 = DOWNMAORI2 * (1-(1/14))
UPMAREV2 = DOWNMAREV2 * RSREV2
UPREV2 = (UPMAREV2-(UPMAORI2*(1-(1/14))))/(1/14)
RSI30 = CLOSE + UPREV2
ENDIFRETURN RSI70 COLOURED (0,0,0) STYLE (LINE,3) AS “_DAILY_RSI_70%_”, RSI50 COLOURED (153,0,153) STYLE (LINE,3) AS “_DAILY_RSI_50%_”, RSI30 COLOURED (0,0,0) STYLE (LINE,3) AS “_DAILY_RSI_30%_”
Ce que j’aimerais faire c’est tracer un niveau à chaque contact du prix >= aux niveaux 30% et 70% du canal RSI, ces niveaux resteront durant une période N, 20 par exemple, avant que ce niveau disparaisse et soit en attente du prochain tracage de niveau.
Je mets une capture d’écran pour illustrer tout ça. 🙂
Merci beaucoup.
02/26/2019 at 10:05 AM #92329Je pense que se sera plus visible en employant le bouton adéquat “Insert PRT code”
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849////////////////////////////////////////////////////_RSI_LEVELS_ONCE RSI70 = UNDEFINEDONCE RSI30 = UNDEFINEDRSIORI = RSI[14](CLOSE)UPORI = MAX(0,CLOSE-CLOSE[1])DOWNORI = MAX(0,CLOSE[1]-CLOSE)UPMAORI = WILDERAVERAGE[14](UPORI)DOWNMAORI = WILDERAVERAGE[14](DOWNORI)RSREV = (100/((-1*70)+100)) – 1IF 70 < RSIORI THENUPMAREV = UPMAORI * (1-(1/14))DOWNMAREV = UPMAREV / RSREVDOWNREV = (DOWNMAREV-(DOWNMAORI*(1-(1/14))))/(1/14)RSI70 = CLOSE – DOWNREVELSIF 70 > RSIORI THENDOWNMAREV = DOWNMAORI * (1-(1/14))UPMAREV = DOWNMAREV * RSREVUPREV = (UPMAREV-(UPMAORI*(1-(1/14))))/(1/14)RSI70 = CLOSE + UPREVENDIFRSI50 = WILDERAVERAGE[14](CLOSE)RSIORI2 = RSI[14](CLOSE)UPORI2 = MAX(0,CLOSE-CLOSE[1])DOWNORI2 = MAX(0,CLOSE[1]-CLOSE)UPMAORI2 = WILDERAVERAGE[14](UPORI2)DOWNMAORI2 = WILDERAVERAGE[14](DOWNORI2)RSREV2 = (100/((-1*30)+100)) – 1IF 30 < RSIORI2 THENUPMAREV2 = UPMAORI2 * (1-(1/14))DOWNMAREV2 = UPMAREV2 / RSREV2DOWNREV2 = (DOWNMAREV2-(DOWNMAORI2*(1-(1/14))))/(1/14)RSI30 = CLOSE – DOWNREV2ELSIF 30 > RSIORI2 THENDOWNMAREV2 = DOWNMAORI2 * (1-(1/14))UPMAREV2 = DOWNMAREV2 * RSREV2UPREV2 = (UPMAREV2-(UPMAORI2*(1-(1/14))))/(1/14)RSI30 = CLOSE + UPREV2ENDIFRETURN RSI70 COLOURED (0,0,0) STYLE (LINE,3) AS “_DAILY_RSI_70%_”, RSI50 COLOURED (153,0,153) STYLE (LINE,3) AS “_DAILY_RSI_50%_”, RSI30 COLOURED (0,0,0) STYLE (LINE,3) AS “_DAILY_RSI_30%_”02/26/2019 at 10:18 AM #9233002/26/2019 at 10:48 AM #92334Voilà ce que j’ai codé selon la description:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475////////////////////////////////////////////////////_RSI_LEVELS_ONCE RSI70 = UNDEFINEDONCE RSI30 = UNDEFINEDRSIORI = RSI[14](CLOSE)UPORI = MAX(0,CLOSE-CLOSE[1])DOWNORI = MAX(0,CLOSE[1]-CLOSE)UPMAORI = WILDERAVERAGE[14](UPORI)DOWNMAORI = WILDERAVERAGE[14](DOWNORI)RSREV = (100/((-1*70)+100)) - 1IF 70 < RSIORI THENUPMAREV = UPMAORI * (1-(1/14))DOWNMAREV = UPMAREV / RSREVDOWNREV = (DOWNMAREV-(DOWNMAORI*(1-(1/14))))/(1/14)RSI70 = CLOSE - DOWNREVELSIF 70 > RSIORI THENDOWNMAREV = DOWNMAORI * (1-(1/14))UPMAREV = DOWNMAREV * RSREVUPREV = (UPMAREV-(UPMAORI*(1-(1/14))))/(1/14)RSI70 = CLOSE + UPREVENDIFRSI50 = WILDERAVERAGE[14](CLOSE)RSIORI2 = RSI[14](CLOSE)UPORI2 = MAX(0,CLOSE-CLOSE[1])DOWNORI2 = MAX(0,CLOSE[1]-CLOSE)UPMAORI2 = WILDERAVERAGE[14](UPORI2)DOWNMAORI2 = WILDERAVERAGE[14](DOWNORI2)RSREV2 = (100/((-1*30)+100)) - 1IF 30 < RSIORI2 THENUPMAREV2 = UPMAORI2 * (1-(1/14))DOWNMAREV2 = UPMAREV2 / RSREV2DOWNREV2 = (DOWNMAREV2-(DOWNMAORI2*(1-(1/14))))/(1/14)RSI30 = CLOSE - DOWNREV2ELSIF 30 > RSIORI2 THENDOWNMAREV2 = DOWNMAORI2 * (1-(1/14))UPMAREV2 = DOWNMAREV2 * RSREV2UPREV2 = (UPMAREV2-(UPMAORI2*(1-(1/14))))/(1/14)RSI30 = CLOSE + UPREV2ENDIF//low breaklevelperiod=20if low crosses under RSI30 thenlowstartbar=barindexlowstartlevel=rsi30endifif lowstartbar>0 and barindex-lowstartbar<=levelperiod thendrawsegment(lowstartbar,lowstartlevel,barindex,lowstartlevel) coloured(255,0,0)drawbarchart(lowstartlevel,lowstartlevel,lowstartlevel,rsi30) coloured(160,160,160,150)endifif barindex-lowstartbar=levelperiod thendrawsegment(barindex,lowstartlevel,barindex,RSI30) coloured(255,0,0)endif//high breakif high crosses over RSI70 thenhighstartbar=barindexhighstartlevel=rsi70endifif highstartbar>0 and barindex-highstartbar<=levelperiod thendrawsegment(highstartbar,highstartlevel,barindex,highstartlevel) coloured(0,255,0)drawbarchart(highstartlevel,highstartlevel,highstartlevel,rsi70) coloured(160,160,160,200)endifif barindex-highstartbar=levelperiod thendrawsegment(barindex,highstartlevel,barindex,RSI70) coloured(0,255,0)endifRETURN RSI70 COLOURED (0,0,0) STYLE (LINE,3) AS "_DAILY_RSI_70%_", RSI50 COLOURED (153,0,153) STYLE (LINE,3) AS "_DAILY_RSI_50%_", RSI30 COLOURED (0,0,0) STYLE (LINE,3) AS "_DAILY_RSI_30%_"Ce serait très sympa de nous expliquer comment tu utilises ou compte utiliser cet indicateur ? J’ai bien compris qu’il fallait détecter le retour à la moyenne, mais si tu pouvais nous en dire plus 😉 Merci. (voir images).
1 user thanked author for this post.
02/26/2019 at 10:49 AM #9233702/26/2019 at 11:32 AM #92347Merci Nicolas, toujours rapide dans lӎlaboration des codes.
Je trouve que ce code est pratique pour déterminer des niveaux de prix sensibles. Cela crée de bons supports et résistances, donc très basiquement en dessous de cette zone on vend, au-dessus on achète.
Une autre idée plus simple encore :
Tracer un niveau dés que le RSI30 (ou RSI70) est touché, quand le prix devient >= à la borne opposée, on affiche le nouveau niveau.
Si c’est possible de tracer ces niveaux sans drawline mais en dur si cela est faisable.
Merci ^^
02/26/2019 at 12:04 PM #92350Tracer un niveau dés que le RSI30 (ou RSI70) est touché, quand le prix devient >= à la borne opposée, on affiche le nouveau niveau.
Donc c’est la même chose mais avec une ligne continue finalement ? Dommage car j’ai codé telle que sur ta première image ! Bref. 😥
1 user thanked author for this post.
02/26/2019 at 12:15 PM #92352Ah non non c’est super ton code, (avec les niveaux en dur) c’est exactement ce que je recherchais, donc c’est parfait. C’est juste des possibilités de niveaux pertinents, on pourrait aussi, au lieu de tracer des niveaux tous les N périodes, changer le tracé du niveau dés que le prix, une fois touché la borne basse, par exemple, touche la WMA14 du mileu, à partir de là au prochain contact borne haute ou basse, il y aura un nouveau niveau.
02/26/2019 at 12:21 PM #9235302/26/2019 at 1:21 PM #92358Sur le même principe de tracés de niveaux avec un canal de Donchian, voire capture.
1/ – Tracé d’un nouveau plus haut lors d’un breakout haussier, si le prix retouche la WMA14 (qu’on pourra remplacer par un autre indicateur de tendance au choix, etc…), un nouveau plus haut peut être établis, ou un nouveau plus bas.
2/ – Tracé d’un nouveau plus bas lors d’un breakout baissier, si le prix retouche la WMA14 (qu’on pourra remplacer par un autre indicateur de tendance au choix, etc…), un nouveau plus bas peut être établis, ou un nouveau plus haut.
Je n’ai pas souvenir d’avoir déjà vu des plus hauts tracés ainsi, ça ressemble un peu au halftrend.
Voilà ça sera tout ! 😀
Il faudrait penser à mettre des possibilités de dons ou autre financement afin de remercier le staff de Prorealcode.
02/26/2019 at 1:52 PM #9236202/26/2019 at 2:02 PM #9236303/01/2019 at 6:41 PM #9266003/01/2019 at 7:20 PM #92663Salut Swapping, disons que c’est le même principe qu’avec le Canal de Donchian, Bollinger, et autre stochastique, etc.
La petite différence est que la WMA 14/EMA 27 DAILY sont des moyennes mobiles très suivies étant les 50% du RSI classique 14 périodes, les niveaux tracés lors de ces breakout sont donc pertinents, et ils sont rares. Contrairement aux breakout d’un Donchian 20 périodes daily avec cassures régulières, mais tout aussi efficace. Enfin rien de neuf, mais ça marche bien.
Sinon si tu arriverais à coder mes idées expliquées plus haut ça serait cool. 😀
Surtout celui avec le canal de Donchian, mais c’est le même principe qu’avec le Canal RSI.
Merci !
03/28/2019 at 6:12 PM #94918 -
AuthorPosts
Find exclusive trading pro-tools on