Bonjour, dans l’indicateur suivant (que j’ai programmé) apparait une ligne horizontale lorsque la condition définie est remplie. Pour une question de lisibilité, j’aimerai que cette ligne disparaît. Comment faire SVP?
merci d’avance.
// KAMA50
Period = 50
FastPeriod = 2
SlowPeriod = 30
Fastest = 2 / (FastPeriod + 1)
Slowest = 2 / (SlowPeriod + 1)
if barindex < Period+1 then
Kama=close
else
Num = abs(close-close[Period])
Den = summation[Period](abs(close-close[1]))
ER = Num / Den
Alpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)
KAMA = (Alpha * Close) + ((1 -Alpha)* Kama[1])
endif
avg = kama
// KAMA50
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
avg1 = kama200
if avg > avg1 then
distanceup = abs(avg- avg1)
endif
if avg < avg1 then
distancedown = abs(avg - avg1)
endif
a = average[50](distanceup)
b = average[50](distancedown)
bornehaute = avg1 +A
bornebasse = avg1 - B
actionzone = (kama < bornehaute) and (kama > bornebasse) and (kama200 < bornehaute) and (kama200 > bornebasse)
bornehauteintervention = bornehaute and actionzone
bornebasseintervention = bornebasse and actionzone
return bornehauteintervention as "borne haute KAMA", bornebasseintervention as "borne basse KAMA"
Désolé je ne vois pas de ligne horizontale, s’agit-il des variables “bornehauteintervention” et “bornebasseintervention” ?
Autant pour moi. Il s’agit de lignes verticales très fines qui se positionnent au début et à la fin de l’indicateur lorsque les conditions sont remplies.
merci.
Ces lignes verticales sont issues des variables “bornehauteintervention” et “bornebasseintervention”, car tu as codé des conditions booléennes (1= vrai ; 0 = faux). Mais ce que je ne comprends pas c’est pourquoi celle-ci retourne des valeurs différentes, c’est à dire celles de ‘borne haute’ et ‘borne basse’ qui sont justement contenues dans ces booléens…
En fait, si je résume, tu as “mal” codé tes variables, mais en le faisant, tu as découvert un comportement ‘buggé’ de la restitution de leurs valeurs (mais qui apparemment te conviens ?) Je vais reporter ce phénomène, que je trouve vraiment étrange 🙄
Pour répondre à la question sur l’invisibilité des lignes verticales, je vois 2 solutions possibles, soit jouer avec l’alpha (transparence) de la couleur des lignes, soit restituer les lignes avec des composants graphiques de type DRAWSEGMENT.
Essaye ça:
// KAMA50
Period = 50
FastPeriod = 2
SlowPeriod = 30
Fastest = 2 / (FastPeriod + 1)
Slowest = 2 / (SlowPeriod + 1)
if barindex < Period+1 then
Kama=close
else
Num = abs(close-close[Period])
Den = summation[Period](abs(close-close[1]))
ER = Num / Den
Alpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)
KAMA = (Alpha * Close) + ((1 -Alpha)* Kama[1])
endif
avg = kama
// KAMA50
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
avg1 = kama200
if avg > avg1 then
distanceup = abs(avg- avg1)
endif
if avg < avg1 then
distancedown = abs(avg - avg1)
endif
a = average[50](distanceup)
b = average[50](distancedown)
bornehaute = avg1 +A
bornebasse = avg1 - B
actionzone = (kama < bornehaute) and (kama > bornebasse) and (kama200 < bornehaute) and (kama200 > bornebasse)
if actionzone then
drawsegment(barindex[1],bornehaute[1],barindex,bornehaute)
drawsegment(barindex[1],bornebasse[1],barindex,bornebasse)
endif
return
Or this one:
// KAMA50
Period = 50
FastPeriod = 2
SlowPeriod = 30
Fastest = 2 / (FastPeriod + 1)
Slowest = 2 / (SlowPeriod + 1)
if barindex < Period+1 then
Kama=close
else
Num = abs(close-close[Period])
Den = summation[Period](abs(close-close[1]))
ER = Num / Den
Alpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)
KAMA = (Alpha * Close) + ((1 -Alpha)* Kama[1])
endif
avg = kama
// KAMA50
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
avg1 = kama200
if avg > avg1 then
distanceup = abs(avg- avg1)
endif
if avg < avg1 then
distancedown = abs(avg - avg1)
endif
a = average[50](distanceup)
b = average[50](distancedown)
bornehaute = avg1 +A
bornebasse = avg1 - B
actionzone = (kama < bornehaute) and (kama > bornebasse) and (kama200 < bornehaute) and (kama200 > bornebasse)
IF actionzone = 0 then
bornehaute = bornehaute[1]
bornebasse = bornebasse[1]
ENDIF
//bornehauteintervention = bornehaute and actionzone
//bornebasseintervention = bornebasse and actionzone
return bornehaute AS "High",bornebasse AS "Low"//bornehauteintervention as "borne haute KAMA", bornebasseintervention as "borne basse KAMA"
Or this one:
Only French in the French speaking forum please Roberto! 🙂
Pour information, le soucis de variable qui retourne sa vrai valeur dans une condition booléenne est connu et présent depuis toujours dans les versions inférieures à la v11 ! Bref, c’est chose du passé désormais grâce l’update version 11 de la plateforme.