Bonjour,
Je me suis inspiré de la base du code situé ici:
Changement couleur de remplissage entre EMA
// base 21 ticks
valMMmin = 40
valMMMax = 110
MAH=average[5]
//timeframe(100 ticks)
valMMmin100 = valMMmin * 4.762
valMMMax100 = valMMMax * 4.762
//timeframe(21 ticks)
ma1 = ExponentialAverage[valMMmin](close)
ma2 = ExponentialAverage[valMMmax](close)
ma3 = ExponentialAverage[valMMmin100](close)
ma4 = ExponentialAverage[valMMmax100](close)
if ma1>ma2 AND ma3>ma4 then
red=0
green=255
elsif ma1<ma2 AND ma3<ma4 then
red=255
green=0
else
red=155
green=155
endif
colorbetween(ma1,ma2,red,green,0,50)
return
Mais je rencontre un problème: pas de couleur.
Objectif:
Avoir un ruban de couleur verte (par ex) si le cours monte et qu’il y a concordance entre 21 ticks et 100 ticks (les 2 haussières).
Avoir un ruban de couleur rouge (par ex) si le cours descends, et qu’il y a concordance des EMA entre 21 et 100 ticks (les 2 baissières).
Si haussier en 21 ticks et baissiers en 100 ticks alors le mieux, on affiche rien.
Je simule le 100 ticks en multipliant les valeurs des EMA 21 ticks par 4.762
Une idée svp ?
Merci.
En fait après redémarrage (ça devait planter) cela fonctionne… presque.
J’ai l’impression que j’ai une grosse erreur sur les couleurs.
valMMmin = 40
valMMMax = 110
MAH=average[5]
//timeframe(100 ticks)
valMMmin100 = valMMmin * 4.762
valMMMax100 = valMMMax * 4.762
On dirait que le fait de multiplier les valeurs par 4.762 ne fonctionne pas en effet, je n’ai pas du tout les croisements au même endroit quand j’affiche une fenêtre 100 ticks avec ces mêmes EMA. Les horaires des croisements ne correspondent absolument pas.
Bon finalement ça marche pas trop mal.
J’en suis à cela:
valMMmin = 40
valMMMax = 110
//timeframe(100 ticks)
valMMmin100 = valMMmin * 4.2
valMMMax100 = valMMMax * 4.2
STO100 = Stochasticd[35,15,9](close)
//timeframe(21 ticks)
ma1 = ExponentialAverage[valMMmin](close)
ma2 = ExponentialAverage[valMMmax](close)
ma3 = ExponentialAverage[valMMmin100](close)
ma4 = ExponentialAverage[valMMmax100](close)
if ma1>ma2 AND ma3>ma4 then
red = 0
green = 255
alpha = 20
elsif ma1<ma2 AND ma3<ma4 then
red = 255
green = 0
alpha = 40
elsif ma1<ma2 AND ma3>ma4 then
red = 100
green = 255
alpha = 20
else
red = 0
green = 0
alpha = 0
endif
colorbetween(ma1,ma2,red,green,0,alpha)
IF STO100 >= 80 THEN
DRAWTEXT ("-",barindex, highest[7](high)+4) coloured(255,0,0)
ENDIF
IF STO100 <= 20 THEN
DRAWTEXT ("-",barindex, highest[7](high)-4) coloured(10,105,100, 255)
ENDIF
return ma1 coloured(0,0,255,40) style(line,1)
Mais je rencontre un problème.
En effet je voudrais utiliser le stochastique 11 5 3 du MTF 100 ticks sur le 10 ticks… mais pas possible ?
J’en suis à des approximations mais c’est pas terrible.
Une idée svp pour le MTF en ticks ?
Salut
J’ai introduit un stochastique calculé “manuellement” dans votre code.
Vous pouvez paramétrer le nombre de périodes et le lissage de K et D.
valMMmin = 40
valMMMax = 110
///Transformation ticks
t1 = 100
t2 = 10
trans = t1/t2
//timeframe(100 ticks)
valMMmin100 = valMMmin*trans
valMMmax100 = valMMMax*trans
//STOCASTICO
P=11
K=5
D=3
REM First calculate highest and lowest P bars
maximo = highest[round(P*trans)](high)
minimo = lowest[round(P*trans)](low)
REM Second. calculate oscilator
oscilador = (close - minimo) / (maximo - minimo) * 100
REM get the %K y %D
lineaK = average[round(k*trans)](oscilador)
lineaD = average[round(d*trans)](lineaK)
//timeframe(xx ticks)
ma1 = ExponentialAverage[valMMmin](close)
ma2 = ExponentialAverage[valMMmax](close)
ma3 = ExponentialAverage[valMMmin100](close)
ma4 = ExponentialAverage[valMMmax100](close)
if ma1>ma2 AND ma3>ma4 then
red = 0
green = 255
alpha = 20
elsif ma1<ma2 AND ma3<ma4 then
red = 255
green = 0
alpha = 40
elsif ma1<ma2 AND ma3>ma4 then
red = 100
green = 255
alpha = 20
else
red = 0
green = 0
alpha = 0
endif
colorbetween(ma1,ma2,red,green,0,alpha)
IF lineaK >= 80 THEN
DRAWTEXT ("-",barindex, highest[7](high)+4) coloured(255,0,0)
ENDIF
IF lineaK <= 20 THEN
DRAWTEXT ("-",barindex, highest[7](high)-4) coloured(10,105,100, 255)
ENDIF
return ma1 coloured(0,0,255,40) style(line,1)
Merci, je vais tester cela.