Overblog
Suivre ce blog Administration + Créer mon blog
15 décembre 2008 1 15 /12 /décembre /2008 15:43

Over / Under Divergence : Part II.

Voici donc la version baissière de "l'Over / Under Divergence".  Le premier article se trouve ICI (avec les conditions de validation).
Le screener a sorti GDI sur le NYSE, dont voici une vue :



Et le code pour Prorealtime :

x=stochastic[7,3](close)
z=stochastic[21,10](close)
if x>x[1] then
    hi=max(hi,x)
    hico=max(hico,max(high,high[1]))
endif
if x<x[1] and x[1]>x[2] then
    zt1=zt
    zt=z[1]
    sto2=sto1
    sto1=hi
    hi=0
    p3=p1
    p2=max(p1,hico)
    p1=max(highest[3](high),hico)
    if p2=p1 then
        p2=max(p3,p4)
    endif
    hico=0
    hico1=0
endif
if x<x[1] then
    p4=hico1
    hico1=max(hico1,high)
endif
c1=(p1>p2 and sto1<sto2 and x<x[1] and x[1]>x[2])
c2=(c1 and sto2>zt1 and sto1<zt)
if c2 and high[1]=highest[7](high) and low<low[1] and close<open then
    divi=3
else
    divi=0
endif
return divi
Partager cet article
Repost0
14 décembre 2008 7 14 /12 /décembre /2008 10:47

Divergences baissières Stochastic et MACD.

A la demande de Jean-Michel, voici les codes convertis pour les divergences baissières Stochastic et MACD.  Le premier article, sur les divergences haussières, se trouve ICI.
Voici une vue de ADM, détectée par le screener :



Et les codes pour Prorealtime :

//////////////// divergence baissière stochastic ////////////////
x=stochastic[14,3](close)
y=average[5](x)
if x>y then
    hi=max(hi,x)
    hico=max(hico,max(high,high[1]))
endif
if x crosses under y then
    sto2=sto1
    sto1=hi
    hi=0
    p3=p1
    p2=max(p1,hico1)
    p1=max(highest[3](high),hico)
    if p2=p1 then
        p2=max(p3,p4)
    endif
    hico=0
    hico1=0
endif
if x<y then
    p4=hico1
    hico1=max(hico1,high)
endif
if p1>p2 and sto1<sto2 and x crosses under y and x<x[1] then
    sign=10
else
    sign=0
endif
return sign

///////////// divergence baissière MACD /////////////
m=macdline[9,19,6](close)
s=exponentialaverage[6](m)
if m>s then
    hi1=max(hi1,m)
    hico=max(hico,high)
endif
if m<s then
    hico1=max(hico1,high)
endif
if m crosses under s then
    a=hi1
    hi1=0
    c=max(hico,hico1)
    hico=0
    hico1=0
    a1=a0
    a0=a
    c1=c0
    c0=c
endif
if m crosses under s and a0<a1 and c0>c1 then
    sign=1
else
    sign=0
endif
maxmac=highest[4](m)
maxco=highest[5](high)
if m>s and maxco>c0 and maxmac<a0 then
    pre=.5
else
    pre=0
endif
return sign,pre
Partager cet article
Repost0
12 février 2008 2 12 /02 /février /2008 20:24

Over / Under Divergence.

 

Sur le site de NQoos, il y a un setup de divergence sur Stochastics  :  "Over / Under Divergence by Birdman".  Toutes les informations nécessaires se trouvent sur la page, je vous déconseille d'aller sur Intellitraders.com, car l'anti-virus me donne une alerte.

 

Les conditions telles que je les ai codées sont :

 - Une divergence classique haussière sur le Stochastic 7,3.  La divergence est validée sur un simple zigzag du Stochastic.

 - Le premier creux du Stochastic 7,3 est inférieur au Stochastic 21,10 et le second supérieur.

 - La bougie précédant le signal doit marquer un plus bas de 7 barres.

 - La bougie du signal doit avoir un plus haut supérieur à celui de la barre précédente et Close>Open.

 

Il serait pertinent AMHA de backtester l'efficience de certaines conditions :

 - Nécessicité d'avoir une bougie verte.

 - Avoir le Stochastic 21,10 orienté à la hausse.

 - Valider la divergence non pas avec un zigzag mais avec le croisement de %K et %D.

 - Avoir le point bas sur la bougie[2] ou [0] et non pas la bougie[1].

 

Voici un exemple de signal :

 

hk59.gif

 

Il y a peu de signaux, c'est pour cela que je m'interroge sur l'utilité de toutes les conditions.

