Bonjour,
Je voudrais pouvoir identifier la dernière bougie positive/négative à la clôture de la bougie en cours même si elle se situe X bougies avant. Je suppose qu’il faut utiliser Barindex mais je n’y arrive pas.
Quelqu’un peut m’aider?
Merci d’avance,
Phil4910
L’identifier c’est possible, mais comment souhaites-tu représenter le résultat de notre recherche ? Ou tu souhaites juste savoir à combien de bougies en arrière celle-ci a été trouvée ?
Bonjour Nicolas,
Je souhaite l’identifier pour l’intégrer dans un code parmi d’autres paramètres. Je n’ai donc pas besoin de savoir si elle se trouve une ou plusieurs bougies en arrière pour en tenir compte ou l’ignorer, sa position par rapport à la bougie actuelle importe peu.
Merci de ton aide,
Phil4910
Voici un premier jet à optimiser qui indique pour la barre en cours :
- si la barre actuelle est positive : en haut de barre le nombre de périodes (incluant celle en cours) positives actuelles et en bas de barre le nombre de barres négatives précédentes
- si la barre actuelle est négative: en bas de barre le nombre de périodes (incluant celle en cours) négatives actuelles et en haut de barre le nombre de barres positives précédentes
- NB: je n’ai pas inclu le cas de barre “neutre”, à modifier donc
- code à visualiser sur le graphique des barres
once Offset = 5 // distance du DRAWTEXT de l’extrême de la barre, peut intégrer un ATR moyen
if close>close[1] then
Q=1
elsif close<close[1] then
Q=-1
else
Q=0// attention il convient d'ajuster le code pour intégrer ce cas
endif
a=0
For b=1 to 50 // peut aussi se gérer avec l'instruction WHILE
Qb1=Q[b-1]
if Q[b]<>Qb1 then
a=a+1
if a = 1 then
n1=b
elsif a=2 then
n2=b-n1
BREAK
endif
endif
next
DRAWTEXT("#n1#", barindex, high+Offset*pipsize,Dialog,standard,10) coloured (0,0,255)
DRAWTEXT("#n2#", barindex, low-Offset*pipsize,Dialog,standard,10) coloured (255,0,0)
return undefined
n1 = nombre de barres dont le close est équivalent (positif ou négatif) au close actuel, et n2 = nombre de barres dont le close est équivalent (positif ou négatif) au close précédent. Donc il conviendra éventuellement de “switcher” n1 et n2 avec un ordre conditionnel si tu veux attribuer la valeur positive à n1 et négative à n2
Merci Pepsmile pour ton code.
Malheureusement, ce n’est pas ce que je recherche pour mon usage; pour donner un exemple plus concret, une partie du code va donner un signal d’achat si la clôture de la bougie en cours est “bullish” et avec une clôture plus élevée que l’ouverture de la dernière bougie “bearish” même si cette bougie “bearish” se trouve X bougies dans le passé.
Merci d’avance,
Phil4910.
Ta précision n’apparaissait pas dans ta description précédente, néanmoins le 1er jet de code est applicable également dans ton exemple plus concret, il te suffit de préciser ta condition dans le haut de mon code
Désolé pour le manque de précision, j’aurais dû être plus complet dans ma demande.
Etant une bille en programation, je ne vois pas ce que tu veux dire en mentionnant la condition en haut du code…
Si tu sais m’orienter, je t’en serais reconnaissant.
Phil4910
Nicolas,
Peux-tu m’apporter ton aide dans ma demande?
Merci,
Phil4910
Pour aller plus vite, je ne vais pas reprendre le code de pepsmile, merci pour son aide malgré tout.
@Phil4910 Tu peux essayer avec ça:
X = 50 //quantité de bougies dans le passé à scanner pour trouver la dernière bougie bearish
for i = 1 to X do
if close[i]<open[i] then
lastbear = close[i]
break
endif
next
// signaux bullish
if close>open and close>lastbear then
signal = 1
else
signal = 0
endif
RETURN signal
Merci Nicolas.
Le code donne des parfois faux signaux (cfr image jointe).
Si tu sais les éliminer, ce serait super!
Phil4910
Le problème vient en effet que l’on teste sur la clôture de la bougie bearish alors que c’est sur l’ouverture, le code devrait être ainsi :
X = 50 //quantité de bougies dans le passé à scanner pour trouver la dernière bougie bearish
for i = 1 to X do
if close[i]<open[i] then
lastbear = open[i]
break
endif
next
// signaux bullish
if close>open and close>lastbear then
signal = 1
else
signal = 0
endif
RETURN signal
C’est exactement ce que je recherchais!
Merci Nicolas,
Phil4910