Dimanche 10 février 2008

Trailing Stop : la cassure en trois blocs ou three line break.

 

Voici un indicateur qui donne le seuil de retournement pour le mode de représentation en cassure trois blocs.  Cet indicateur peut servir de trailing stop, il fonctionne avec le cours de cloture.  Un exemple sur le CAC, avec ensuite la représentation en "three line break" avec l'indicateur pour confirmation.

 

hk16.gif

hk17.gif

 

Et maintenant le code pour Prorealtime :

 

once t=1
once a0=(close)
once a1=(close)
once a2=(close)
once a3=(close)
if t=1 and close>a3 then
    a0=a1
    a1=a2
    a2=a3
    a3=close
elsif t=1 and close<a0 then
    t=-1
    a1=a3
    a0=a3
    a3=close
elsif t=-1 and close<a3 then
    a0=a1
    a1=a2
    a2=a3
    a3=close
elsif t=-1 and close>a0 then
    t=1
    a1=a3
    a0=a3
    a3=close
endif

return a0 coloured by t[1] as "cassure"

Par hk_lisse - Publié dans : Trailing Stop
- Voir les commentaires - Recommander
Dimanche 10 février 2008

Trailing Stop : le High/Low (suite).

 

Outre l'utilisation de la moyenne mobile, on peut employer le highest/high ou le lowest/low des x dernières barres.  La valeur de x varie de 3 à 5.  Un exemple sur ALU, avec x=5.

 

hk13-copie-1.gif

 

En mode SAR :

 

hk14.gif

 

Et le code, p représente le nombre de barres pris en compte :

 

once c=high
once f=-1
p=5
hi=highest[p](high)[1]
lo=lowest[p](low)[1]
if f=1 then
    if low<lo then
        f=-1
        c=hi
    else
        c=lo
    endif
else
    if high>hi then
        f=1
        c=lo
    else
        c=hi
    endif
endif
return c coloured by f

 

Une variante trouvée sur la toile, où n'est pas pris en compte les insidebar's :

 

hk15.gif

 

Avec le code :

 

once x=1
p=5
j=0
lo1=low[1]
hi1=high[1]
for i=1 to 100 do
    if low[i]<low[i+1] or high[i]>high[i+1] then
        lo1=min(lo1,low[i])
        hi1=max(hi1,high[i])
         j=j+1
    else
    endif
    if j=p then
        i=101
    else
    endif
next
if x=1 then
    if low<lo1        then
        x=-1
        c=hi1
    else
        c=lo1
        f=-1
    endif
else
     if high>hi1 then
        x=1
        c=lo1
    else
        c=hi1
        f=1
    endif
endif
return c coloured by f

Par hk_lisse - Publié dans : Trailing Stop
- Voir les commentaires - Recommander
Jeudi 7 février 2008

Trailing Stop : le High/Low Stop.

 

Une autre technique de trailing stop consiste à afficher une moyenne mobile des high/low.  C'est surtout utile en intraday ou encore pour gérer un trade sur l'unité de temps inférieure.  Une vue sur ALU avec une SMA5 :

 

hk11.gif

 

En version SAR :

 

hk12.gif

 

Et maintenant le code, p représente la longueur de la moyenne (à déterminer par backtest).   On peut  changer le critère de reverse par close, on peut également  ajouter ou soustraire à la courbe  un écart variant en fonction de la volatilité.

 

p=5 // longueur de la moyenne des extrêmes
hi=(average[p](high))
lo=(average[p](low))
if f=1 then
    if low<lo then // on peut utiliser close
        c=hi
        f=-1
    else
        c=lo
    endif
else
    if high>hi then // on peut utiliser close
        c=lo
        f=1
    else
        c=hi
    endif
endif
return c coloured by f

Par hk_lisse - Publié dans : Trailing Stop
- Voir les commentaires - Recommander
Jeudi 7 février 2008

Stop de volatilité en utilisant l'écart type.

 

Pour continuer, la série des codes Prorealtime concernant le trailing stop, je vous propose cette fois de travailler avec l'écart type.  Voici un graphe d'ALU avec affiché les extêmes du jour +/- un écart type et deux écarts types, celui-ci est calculé sur la moyenne à 10 jours des clotures.

 

hk9.gif

 

On peut utiliser ces courbes comme trailing stop, voici une copie d'écran en mode SAR, toujours pour ALU, avec le coéfficient 2.

 

hk10.gif

 

Et maintenant, le code (p représente la longueur de la moyenne mobile et b donne le coéfficient multiplicateur) :

 

a=STD[p](close)
b=2
if barindex<p then
    l1=low
    h1=high
else
    if low-a*b > l1 then
        l1=low-a*b
    else
    endif
    if low<l1 then
        l1=low-a*b
        c=h1
    else
    endif
    if high+a*b<h1 then
        h1=high+a*b
    else
    endif
    if high >h1 then
        h1=high+a*b
        c=l1
    else
    endif
endif
if c<low then
    c=l1
else
    c=h1
endif
if close<c then
    f=-1
else
    f=1
endif

return c coloured by f

Par hk_lisse - Publié dans : Trailing Stop
- Voir les commentaires - Recommander
Jeudi 7 février 2008

Van K. Tharp préconise un stop basé sur l'ATR.

 

Dans son livre "Trade Your Way To Financial Freedom" ("Réussir En Trading" pour la version française), Van K. Tharp préconise un trailing stop placé 3 ATR's sous la cloture.  Il prétend même qu'un système à entrées aléatoires utilisant ce type de stop est gagnant, il l'aurait testé sur un ensemble de 10 marchés sur une durée de 10 ans. 

Les intervenants sur cette file n'ont pas l'air tous d'accord : http://www.tradingblox.com/forum/viewtopic.php?t=3637

 

Voici le code pour Prorealtime de ce "volatility stop".  Les variables sont : d pour la période de l'ATR et c pour le coéfficient multiplicateur, on peut encore éventuellement faire varier la longueur de la moyenne exponentielle (ici 10).  En version SAR, cela permet de bien visualiser la tendance.

 

c=3
d=9
ONCE a=close
once b=1
if b=1 then
    if close >a then
        a= close
    else
    endif
    if close < a - (c*(ExponentialAverage[10](AverageTrueRange[d](close)))) then
        b=-1
        e=a
        a=close
        f=-1
    else
        e= a - (c*(ExponentialAverage[10](AverageTrueRange[d](close))))
        f=1
    endif
else
    if close < a then
        a=close
    else
    endif
    if close > a + (c*(ExponentialAverage[10](AverageTrueRange[d](close)))) then
        b=1
        e=a
        a=close
        f=1
    else
        e=a + (c*(ExponentialAverage[10](AverageTrueRange[d](close))))
        f=-1
    endif
endif

return e coloured by (f)

 

Et une vue de l'indicateur appliqué sur ALU :

hk8.gif

Par hk_lisse - Publié dans : Trailing Stop
- Voir les commentaires - Recommander
 
Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus