Bonjour,
Je souhaite créer un tout petit indicateur afin d’y mettre ensuite une alerte.
J’ai regarder dans le forum les topics déjà existants mais n’ai pas trouvé ce que je souhaite réaliser…
Base: graph en X volumes, bougies Heikin Ashi.
But: avoir une alerte à chaque changements de couleurs de bougies pour détecter un éventuel changement de tendance (je dis bien changement de couleurs, car avec Heikin Ashi nous pouvons avoir une bougie verte avec un prix d’ouverture > prix de clôture). Je souhaite pouvoir éventuellement changer l’unité de temps (x-volumes, X-Ticks, 1 mn…).
Comment: création d’un indicateur sous forme de courbe/ligne ou histog., +1 lorsque la bougie est verte, -1 lorsqu’elle est rouge, 0 lorsque c’est un doji. Je mettrais ensuite 2 alertes réglées sur +0.5 et -0.5 pour avoir le signal qu’il y a un changement de couleur.
Merci d’avance pour votre aide.
L’indicateur ci-dessous renvoi 1 si on détecte un passage de heikin rouge à vert et -1 dans le cas inverse : (on peut donc créer des alertes sur le 1/-1 avec l’outil approprié de la plateforme).
//Heikin-Ashi
xClose = (Open+High+Low+Close)/4
if(barindex>2) then
xOpen = (xOpen + xClose)/2
endif
changeToGreencandle = xClose>xOpen AND xClose[1]<xOpen[1]
ChangeToRedcandle = xClose<xOpen AND xClose[1]>xOpen[1]
If changeToGreencandle then
Indicator1=1
else
Indicator1=0
Endif
If ChangeToRedcandle then
Indicator22=-1
Else
Indicator22=0
Endif
Return indicator1 COLOURED(0,255,0) as "Buy", indicator22 COLOURED(255,0,0) as "Sell"
Super!!
Merci Nicolas, c’est exactement ce qu’il me fallait.
Bonne journée, à bientôt.
Bruno.
Bonjour,
Merci pour ce topic et à Nicolas pour cette formule très bien écrite comme toujours.
J’aimerais créer un indicateur similaire basé sur les bougies Heikin Ashi. Je tâtonne un peu malheureusement car c’est un peu plus complexe et j’ai vraiment besoin de votre aide.
Le but serait également d’avoir un indicateur renvoyant 1 (vert) ou -1 (rouge) après avoir détecté un passage de heikin rouge à vert et inversement et après x bougies suivantes de même couleur selon un pourcentage maximum des plus haut et des plus bas ayant eu lieu au cours de la formation de chaque bougie.
Par exemple, après un passage de heikin rouge à vert dont les ombres basses et hautes ne dépassent pas 30 et 50% maximum et si les 2 bougies suivantes sont vertes et que leurs ombres basses et hautes ne dépassent pas également 30 et 50% maximum, un indicateur renvoi +1.
J’ai essayé en vain plusieurs méthodes mais je suis coincé au niveau des pourcentages.
Merci infiniment pour votre aide.
ne dépassent pas 30 et 50% maximum
Ce pourcentage est calculé sur quoi ? Une petite image pour m’aider à bien comprendre ? Merci.
Merci à vous pour votre aide. Voici quelques explications :
Pour une bougie Heiki Hashi verte :
- Le pourcentage de l’ombre supérieure est calculé en mesurant la distance entre la clôture et le niveau le plus haut par rapport au corps de la bougie (distance entre l’ouverture et la clôture). Exemple : Si la distance entre la clôture et le plus haut est de 3 points et que la distance entre l’ouverture et la clôture est de 10 points, alors le pourcentage que représente l’ombre supérieure pour rapport au corps vrai est de 30%.
- Le pourcentage de l’ombre inférieure est calculé en mesurant la distance entre le niveau le plus bas et l’ouverture par rapport au corps de la bougie (distance entre l’ouverture et la clôture). Exemple : Si la distance entre le plus bas et l’ouverture est de 2 points et que la distance entre l’ouverture et la clôture est de 10 points, alors le pourcentage que représente l’ombre inférieure pour rapport au corps vrai est de 20%.
Pour une bougie Heiki Hashi rouge :
- Le pourcentage de l’ombre supérieure est calculé en mesurant la distance entre l’ouverture et le niveau le plus haut par rapport au corps de la bougie (distance entre la clôture et l’ouverture). Exemple : Si la distance entre l’ouverture et le plus haut est de 2 points et que la distance entre la clôture et l’ouverture est de 10 points, alors le pourcentage que représente l’ombre supérieure pour rapport au corps vrai est de 20%.
- Le pourcentage de l’ombre inférieure est calculé en mesurant la distance entre le niveau le plus bas et la clôture par rapport au corps de la bougie (distance entre la clôture et l’ouverture). Exemple : Si la distance entre le plus bas et la clôture est de 3 points et que la distance entre la clôture et l’ouverture est de 10 points, alors le pourcentage que représente l’ombre inférieure pour rapport au corps vrai est de 30%.
Exemple : Je fixe les conditions suivantes pour que l’indicateur renvoi +1 et vert :
- Passage d’une bougie rouge à verte
- Première bougie verte ayant une ombre inférieure ne dépassant pas 30% de son corps et une ombre supérieure ne dépassant pas 50% de son corps
- Deuxième bougie verte ayant une ombre inférieure ne dépassant pas 20% de son corps et une ombre supérieure ne dépassant pas 50% de son corps
- Troisième bougie verte ayant une ombre inférieure ne dépassant pas 20% de son corps et une ombre supérieure ne dépassant pas 50% de son corps
J’ai attaché en pièce jointe une image pour mieux comprendre comment l’indicateur réagit. Le graphique Heiki Hashi est en haut et l’indicateur que je tente de créer en dessous.
Merci encore pour votre aide.
Merci pour ces explications, bien plus facile à comprendre ! Ci-joint donc le code pour ce setup de retournement haussier, selon ta description.
xClose = (open+high+low+close)/4
IF BarIndex=0 THEN
xOpen = open
xHigh = high
xLow = low
ELSe
xOpen = (xOpen[1] + xClose[1])/2
xHigh = Max(Max(high, xOpen), xClose)
xLow = Min(Min(low, xOpen), xClose)
ENDIF
green = xClose>xOpen
red = not green
body = Abs(xclose-xopen)
sup = (xhigh-max(xopen,xclose))/body*100
inf = (min(xopen,xclose)-xlow)/body*100
if green and red[1] then
start=barindex
endif
if barindex-start=2 then
c0 = green and inf<20 and sup<50
c1 = green[1] and inf[1]<20 and sup[1]<50
c2 = green[2] and inf[2]<30 and sup[1]<50
else
c0=0
c1=0
c2=0
endif
return (c0 and c1 and c2) coloured(0,255,0) style(histogram)
Le code est parfait ! Merci beaucoup ! Je comprends mieux maintenant.
Par contre, est-il possible d’ajouter le retournement baissier ? Le problème est que tout est inversé donc j’imagine qu’il faut ajouter les paramètres pour une bougie rouge tels que :
green = xClose>xOpen
red = not green
body = Abs(xclose-xopen)
sup = (xhigh-max(xopen,xclose))/body*100
inf = (min(xopen,xclose)-xlow)/body*100
body2 = Abs(xopen-xclose)
sup2 = (xhigh-max(xclose,xopen))/body*100
inf2 = (min(xclose,xopen)-xlow)/body*100
Pas besoin de changer ces lignes, peu importe la couleur de la bougie, les mèches supérieures et inférieures seront toujours les mêmes.
Pour les conditions baissières il faut uniquement modifier les conditions des lignes 18 à 29.
Merci. J’ai ajouté ces lignes mais je pense qu’il est possible de simplifier. Quand pensez-vous ?
if green and red[1] then
start=barindex
endif
if barindex-start=2 then
c0 = green and inf<20 and sup<50
c1 = green[1] and inf[1]<20 and sup[1]<50
c2 = green[2] and inf[2]<30 and sup[1]<50
else
c0=0
c1=0
c2=0
endif
if red and green[1] then
start=barindex
endif
if barindex-start=2 then
c3 = red and inf<20 and sup<50
c4 = red[1] and inf[1]<20 and sup[1]<50
c5 = red[2] and inf[2]<30 and sup[1]<50
else
c3=0
c4=0
c5=0
endif
return (c0 and c1 and c2) coloured(0,255,0) style(histogram)
return (c3 and c4 and c5) coloured(255,0,0) style(histogram)
Je tombe malheureusement sur un problème de syntaxe. La ligne 18 doit être modifiée je pense. Qu’en pensez-vous ?
Il ne peut pas y avoir 2 fonctions RETURN dans le code d’un indicateur, il faut simplifier en une seule ligne : (à première vue le reste à l’air correct, bravo).
return (c0 and c1 and c2) coloured(0,255,0) style(histogram), (c3 and c4 and c5) coloured(255,0,0) style(histogram)
Non testé !
J’ai testé le code avec la fonction RETURN sur une seule ligne. Pas de message d’erreur mais seuls les haussiers apparaissent.
Les baissiers donnent un résultat négatif dans le calcul. C’est peut être la cause du problème ?
Après modification des conditions des ombres supérieures et inférieures, tout semble parfaitement fonctionner !
Merci beaucoup pour votre aide.
Ce serait sympa de partager le code finalisé pour que d’autres en profitent ! Merci ! 😉