Divergences : un cas concret, deuxième partie.
Première étape : le programme de divergence sur le stochastic.
------------------------------------------------------------------------------
J'ai un programme simple de détection des divergences haussières sur le stochastic. Voici le problème que j'ai à résoudre :
Normalement, le point bas sur les cours se fait alors que le stochastic est sous son signal. Mais parfois, il se fait alors que le stochastic a déjà croisé à la hausse (exemple 3 et 1). Il peut se faire également juste avant que le stochastic ne croise son signal à la baisse (exemple 2).
Je vous donne pour info, le programme actuel, pour vous montrer le cheminement (je dois maintenant l'améliorer pour tenir compte du problème rencontré) :
x=Stochastic[14,3](close)
y=average[5](x)
if x<y then
lo=min(lo,x)
lowco=min(lowco,low)
endif
if x CROSSES OVER y then
sto2=sto1
sto1=lo
lo=100
p2=p1
p1=lowco
lowco=100000
else
endif
if p1<p2 and sto1 > sto2 and x crosses over y and x>x[1] then
sign=10
else
sign=0
endif
return sign
Edit 9/12 à 19h23 :
Bon voici à quoi j'arrive sur le programme stochastic, si je trouve des anomalies, je modifierais........
x=Stochastic[14,3](close)
y=average[5](x)
if x<y then
lo=min(lo,x)
lowco=min(lowco,min(low,low[1]))
endif
if x CROSSES OVER y then
sto2=sto1
sto1=lo
lo=100
p3=p1
p2=min(p1,lowco1)
p1=min(lowest[3](low),lowco)
if p2=p1 then
p2=min(p3,p4)
endif
lowco=100000
lowco1=100000
endif
if x>y then
p4=lowco1
lowco1=min(lowco1,low)
endif
if p1<p2 and sto1 > sto2 and x crosses over y and x>x[1] then
sign=10
else
sign=0
endif
return sign
Je prends en compte le low juste avant le croisement à la baisse (exemple 2), le low de la bougie du croisement à la hausse (exemple 1), et le low après le croisement à la hausse si celui-ci n'est pas égale au low avant le croisement à la baisse. (j'espère que vous suivez ?)
On peut filtrer l'alerte de divergence en testant la différence entre le stochastic de la barre actuelle et celui de la barre précedente (pour l'instant, je teste seulement x>x[1]). On peut aussi exiger que le signal du stochastic soit à la hausse (croisement a+ ?) ou encore regarder le R/R avec la position par rapport aux bandes de Bollinger ou bien enfin tester le high de la bougie d'alerte. Tout ça à mettre en place lors du backtest.........
Seconde étape : le programme de divergence potentielle sur le MACD.
--------------------------------------------------------------------------------------
Voici le premier jet du programme de détection de divergences potentielles, le cours marque un plus bas et non le MACD. Le code retourne également les divergences validées :
m=MACDline[9,19,6](close)
s=exponentialaverage[6](m)
if m<s then
lo1=min(lo1,m)
lowco=min(lowco,low)
endif
if m>s then
lowco1=min(lowco1,low)
endif
if m CROSSES OVER s then
a=lo1
lo1=100
c=min(lowco,lowco1)
lowco=100000
lowco1=100000
a1=a0
a0=a
c1=c0
c0=c
endif
if m crosses over s and a0>a1 and c0<c1 then
sign=1
else
sign=0
endif
minmac=lowest[4](m)
minco=lowest[5](low)
if m<s and minco<c0 and minmac>a0 then
pre=.5
else
pre=0
endif
return sign,pre
Avec une vue de l'indicateur, l'historigramme noir retourne la divergence possible et la barre blanche signale la validation de la divergence (le MACD croise son signal) :
-----------------------------------------------------------
Il vous suffit de combiner les 2 programmes : (divergence potentielle MACD or divergence validée MACD) and divergence stochastic. Voici des exemples d'applications : en 1 un faux signal, en 2 la divergence stochastic est simultanée avec celle du MACD, et en 3 et 4, la divergence stochastic précède celle du MACD.
A première vue, il y a peu de reversalday. Je ferai néanmoins un article sur le sujet. N'oubliez pas qu'il existe une file commentaires ici, j'attends vos remarques.