Il faut bien lire les 4 remarques à la fin de la page de NQoos, particulièrement celle sur le "Strong Trend".  Pour le higher timeframe, 5 ou 6 fois l'unité de temps devrait être correct.  Dans ce cas, il est intéressant de chercher sur celui-ci des figures telles que "Mof" ou "Slingshot" (voir Buffy sur Google, pour ceux qui ne connaissent pas encore).  Il faudrait regarder aussi  du côté du range de la bougie de manière à avoir un R/R jouable.

 

Voici le code pour Prorealtime de la version "achat", avec les conditions de base.  Je vous laisse faire la version "vente".

 

x=Stochastic[7,3](close)
z=stochastic[21,10](close)
if x<x[1] then
    lo=min(lo,x)
    lowco=min(lowco,min(low,low[1]))
endif
if x>x[1] and x[1]<x[2]  then
    zt1=zt
    zt=z[1]
    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>x[1] then
    p4=lowco1
    lowco1=min(lowco1,low)
endif
c1=( p1<p2 and sto1 > sto2 and x>x[1] and x[1]<x[2])
c2=(c1 and sto2<zt1 and sto1>zt )
if c2 and low[1]=lowest[7](low) and high>high[1] and close>open then
    divi=3
else
    divi=0
endif
return divi

Partager cet article
Repost0
12 février 2008 2 12 /02 /février /2008 20:18

Copie d'un article publié le 12/12/07, présentant un exemple de divergence cachée.

Hidden Divergence sur le Nasdaq Composite.

 

Voici un exemple de divergence cachée, cela signifierait la poursuite de la baisse.

 

hk57.gif

 

Et pour le même prix, une ETE qui se profile en UT week !

 

hk58.gif

Partager cet article
Repost0
12 février 2008 2 12 /02 /février /2008 19:57

Divergences : Partir d'un cas concret, conclusions.

 

L'indicateur donne donc les divergences haussières du stochastic, que celles-ci précèdent ou accompagnent une divergence MACD.

 

Tout d'abord, je trouve qu'il y a relativement peu de signaux.  Je n'ai pas tenu compte comme annoncé, des reversaldays.  Cela aurait fait un filtre supplémentaire et donc encore réduit le nombre d'alertes.  Je pense qu'avec cet indicateur, il faut regarder également du côté de la volatilité.  Mais comment faire un indicateur pour reconnaître une tendance en ligne d'une bulle ?

Maintenant au niveau d'un backtest, j'ai planché la-dessus pendant 3 jours : avec quel stop, quel objectif et quel R/R ?

L'objectif premier paraît être la moyenne de Bollinger.  J'ai donc modifié le stochastic 14,3,5 en stochastic ATD et le MACD en 9,19,6 et éliminé les cas où le high du jour est supérieur à l'objectif.  Pour le stop, j'ai pris la bollinger inférieure ou un trailing-stop de volatilité suivant leurs positions.  Ayant le stop et l'objectif, j'ai paramètré un R/R de 1 (celui-ci doit pouvoir être optimisé AHMA) et de 3000$ au départ du trade.   J'ai appliqué tout ça sur la liste US50 de Prorealtime du 1/1/05 à ajd.  Voici une vue d'un trade (SLB) :

 

hk54.gifundefined

 

Dans l'ordre : l'EC, le cours avec le trade et le trailing-stop (en orange), le stochastic ATD avec le signal de divergence (historigramme noir), le MACD 9,19,6, l'indicateur de divergence possible MACD et enfin en mauve, l'alerte qui déclenche le trade.

 

Et les résultats complets :

 

 hk56.gif

 

Donc 19 trades sur un total de 37500 barres vues............  Je vous laisse continuer les tests, voici le code :

 

REM Capital de 100000, frais IB

REM Achat

indic1 = CALL "divergence atd"// mettre le nom de l'indicateur (cas concret partie 2) et changer les paramètres du stochastic et du MACD !
c1 = (indic1 > 0.0)
indic2 = Average[20](close)
c2 = (high < indic2)
indic3, ignored, ignored, ignored = CALL "stop volatilité"[10]// mette le nom de votre indicateur
indic7 = BollingerDown[20](close)
risk=max(indic7,indic3[1])
c3=(close-risk<=indic2-close)
nbre=3000/(close-risk)
IF c1 AND c2 AND c3 THEN
    BUY nbre shares AT MARKET THISBARONCLOSE
ENDIF

REM Vente
sell at indic2 limit
if close<risk then
    sell at market thisbaronclose
endif

Bon amusement.

Partager cet article
Repost0
12 février 2008 2 12 /02 /février /2008 19:18

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 :

 

hk50.gif

 

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) :

 

hk51.gif

 

-----------------------------------------------------------

 

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.

 

hk52.gif

 hk53.gif

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.

Partager cet article
Repost0
10 février 2008 7 10 /02 /février /2008 17:58

Divergences : Partir d'un cas concret.

 

Cette semaine (article publié la première fois le 08/12/07) dans la sélection de titres US, est tombé PDLI.  L'action présentait une divergence stochastic ainsi qu'une MACD possible.  Je propose de partir du graphe pour établir un setup et voir si cette situation est reproductible.  Voici le  graphe :

 

hk23.gif

 

Les paramètres sont : stochastic 14/3/5 simple et MACD 9/19/6.

Le setup : divergence haussière sur le stochastic, la validation se fait par le croisement de la courbe (noire) et du signal (rouge).  Le MACD croise son signal une barre plus tard, il faut prendre en compte la "possibilité" de la divergence haussière.  Le stochastic croise donc avant le MACD.  On a une reversalbar, la pertinence de cet élément sera étudié.

 

Je vais démarrer avec des programmes le plus simple possible et les corriger au besoin.

 

A suivre..........

Partager cet article
Repost0
10 février 2008 7 10 /02 /février /2008 17:40

Divergences : remettre les choses à leur place.

 

Le but de cette file est de faire un tour des setup's de trading à base de divergences.  Tout d'abord, je vous invite à lire (avec un oeil critique) le tutoriel de AT-BOURSE sur les divergences appliquées à l'analyse dynamique.  Cet exposé a l'avantage de donner des objectifs et donc d'avoir un système complet même si l'auteur prend beaucoup de précautions (on lit en fin d'introduction : "des divergences peuvent donc tout aussi bien être invalidées.......que conduire ........à une inversion de tendance du marché" ou encore plus loin : "le graphe suivant.......indique que ces objectifs ne sont que rarement réalisés......ils peuvent être réalisés, mais aussi dépassés, ou bien les divergences peuvent être invalidées loin de leur objectif").  Bref, c'est bien quand ça marche et c'est nul quand ça marche pas.  Une tentative de backtest a été publiée chez dakoté : c'est ici.  Le test ne tient pas compte de l'environnement.

 

Tout cela pour citer un intervenant sur un forum US qui disait : "What a great tool, it really works !  I see divergences all over the place and would get chopped to pieces if I trade all the signals.  Just doesn't work for me ! "

 

Les différents types de divergences.

 

- Les divergences baissières (bearish divergence), qui signalent une possible baisse du cours.

- Les divergences haussières (bullish divergence), qui signalent une possible hausse du cours.

- Les divergences classiques (classic divergence or regular divergence), qui signalent un possible renversement de la tendance.

- Les divergences de continuation ou divergences cachées (hidden divergence or reverse divergence or continuation divergence or trend divergence), qui signalent une possible poursuite de la tendance.

 

Au final, 4 catégories : les classiques baissières, les classiques haussières, les cachées baissières et enfin les cachées haussières.

 

Il y a divergence quand la représentation donnée par le cours n'est pas en relation avec celle donnée par l'indicateur : MACD, RSI, CCI, Stochastic ou tout autre oscillateur.  Les reverses divergences n'apparaissent pas avec le MACD ligne, il faut employer l'historigramme.  Voici une vue des différentes catégories : en A, classique baissière, en B, classique haussière, en C, cachée baissière et en D, cachée haussière.

 

hk22-copie-1.gif

 

Il faut retenir :

- le cours fait un plus haut plus haut et non l'indicateur, on a une divergence classique baissière (A).

- le cours fait un plus bas plus bas et non l'indicateur, on a une divergence classique haussière (B).

- l'oscillateur fait un plus bas plus bas et non le cours, on a une divergence cachée haussière (D).

- l'oscillateur fait un plus haut plus haut et non le cours, on a une divergence cachée baissière (C).

 

Les réflexions à venir :

- quand prendre la divergence ?  Sur le creux/sommet de l'indicateur ou comme pour un stochastic ou un MACD, attendre le croisement avec le signal ?  Même question pour l'invalidation.

- faire un programme de détection des divergences possibles et pas uniquement celles établies.

- quid de la divergence sur l'UT supérieure ?

- quid de la double divergence (UT supérieure et UT actuelle) ?

- quel est le nombre de barres entre deux creux/sommets, le cycle joue-t-il un rôle ?

- quelle est l'amplitude entre deux sommets/creux de l'indicateur (pour un sto sous 80, sous 50) ?

- quelle est l'amplitude entre deux creux/sommets sur les cours, la volatilité joue-t-elle ?

- doit-on prendre les divergences en période de cycle ou de tendance ?

- quelle est l'interactivité entre divergence Sto et MACD ?

- l'osillateur doit-il avoir un mouvement non-saccadé avant la divergence ?

Partager cet article
Repost0