Bonsoir Nicolas,
Vous avez eu l’amabilité de traduire de MT4 les codes du disparity index.
Sur cet indicateur, j’ai rajouté :
- une régression linéaire 5 périodes – bleue et noire- elle définit bien les contours de l’histogramme
- -une moyenne mobile simple 7 périodes – jaune et fushia
- voir graph joint
Je souhaiterai créer une alerte (flèche) lorsque la RL coupe le DI2 – en rouge – cas de baisse et la DI3 – en vert – en cas de hausse
Lorsque la RL et la sma se croisent , un changement de tendance est à venir :
- le mouvement se présente bien lorsque le croisement se fait à la limite et/ou sous DI2 (en rouge) pour une baisse et sur DI3 (en vert) pour une hausse
- ou si après croisement, au-dessus du DI2 ou au-dessous du DI3 la RL et la SMA coupent le DI2 ou DI3 – . (voir graph joint)
- vous verrez dans l’exemple, j’ai mis des verticales pour bien illustrer ces propos – et vous verrez aussi le croisement des RL et sma sous la DI3 (vert) qui n’a pas été accompagné d’une hausse – et après l’inversion de l’histogramme doit accompagner le mouvement –
J’ai essayé (j’ai suivi la vidéo de formation – il me faut encore l’écouter ) de créer cette alerte en prenant bien soin de déclarer l’indicateur perso par la fonction “CALL”
Je vous ai mis en pièce jointe, les lignes de code et le message d’erreur – là, j’ai eu beau chercher, mais je n’arrive pas trouver la solution d’où ma démarche –
rge = averagetruerange[10](close)*0.5
myDisparityIndex, myMonDi, myMonDi2, myMonDi3 = CALL MonDi[20, 3]
IF LinearRegression[10](myDisparityIndex) CROSSES UNDER Average[7](myDisparityIndex) then
DRAWARROWDOWN(barindex[0],high[1]+rge)coloured(102,0,255)
//drawtext("V", barindex[0],high[1]+2.5*rge, Dialog,Bold,16) coloured(255,0,51)
endif
IF LinearRegression[10](myDisparityIndex) CROSSES UNDER Average[7](myDisparityIndex) then
DRAWARROWUP(barindex[0],low[1]-rge)coloured(102,0,255)
//drawtext("A", barindex[0],high[1]-5*rge, Dialog,Bold,16) coloured(51,51,255)
endif
RETURN
Désolée, mais sans vous je n’arriverai pas – juste me dire comment déclarer la RL et la moyenne mobile ainsi que la DI2 et DI3 –
Je vous mets les lignes de codes de mon indicateur que vous avez écrites
Avec mes remerciements
Bien sincèrement
// parameters :
//periode = 20
//InpLevelsCoeff = 3
// https://www.prorealcode.com/topic/disparity-index-conversion-depuis-ts2/
Buffer = abs(close-close[1]) / close[period] * 100
Diindex = ((Close-Average[period](close))/Average[period](close))*100
BufferMA = Average[period](buffer)
Up = BufferMA * InpLevelsCoeff
Dn = -BufferMA * InpLevelsCoeff
if Up <=Diindex and Diindex>0 then
r=0
g=148
b=5
elsif Up >Diindex and Diindex>0 then
r=116
g=200
b=91
elsif Dn<=Diindex and Diindex<0 then
r=255
g=128
b=128
elsif Dn>Diindex and Diindex<0 then
r=172
g=0
b=0
endif
RETURN Diindex coloured(r,g,b) style(histogram) as "Disparity Index", 0, Up, Dn