Bonjour a tous
J’ai écrit un le code d’un indicateur basé sur le RSI et voudrais visualiser sur les cours des lignes correspondants au plus haut et plus bas des 20 dernières périodes
Je matérialise ce plus haut ou ce plus bas par un segment de droite, je pense que je ne peux pas utiliser les pointillés.
Or je vois que les segments s’affichent sur l’indicateur lui même et non sur les cours.
Quelqu’un a t il une idée pour résoudre mon souci
D’avance merci
Jean Philippe
Oui il faudrait retrouver les valeurs des chandeliers en fonction des plus haut et plus bas trouvé sur le RSI et tracer la droite avec ces coordonnées et en appliquant l’indicateurs sur le prix.
Avec ton code, ça devrait être rapide à corriger, merci.
Merci pour ta reponse, tu trouveras ci-dessous le code de mon indicateur:
// SIGNAUX RSI JPHP
signal=0
ME10=exponentialaverage[10]
NbBarLimit = 4
periode=20
MyRSIprevious=RSI[14](close)[1]
MyRSI=RSI[14](close)
//vitesse =ME10-ME10[1]
C1= MyRSIprevious>70
C2=MyRSI<70
C3=MyRSIprevious<30
C4=MyRSI>30
C5=close crosses over ME10
C6=close crosses under ME10
//C9=vitesse>0
//C10=vitesse<0
C7= C1 and C2
C8=C3 and C4
if C7 or C8 then
MyIndex = BarIndex
warning =1
IF C7 then //surachat, on vend
resistance=highest[periode](high)
ENDIF
IF C8 then //survente, on achete
support=lowest[periode](low)
ENDIF
ENDIF
IF BarIndex <= MyIndex + NbBarLimit THEN
if C6 and warning=1 then //surachat, on vend
signal=-1
warning =0
y1=resistance
for p = 0 to periode do
if high[p]=resistance then
x1 = barindex[p]
endif
next
y2=y1
x2=x1+periode
DRAWSEGMENT(x1,y1,x2,y2)coloured(255,10,10)
endif
If C5 and warning =1 then //survente, on achete
signal=1
warning=0
y1=support
for p = 0 to periode do
if low[p]=support then
x1 = barindex[p]
endif
next
y2=y1
x2=x1+periode
DRAWSEGMENT(x1,y1,x2,y2)coloured(10,255,10)
endif
Else
warning =0
ENDIF
Return signal
Félicitations pour le code de ton indicateur. C’est très visuel et il fonctionne correctement sur le graphique du prix si tu l’appliques bien sur celui-ci (voir images).
Entre les lignes 41/42 et 56/57, tu peux ajouter l’instruction break pour sortir de la boucle, car tu as trouvé ce que tu cherchais, inutile de continuer à laisser courir le code 🙂
Bonjour,
Cet indicateur ne fonctionne qu’en intraday ou peut-on l’utiliser en daily ou weekly ?
En daily si j’ajoute “break” aux lignes proposées cela décale les signaux !?
d’autre part ,toujours en daily, j’ai une ligne ( en jaune) sur “zero” qui me ressort les signaux et rétrécie le graphe …
so what ?
Oui les amis j’ai bien compris, pour tracer les lignes de support et de resistance il faut appliquer l’indicateur sur les prix directement
mais comme le remarque supertiti, l’affichage des signaux +1 -1 vient retrecir la fenetre des prix.
Il faut donc creer 2 indicateurs, l’un a appliquer sur les prix sans les signaux +1 et -1 et l’autre a afficher sur une 2eme fenetre sans les niveaux
ou lors peut etre existe t il une instruction pour afficer separement le signal dans une autre fenetre ?
Merci encore
Oui c’est logique que la valeur retournée dans RETURN s’affiche dans le graphique, elle est à 1 ou -1. Si tu souhaites afficher des signaux dans le graphique, tu peux utiliser ma méthode expliquée dans cette vidéo récente sur les signaux de trading.
Bonjour à tous,
J’ai suivi les instructions et réalisé le code pour avoir les signaux sur le graphe sans les problèmes de proportions.
Je me suis permis de mettre en variables : periode = la période et p1 = la période du RSI ( en jouant sur la période du RSI on peut étendre les lignes de signaux jusqu’au décalage ainsi nous délimitons mieux les canaux de supports et resistances)
exemple avec le graphe de AXA
bonne journée et bons trades.
// SIGNAUX RSI JPHP on chart PRC 20.10.2016
//signal=0
ME10=exponentialaverage[10]
NbBarLimit = 4
// periode=20
MyRSIprevious=RSI[p1](close)[1]
MyRSI=RSI[p1](close)
//vitesse =ME10-ME10[1]
C1= MyRSIprevious>70
C2=MyRSI<70
C3=MyRSIprevious<30
C4=MyRSI>30
C5=close crosses over ME10
C6=close crosses under ME10
//C9=vitesse>0
//C10=vitesse<0
C7= C1 and C2
C8=C3 and C4
if C7 or C8 then
MyIndex = BarIndex
warning =1
IF C7 then //surachat, on vend
resistance=highest[periode](high)
ENDIF
IF C8 then //survente, on achete
support=lowest[periode](low)
ENDIF
ENDIF
IF BarIndex <= MyIndex + NbBarLimit THEN
if C6 and warning=1 then //surachat, on vend
//signal=-1
//warning = 0
y1=resistance
for p = 0 to periode do
if high[p]=resistance then
x1 = barindex[p]
//break
endif
next
y2=y1
x2=x1+periode
DRAWSEGMENT(x1,y1,x2,y2)coloured(255,10,10)
endif
If C5 and warning =1 then //survente, on achete
//signal=1
//warning= 0
y1=support
for p = 0 to periode do
if low[p]=support then
//break
x1 = barindex[p]
endif
next
y2=y1
x2=x1+periode
DRAWSEGMENT(x1,y1,x2,y2)coloured(10,255,10)
endif
endif
//Else
//warning = 0
//ENDIF
Return //signal
// Variables :
// periode = 20 entier par défaut
// p1 = 14 entier periode RSI
errare humanum est, il faut entendre periode , non pas periode du RSI ! désolé
( en jouant sur la période on peut étendre les lignes de signaux jusqu’au décalage ainsi nous délimitons mieux les canaux de supports et resistances)
Le problème du “break” est à la ligne 57, il faut bien entendu avoir donné une valeur à la variable x1 avant de sortir de la boucle, donc intervertir les lignes 57 et 58.