Bonsoir,
j’ai programmé un petit indicateur maison.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// KAMA200
Period1 = 200
FastPeriod1 = 2
SlowPeriod1 = 30
Fastest1 = 2 / (FastPeriod1 + 1 )
Slowest1 = 2 / (SlowPeriod1 + 1 )
if barindex < Period1+ 1 then
Kama200= close
else
Num1 = abs (close - close [ Period1] )
Den1 = summation [ Period1] (abs (close - close [ 1 ] ))
ER1 = Num1 / Den1
Alpha1 = SQUARE (ER1 * (Fastest1 - Slowest1 )+ Slowest1)
KAMA200 = (Alpha1 * Close ) + ((1 - Alpha1)* Kama200[ 1 ] )
endif
Period = 50
xClose = (Open + High + Low + Close )/ 4
Distance = xclose- kama200
if distance > 0 then
distanceUp = distance
endif
if distance < 0 then
distanceDn = distance
endif
EcartUp = exponentialaverage [ period] (distanceup)
EcartDn = exponentialaverage [ period] (distanceDn)
if ecartUp > - ecartDn then
spreadUp = ecartUp
elsif ecartUp < - ecartDn then
spreadUp = - ecartDn
endif
if ecartDn < - ecartUp then
spreadDn = ecartDn
elsif ecartDn > - ecartUp then
spreadDn = - ecartUp
endif
period = 50
dev = 2.0
MA = average [ period] (distance)
BolUp = average [ 50 ] (spreadUp+ STD [ period] * dev)
BolDn = average [ 50 ] (spreadDn- STD [ period] * dev)
return Distance as "distance" , spreadUp as "EcartUp" , spreadDn as "EcartDn" , BolUp as "Boll Sup" , BolDn as "Boll Inf" , MA as "Boll Milieu"
or, j’ai programmé un screener identifiant les changements de direction tels que :
ignored, ecartup, ignored, ignored, ignored, ignored = CALL “Distance cours / KAMA”(close)
c5changeup = ( ecartup > ecartup[1]) and (ecartup[1] < ecartup[2])
ignored, ignored, ecartdn, ignored, ignored, ignored = CALL “Distance cours / KAMA”(close)
c6changedn = (ecartdn < ecartdn[1]) and (ecartdn[1] > ecartdn[2])
SCREENER[(c5changeup AND c6changedn)] ((close/DClose(1)-1)*100 AS “% Veille”)
j’ai un problème dans la mesure où le screener me renvoie des éléments erronés.
Quelqu’un pourrait il voir ce qui ne fonctionne pas dans mon indicateur ? Je pense que le problème vient du calcul des ecartup et ecartdn.
Merci