This new indicator to detect RSI divergences simply use the last two crossovers with the overbought or oversold areas of the oscillator.
Divergences are plotted on the RSI and signals are given with red/green histogram, in order to use them in a trading system.
The variable “minimalBars” is a filter to limit the detection of divergences when the RSI remains under the oversold zone or above the overbought zone of this minimum period.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
//PRC_AnotherRSIdivergences | indicator //25.02.2019 //Nicolas @ www.prorealcode.com //Sharing ProRealTime knowledge // --- settings RSIp=14 //RSI period obLevel=70 //overbought level osLevel=30 //oversold level minimalBars=5 //minimal count of bars where RSI is ob or os // --- end of settings irsi = rsi[RSIp] ob = irsi>obLevel os = irsi<osLevel if ob then if not ob[1] then maxrsi = 0 maxprice = 0 firstobbar = barindex endif maxrsi=max(maxrsi,irsi) maxprice=max(maxprice,high) if maxrsi<>maxrsi[1] then maxrsibar=barindex endif endif if os then if not os[1] then minrsi = 100 minprice = close*100 firstosbar = barindex endif minrsi=min(minrsi,irsi) minprice=min(minprice,low) if minrsi<>minrsi[1] then minrsibar=barindex endif endif divsell=0 if irsi crosses under obLevel then //verif divergence div = maxprice>oldmaxprice and maxrsi<oldmaxrsi and (barindex-firstobbar)>=minimalBars if div then drawsegment(oldmaxrsibar,oldmaxrsi,maxrsibar,maxrsi) coloured(200,0,0) drawarrowdown(maxrsibar,maxrsi) coloured(200,0,0) divsell=osLevel endif oldmaxrsi = maxrsi oldmaxprice = maxprice oldmaxrsibar = maxrsibar endif divbuy=0 if irsi crosses over osLevel then //verif divergence div = minprice<oldminprice and minrsi>oldminrsi and (barindex-firstosbar)>=minimalBars if div then drawsegment(oldminrsibar,oldminrsi,minrsibar,minrsi) coloured(0,200,0) drawarrowup(minrsibar,minrsi) coloured(0,200,0) divbuy=osLevel endif oldminrsi = minrsi oldminprice = minprice oldminrsibar = minrsibar endif return irsi style(line,2) as "RSI",obLevel coloured(168,168,168) style(dottedline,1) as "overbought level", osLevel coloured(168,168,168) style(dottedline,1) as "oversold level", divsell coloured(200,0,0) style(histogram) as "sell divergence", divbuy coloured(0,200,0) style(histogram) as "buy divergence" |
Share this
No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.
ProRealTime ITF files and other attachments :PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials
Parfait Nicolas, du très bon travail car les divergences sont toujours intéressantes à exploiter sur n’importe quel actif donc , je prends 😉
Merci beaucoup Nicolas, très utile car présent sur indicateur. Si tu as la possibilité de retravailler le MACD de la même façon, je suis preneur Merci bcp
Le MACD n’est pas un indicateur borné, donc la technique employée ici ne conviendrait pas. On pourrait cependant utiliser le croisement avec la ligne de signal pour marquer les points hauts et bas.
Sinon, cet autre indicateur existe déjà dans la bibliothèque : https://www.prorealcode.com/prorealtime-indicators/macd-divergences-on-price-and-indicator/
A voir si il te convient.
Bonjour Nicolas…connaissez vous sur le blog, un code pour les divergences stochastique ? si oui je suis preneur ! merci d’avance…et bon travail…
Oui il y en a vraiment beaucoup, il faut chercher un peu sur le site avec Google ou le moteur de recherches interne du site. Bonne pêche !
Merci 😉
Hello Nicolas,
Bravo pour cette indicateur incroyable 😉
Est-il possible de rajouter trois conditions à cette indicateur ?
1: le nombre de bougie minimu(4) et maximum (16)
2: le RSI ne décende pas en dessous de 60 pour une div baissière entre les deux plus haut
et ne monte pas au dessus de 40 pour une div haussière entre les deux plus bas.
3: le deuxième plus haut ou plus bas n’est pas forcément en sur-vente ou sur-achat.
Si tu peux faire cela l’indicateur serait une tuerie :-p
Merci d’avance pour ta réponse
Bien cordialement
Merci de formuler la demande dans un nouveau sujet dans le forum approprié.
Ok 😉
Normalement c’est au bon endroit.
Merci à toi
Hola
Muchas Gracias por el indicador, …queria preguntar si se podria añadir la visualizacion de divergencias ocultas..
gracias
Malheureusement ce code ne passe pas en v11.1
Erreur sur ligne 48,49 62,63 et Fin de code non reconnu 🙁
Mauvais copier/coller? Veuillez télécharger le fichier .itf et l’importer dans la plateforme, je pense que ça devrait fonctionner !
Magnifique, j’ai remplacer le RSI (70 et 30) par CCI avec les valeur+100 et -100 pour les valeurs de CCI. L’avance est le CCI est un petit peu plus vite.
(Excuse pour le langue)
Ik heb hetzelfde gedaan met de SMI met OB =40 en OS = -40. De codes voor beide CCI en SMI zijn beschikbaar.
Bonjour Nicolas,
Merci pour cet indicateur que j’utilise tous les jours. Existe t-il en screener ?
Serait-il possible de rajouter les fonctionnalités suivantes lorsqu’une divergence est détectée?
– indiquer le nombre de bougies que la divergence contient
– tracer un segment à partir du niveau le plus bas du rsi dans la divergence (pour une divergence baissière)
– indiquer d’une flèche lorsque le rsi croise ce segment qui sera le signal de vente de la divergence
– retirer si possible les histogrammes rouges et vertes
Merci encore pour votre travail
Merci de poster la demande dans le forum des indicateurs prorealtime. Avec un titre explicite et ces explications.
Bonjour, j’ai une erreur Erreur sur ligne 48,49 62,63 et Fin de code non reconnu
Afin d’éviter les mauvais copier/coller, il est toujours plus simple de télécharger le fichier ITF et de l’importer directement dans la plateforme.
Bonjour,
Il ne veut pas les paramètres
drawsegment(oldminrsibar,oldminrsi,minrsibar,minrsi) coloured(0,200,0)
et
drawarrowup(minrsibar,minrsi) coloured(0,200,0)
quand je prends l’itf il me met qu’il l’importe mais il n’est pas dans la liste.
Pouvez vous m’aider svp
Bonjour Nicolas, merci pour cet indicateur, je suis un fan des divergences !
Il semble y avoir un soucis avec l’indicateur cela dit,, j’ai exploré l’historique sur un graph pour voir comment cela se présentait graphiquement et à ma grande surprise il ne détecte que les divergences baissières. Alors qu’il y en a des haussières sur l’historique étudié.
Toutes les cases dans les paramètres sont cochés, mais peut être ai-je raté quelque chose ?
Il s’agit d’un indicateur de divergences particulier qui répond à certains critères, voir ce sujet: https://www.prorealcode.com/topic/creation-indicateur-divergence-rsi-particulier/
Les divergences haussières constatées sont-elles en relation avec ces critères ?
Hello,
Do you have the code for divergence William%R? thank you
Hello
I created this indicator that allows you to detect divergences on the following oscillators: RSI-MACD-CCI-STO-SMI-ADX-MOM-MFI-OsMA-TRIX
https://www.automatictrading.it/product/all-in-one-divergences-engine-indicator-v11/
Bonjour Nicolas
Un grand merci pour tout votre travail. Votre code est exactement celui que je recherchais. Par contre je dois mal faire qqchose car le logiciel m’indique ne pas vouloir les mots drawsegment (48) et drawarrowdown (49). Il m’indique aussi le endif de la ligne 55 comme erreur. bien à vous
Il s’agit d’un indicateur compatible avec PRT v11 uniquement. Pour éviter les erreurs de copier/coller, je vous suggère de télécharger le fichier itf et de l’importer dans la plateforme.
Intéressant. Merci pour ce partage Nicolas.
L’indicateur ne considère pas les divergences si le rsi ne passe pas sous 70 entre deux sommets, ou au-dessus de 30 entre deux creux. Du coup, il passe à côté de nombreuses divergences pertinentes sur le Dax en 5 min timeframe, par exemple. Et sans ces conditions, il semble impossible de considérer un sommet (ou creux) comme ‘old’ afin de pouvoir comparer des sommets (ou creux) successifs.
ok, pour les divergences chacun voit midi à sa porte je dirai 🙂 Vu qu’il n’y a pas de formulation empirique.. Cet indicateur correspond à une demande particulière qui avait été faite sur le forum à l’époque. En cas de besoin pour des modifications, il faut passer par le forum svp.