Salut à tous, voici ma tentative pour faire apparaitre sur mon graphique 1 min les niveaux fibonacci de la bougie 15 minute précédente pour le scalping ou day trading.
Je sais que je ne suis pas loin de réussir mais il semble que j’ai un problème
Si quelqu’un voit la solution ou bien est intéréssé par ce code, à bientôt de vous lire
Defparam CALCULATEONLASTBARS = 15
MMinute = CurrentMinute
If MMinute =0 then
Haut = Highest[15](high)
Bas = Lowest[15](low)
Range15 = Haut – Bas
If close[1] < open[15] then
Fibo61 = ROUND(Bas + Range15 * 61.8/100)
Fibo50 = ROUND(Bas + Range15 * 50/100)
Fibo38 = ROUND(Bas + Range15 * 38.2/100)
Fibo23 = ROUND(Bas + Range15 * 23.6/100)
Elsif close[1] > open[15] then
Fibo61 = ROUND(Haut – Range15 * 61.8/100)
Fibo50 = ROUND(Haut – Range15 * 50/100)
Fibo38 = ROUND(Haut – Range15 * 38.2/100)
Fibo23 = ROUND(Haut – Range15 * 23.6/100)
Endif
Elsif MMinute >0 and MMinute <= 15 then
Haut = Highest[15](high[MMinute])
Bas = Lowest[15](low[MMinute])
Range15 = Haut – Bas
If close[MMinute] < open[MMinute+15] then
Fibo61 = ROUND(Bas + Range15 * 61.8/100)
Fibo50 = ROUND(Bas + Range15 * 50/100)
Fibo38 = ROUND(Bas + Range15 * 38.2/100)
Fibo23 = ROUND(Bas + Range15 * 23.6/100)
Elsif close[MMinute] > open[MMinute+15] then
Fibo61 = ROUND(Haut – Range15 * 61.8/100)
Fibo50 = ROUND(Haut – Range15 * 50/100)
Fibo38 = ROUND(Haut – Range15 * 38.2/100)
Fibo23 = ROUND(Haut – Range15 * 23.6/100)
Endif
Elsif MMinute >=16 and MMinute <= 30 then
Haut = Highest[15](high[MMinute-15])
Bas = Lowest[15](low[MMinute-15])
Range15 = Haut – Bas
If close[MMinute-15] < open[MMinute] then
Fibo61 = ROUND(Bas + Range15 * 61.8/100)
Fibo50 = ROUND(Bas + Range15 * 50/100)
Fibo38 = ROUND(Bas + Range15 * 38.2/100)
Fibo23 = ROUND(Bas + Range15 * 23.6/100)
Elsif close[MMinute-15] > open[MMinute] then
Fibo61 = ROUND(Haut – Range15 * 61.8/100)
Fibo50 = ROUND(Haut – Range15 * 50/100)
Fibo38 = ROUND(Haut – Range15 * 38.2/100)
Fibo23 = ROUND(Haut – Range15 * 23.6/100)
Endif
Elsif MMinute >=31 and MMinute <= 45 then
Haut = Highest[15](high[MMinute-30])
Bas = Lowest[15](low[MMinute-30])
Range15 = Haut – Bas
If close[MMinute-30] < open[MMinute-15] then
Fibo61 = ROUND(Bas + Range15 * 61.8/100)
Fibo50 = ROUND(Bas + Range15 * 50/100)
Fibo38 = ROUND(Bas + Range15 * 38.2/100)
Fibo23 = ROUND(Bas + Range15 * 23.6/100)
Elsif close[MMinute-30] > open[MMinute-15] then
Fibo61 = ROUND(Haut – Range15 * 61.8/100)
Fibo50 = ROUND(Haut – Range15 * 50/100)
Fibo38 = ROUND(Haut – Range15 * 38.2/100)
Fibo23 = ROUND(Haut – Range15 * 23.6/100)
Endif
Elsif MMinute >=46 and MMinute <=59 then
Haut = Highest[15](high[MMinute-45])
Bas = Lowest[15](low[MMinute-45])
Range15 = Haut – Bas
If close[MMinute-45] < open[MMinute-30] then
Fibo61 = ROUND(Bas + Range15 * 61.8/100)
Fibo50 = ROUND(Bas + Range15 * 50/100)
Fibo38 = ROUND(Bas + Range15 * 38.2/100)
Fibo23 = ROUND(Bas + Range15 * 23.6/100)
Elsif close[MMinute-45] > open[MMinute-30] then
Fibo61 = ROUND(Haut – Range15 * 61.8/100)
Fibo50 = ROUND(Haut – Range15 * 50/100)
Fibo38 = ROUND(Haut – Range15 * 38.2/100)
Fibo23 = ROUND(Haut – Range15 * 23.6/100)
Endif
DRAWSEGMENT(barindex, Fibo61, barindex[15], Fibo61)
DRAWSEGMENT(barindex, Fibo50, barindex[15], Fibo50)
DRAWSEGMENT(barindex, Fibo38, barindex[15], Fibo38)
DRAWSEGMENT(barindex, Fibo23, barindex[15], Fibo23)
Endif
Return
ça à l’air sympa ! Je n’ai pas bien saisi toutes les conditions contenues dans ton code, quel est le problème exactement de l’indicateur ?
Merci Nicolas,
J’ai codé ça ce week end car c’est une vieille idée et envie mais j’étais fatigué. En tentant de te répondre je viens de me rendre compte d’erreurs fondamentales donc je reviendrai vers vous avec un code corrigé dans son concept.
Le concept : affichage des retracements fibo de la dernière bougie 15min cloturée, mais apparaissant sur un graphique 1 min.
A bientôt
Et bien non, le décompte me semble bon, pour bien prendre la bonne bougie 1 min pour l’open et le close de la dernière bougie 15 minute cloturée.
Je calcule le plus haut et plus bas des 15 dernières minutes par secteur 1-15 / 16-30 / 31-45 et 46-59, virtuellement mes bougies 15 min en 1 min.
Ensuite je différencie les 2 cas selonque l’ouverture de la première minute du secteur est > ou < à la dernière minute du secteur et je calcule le bon retracement fibo du bas vers le haut ou inversement.
Le concept me semble bon mais je n’ai rien qui s’affiche…
Si je comprends bien, sur le graphique 1 minute, à partir de la 16ème minute, tu affiches les niveaux de retracement Fibonacci calculés avec les plus hauts et bas de 1 à 15 minutes ? (et ainsi de suite donc par “secteur” comme tu le décrits …).
C’est ce que j’aimerai afficher oui ! 😉
Bon déjà, j’arrive à afficher maintenant que les commandes drawsegment sont après la boucle if globale … !
Bonsoir idée très intéressante, y a t’il une solution ou cela n’est pas faisable ? Pour de l’intraday Cela peut donner de bon niveau pertinent.
Je viens de coder ce petit indicateur qui je pense correspond assez bien à la demande de @yanaphil :
Toutes les 15 minutes on trace les niveaux Fibonacci de la période précédente (voir image).
defparam drawonlastbaronly=true
//if intradaybarindex=0 then
if openminute=0 or openminute=15 or openminute=30 or openminute=45 then
firstbar=barindex
Range15=haut-bas
haut=0
bas=close*100
endif
//if barindex-firstbar=15 then
//firstbar=barindex
//Range15=haut-bas
//haut=0
//bas=close*100
//endif
haut=max(high,haut)
bas=min(low,bas)
Fibo61 = ROUND(Bas + Range15 * 61.8/100)
Fibo50 = ROUND(Bas + Range15 * 50/100)
Fibo38 = ROUND(Bas + Range15 * 38.2/100)
Fibo23 = ROUND(Bas + Range15 * 23.6/100)
fFibo61 = ROUND(Haut - Range15 * 61.8/100)
fFibo50 = ROUND(Haut - Range15 * 50/100)
fFibo38 = ROUND(Haut - Range15 * 38.2/100)
fFibo23 = ROUND(Haut - Range15 * 23.6/100)
drawsegment(firstbar,Fibo61,barindex,Fibo61)
drawsegment(firstbar,Fibo50,barindex,Fibo50)
drawsegment(firstbar,Fibo38,barindex,Fibo38)
drawsegment(firstbar,Fibo23,barindex,Fibo23)
drawsegment(firstbar,fFibo61,barindex,fFibo61)
drawsegment(firstbar,fFibo50,barindex,fFibo50)
drawsegment(firstbar,fFibo38,barindex,fFibo38)
drawsegment(firstbar,fFibo23,barindex,fFibo23)
return
Bonjour Merci Nicolas,
Par contre ce que je ne comprend pas c’est que nous avons deux zones de retracement, alors qu’il n’en faudrait qu’une non ? comme un fibo classic.
Par exemple fibo61: ROUND(Bas + Range15 * 61.8/100) et ROUND(Haut – Range15 * 61.8/100), donc 2 zones de retracement non ?
l’idée original si j’ai bien compris est d’avoir l’orientation du fibo en fonction de la clôture de la bougie 15 minutes précédente, si baissière ou haussière…est ce si important d’avoir l’orientation de la bougie ?
redzParticipant
Junior
bonjour, j’ai copié le programme sur prt, mais bizarrment , rien ne s’affiche
@redz
Il faut appliquer l’indicateur sur le prix.
redzParticipant
Junior
merci nicolas, mais ça marche toujours pas, je l’ai appliqué sur le prix mais rien.