Bonjour à tous,
dans le but d’être aider au codage d’un indicateur (si possible) je vous partage ma vision de la tendance.
Exemple :
- CAC graph Daily,
- on note la “couleur” en clôture des 10 derniers chandeliers soit : 7 vert, 3 rouge —-> 70% de chandelier vert, 30% de rouge fin du premier calcul (ce qui sera notre 1ere variable/condition de l’indicateur)
- on note l’amplitude de pips/points réalisés globalement par les chandeliers vert, puis rouge soit : les 7 chandeliers verts on générés 60 points entre leurs ouvertures est leurs clôtures, les chandeliers rouge eux 28 points —-> 68.18% de points realisés sont à la hausse. (fin du 2eme calcul, variable/condition)
- l’addition et la division de ces 2 résultats nous donne notre tendance = 68 + 70 / 2 = 69 soit la tendance est haussiere puisque 69 > 50
- Ma question est donc est t-il possible de coder tout cela ? Ou existe t-il deja quelque chose de ce genre ? Grand merci à vous 🙂
Ou mieux de faire 2 indicateurs bien distincts pour chaque calcul ^^
Voilà le code qui correspond à ton idée:
period = 10
green=0
red=0
greenrange=0
redrange=0
for i = 0 to period-1 do
if close[i]>open[i] then
green=green+1
greenrange=abs(close[i]-open[i])+greenrange
elsif close[i]<open[i] then
red=red+1
redrange=abs(close[i]-open[i])+redrange
endif
next
bull = (green+greenrange)/2
bear = (red+redrange)/2
return bull coloured(0,255,0) style(line,2), bear coloured(255,0,0) style(line,2)
Bonjour Nicolas,
j’ai un probleme avec cet indicateur, jai tout mis sur l’image, j’ai comme l’impression quil ne prend pas en compte les condition une deja ^^
Désolé je n’avais pas normalisé les valeurs en pourcentage:
period = 10
green=0
red=0
greenrange=0
redrange=0
for i = 0 to period-1 do
if close[i]>open[i] then
green=green+1
greenrange=abs(close[i]-open[i])+greenrange
elsif close[i]<open[i] then
red=red+1
redrange=abs(close[i]-open[i])+redrange
endif
next
green=(green/period)*100
red=(red/period)*100
totalrange=greenrange+redrange
greenrange=(greenrange/totalrange)*100
redrange=(redrange/totalrange)*100
bull = (green+greenrange)/2
bear = (red+redrange)/2
return bull coloured(0,255,0) style(line,2), bear coloured(255,0,0) style(line,2)
Merci bien, le code doit etre bon pour le 2eme cependant jai du mal à l’interpreter representé de cet façon ^^
Je suis chiant mais lorsque j’additionne les 2 valeur en mouvement on obtient jamais 100 par exemple .. ou alors je suis completement à coté
D’accord, j’ai lu les 5 premiere minutes en mode “adx” mais pas du tout seule la partie supérieure à 50 compte, un grand merci à toi Nicolas encore une fois toujours au top !! 🙂
Bonjour déterrage de post pour un autre indicateur de tendance à base de MM Zero retard. Juste je n’arrive pas à imbriquer la formule “IF” et je pense que cela vous prendra peu de temps à corriger. Le code parle de lui même mais l’objectif est d’isoler :
- Tendance haussier fort : MMC>MML et cours > MML => Vert foncé
- Tendance haussière normale : MMC>MML => Vert clair
et Inversement…
Indicateur = 0
//Setting
X=20//MM Long
Y=7//MM Short
A=80//Color trend strong
B=10//Color trend weak
//MM Zero retard
EMA1 = ExponentialAverage[X](close)
EMA2 = ExponentialAverage[X](EMA1)
diff1 = EMA1 - EMA2
MM1 = EMA1 + diff1//MM Long Zero retard
EMA2 = ExponentialAverage[Y](close)
EMA3 = ExponentialAverage[Y](EMA2)
diff2 = EMA2 - EMA3
MM2 = EMA2 + diff2//MM courte Zero retard
//Trend long strong
IF MM2>MM1 and Close>MM2 THEN
r=0
g=255
b=0
alpha=A
ENDIF
//Trend long weak
IF MM2>MM1 and Close<MM2 THEN
r=0
g=255
b=0
alpha=B
ENDIF
//Trend short strong
IF MM2<MM1 and Close<MM2 THEN
r=255
g=0
b=0
alpha=A
ENDIF
//Trend short weak
IF MM2<MM1 and Close>MM2 THEN
r=255
g=0
b=0
alpha=B
ENDIF
Backgroundcolor(r,g,b,alpha)
RETURN indicateur
Celui-ci ne fonctionne pas (problème d’imbrication du IF je pense). J’ai pourtant lu le manuel et essayé avec ELSIF mais rien n’y fait.
Après si vous avez un autre indicateur de tendance je suis preneur. Comme celui-ci c’est à dire à très visuel, à insérer directement sur le graph (pour coloration du fond) et qui fait apparaître le fléchissement de la tendance en cours…
Pourquoi sur la base du multi time frame. L’indicateur de tendance de folie, le miraculeux, l’infaillible 🙂
Merci pour votre aide.
Test continu d'une condition pour colorier le graphique
Et je mets en lien un autre post sur lequel Nicolas a travaillé pour un code du même style qui fonctionne. Ce dernier est cependant à base de 3 MM alors que 2 suffisent j’ai l’impression. Egalement la fonction summation n’apporte pas grand chose si ce n’est du retard. L’autre sera à mon avis plus réactif.
Indicateur = 0
//Paramétrage
X = 20//MM Longue
Y = 7//MM Courte
//Calcul des moyenne mobile sans retard
EMA1 = ExponentialAverage[X](close)
EMA2 = ExponentialAverage[X](EMA1)
diff1 = EMA1 - EMA2
MM1 = EMA1 + diff1//Long
EMA3 = ExponentialAverage[Y](close)
EMA4 = ExponentialAverage[Y](EMA3)
diff2 = EMA3 - EMA4
MM2 = EMA3 + diff2//Court
//TENDANCE HAUSSIERE
IF MM2>MM1 and close>MM1 THEN//Forte
r=0
g=255
b=0
alpha=60
ENDIF
IF MM2>MM1 and close<MM2 THEN//Fléchissement
r=0
g=255
b=0
alpha=10
ENDIF
//TENDANCE BAISSIERE
IF MM2<MM1 and close<MM1 THEN//Forte
r=255
g=0
b=0
alpha=60
ENDIF
IF MM2<MM1 and close>MM2 THEN//Fléchissement
r=0
g=255
b=0
alpha=10
ENDIF
Backgroundcolor(r,g,b,alpha)
RETURN indicateur
Voilà il est bon celui-ci en fait. Donc pour ceux qui souhaitent un indicateur simple qui colorie les fonds du graphs. Il y a les 2 précités. Le premier prend en considération 3 MM et celui-ci seulement 2.
Après analyse je reviens sur le sujet, pour ce que cela intéresse je fais le choix d’utiliser la configuration suivante :
Indicateur = 0
//MM TENDANCE DE FONDS
MM1 = exponentialaverage[200](close) // sur les 50 dernières heures (M15)
//MM COURTES DE CONSOLIDATION
MM2 = ExponentialAverage[20](close)
MM3 = ExponentialAverage[7](close)
//Calcul des MM Zero retard
MM2i = ExponentialAverage[20](MM2)
dif2 = MM2 - MM2i
MM2zr = MM2 + dif2//MM2 Zero retard
MM3i = ExponentialAverage[7](MM3)
dif3 = MM3 - MM3i
MM3zr = MM3 + dif3 //MM3 Zero retard
//Calcul des conditions de pente
PenteMM1 = abs(MM1-MM1[1])
X = 2 //en points/pips
MM1Forte = PenteMM1>X*ticksize
//TENDANCE HAUSSIERE
IF close>MM1 THEN
r=0
g=255
b=0
alpha=20//Premice = vert clair
ENDIF
IF MM2zr>MM1 THEN
r=0
g=255
b=0
alpha=50//En cours de changement = vert medium
ENDIF
IF MM2>MM1 and MM1Forte THEN
r=0
g=255
b=0
alpha=120//Etablie = vert foncé
ENDIF
//TENDANCE BAISSIERE
IF close<MM1 THEN
r=255
g=0
b=0
alpha=20//Premice = rouge claire
ENDIF
IF MM2zr<MM1 THEN
r=255
g=0
b=0
alpha=50//En cours de changement = rouge medium
ENDIF
IF MM2<MM1 and MM1Forte THEN
r=255
g=0
b=0
alpha=120//Etablie = rouge medium
ENDIF
//CONSOLIDATION EN TENDANCE
if (MM2zr>MM1 and MM3zr<MM2zr) OR (MM2zr<MM1 and MM3zr>MM2zr) then
r=0
g=0
b=255
alpha=20//BLEU
ENDIF
Backgroundcolor(r,g,b,alpha)
RETURN indicateur
Cela me permet :
- d’identifier de façon plus réactive le changement de tendance de fond (Cours > franchissent MM longue)
- d’identifier tôt les tendances (par croisement des MM courtes)
- d’identifier d’un coup d’oeil si les tendances courtes sont en tendance de fond ou en contre tendance
Je trouve cela visuel et suffisant.
La problématique est que l’indicateur ne gèrera pas les périodes de range – dans laquelle Cours et MM courtes feront des oscillations autour de MM1. Il y aura alternativement du rouge du vert du rouge du vert en fond de graph…
La solution est d’utiliser les pistes identifier par Nicolas (Cf celles figurant dans le post cité + haut) ou tout simplement de régler dans ce code la pente et la couleur medium. En PJ ce que ça donne.
N’hésitez pas à me dire ce que vous en pensez ayant peu de km au compteur sur les marchés.
NB : petit cassage de support en live qui fait plaisir… On pousse !
erreur ligne 65 – rouge foncé. un détail.