Trailing Stop basé sur la volatilité : le Cynthia Kase Dev-Stop.
Voici le code pour Prorealtime, du Kase Dev-Stop, trailing stop basé sur la volatilité. P1 représente le nombre de jours pris en compte pour le calcul de l'ATR. P2, P3, P4 sont des coéfficients pour les différents niveaux de stop. On peut également se servir du système comme target. La première ligne est appelée "warning"
p1=20
p2=1
p3=2.2
p4=3.3
ecart=0
ht=highest[2](high)
bs=lowest[2](low)
truer=max(max(ht-bs,abs(ht-close[2])),abs(bs-close[2]))
atruer=average[p1](truer)
for i=0 to p1-1 do
ecart=ecart+square(truer[i]-atruer)
next
ecart=ecart/p1
sdev=sqrt(ecart)
dev1=close-atruer
dev2=close-atruer-sdev*p2
dev3=close-atruer-p3*sdev
dev4=close-atruer-p4*sdev
if dev1<dev1[1] and close > dev4[1] then
dev1=dev1[1]
endif
if dev2<dev2[1] and close>dev4[1] then
dev2=dev2[1]
endif
if dev3<dev3[1] and close>dev4[1] then
dev3=dev3[1]
endif
if dev4<dev4[1] and close>dev4[1] then
dev4=dev4[1]
endif
dev5=close+atruer
dev6=close+atruer+sdev*p2
dev7=close+atruer+p3*sdev
dev8=close+atruer+p4*sdev
if dev5>dev5[1] and close< dev8[1] then
dev5=dev5[1]
endif
if dev6>dev6[1] and close< dev8[1] then
dev6=dev6[1]
endif
if dev7>dev7[1] and close< dev8[1] then
dev7=dev7[1]
endif
if dev8>dev8[1] and close< dev8[1] then
dev8=dev8[1]
endif
return dev1,dev2,dev3,dev4, dev5, dev6, dev7, dev8
Avec un exemple de l'indicateur appliqué à ALU :
On peut également s'en servir comme indicateur de tendance avec une fonction Stop And Reverse.
Voici le code en version SAR :
p1=20
p2=1
p3=2.2
p4=3.3
ecart=0
ht=highest[2](high)
bs=lowest[2](low)
truer=max(max(ht-bs,abs(ht-close[2])),abs(bs-close[2]))
atruer=average[p1](truer)
for i=0 to p1-1 do
ecart=ecart+square(truer[i]-atruer)
next
ecart=ecart/p1
sdev=sqrt(ecart)
dev1=close-atruer
dev2=close-atruer-sdev*p2
dev3=close-atruer-p3*sdev
dev4=close-atruer-p4*sdev
if dev1<dev1[1] and close > dev4[1] then
dev1=dev1[1]
endif
if dev2<dev2[1] and close>dev4[1] then
dev2=dev2[1]
endif
if dev3<dev3[1] and close>dev4[1] then
dev3=dev3[1]
endif
if dev4<dev4[1] and close>dev4[1] then
dev4=dev4[1]
endif
dev5=close+atruer
dev6=close+atruer+sdev*p2
dev7=close+atruer+p3*sdev
dev8=close+atruer+p4*sdev
if dev5>dev5[1] and close< dev8[1] then
dev5=dev5[1]
endif
if dev6>dev6[1] and close< dev8[1] then
dev6=dev6[1]
endif
if dev7>dev7[1] and close< dev8[1] then
dev7=dev7[1]
endif
if dev8>dev8[1] and close< dev8[1] then
dev8=dev8[1]
endif
if close>dev8[1] then
flag=-1
else
if close<dev4[1] then
flag=1
endif
endif
if flag=-1 then
ind1=dev1
ind2=dev2
ind3=dev3
ind4=dev4
k=1
else
ind1=dev5
ind2=dev6
ind3=dev7
ind4=dev8
k=-1
endif
return ind1 COLOURED BY k,ind2 coloured by k,ind3 coloured by k,ind4 coloured by k