Bonjour à tous,
J’ai trouvé ce programme pour signaler les englobantes, cependant j’ai des messages d’erreur que je ne sais pas comment corriger.
Merci pour votre aide.
Bonne soirée.
nom : “n”
libellé : “Valeur maximale de la recherche”
type : “entier”
restriction : “>0”
valeur par défaut : “6”
If barindex > n-1 then
Englobante = 0
rouge = open[0] > close[0]
if rouge then
for i = 1 to n
if open[0] > close and open[0] > open and close[0] < open and close[0] < close then
englobante = -i
rmin = min(rmin, englobante)
else
break
endif
next
else
for i = 1 to n
if open[0] < close and open[0] < open and close[0] > open and close[0] > close then
englobante = +i
rmax = max(rmax, englobante)
else
break
endif
next
endif
endif
BorneHaute = rmax
BorneBasse = rmin
Zero = 0
return Englobante as "Englobante", BorneHaute as "Borne haute", BorneBasse as "Borne basse", zero as "Zéro"
Publiez uniquement dans la langue du forum dans laquelle vous publiez. Par exemple, l’anglais uniquement dans les forums anglophones et le français uniquement dans les forums francophones.
Merci 🙂
Ce code n’est pas correct, les boucles sont inutiles et n’utilisent aucune de leurs itérations ?! c’est assez curieux..
Bref, tu trouveras un code de bougie englobante ici : The “Engulfing pattern” (indicator & screener)
Désolé pour l’emplacement je n’ai pas fait attention…
Merci pour le code, je vais l’essayer.
Bonne journée.
Je viens d’essayer et cela fonctionne.
J’ai voulu modifier le code pour ne prendre en compte que les corps des bougies et non plus les mèches.
Je n’y comprends rien car cela ne marche pas alors que j’ai juste remplacé les low et high par les close et open :
ENGULFING = 0
IF close > open AND close > close[1] AND open < open[1] THEN
ENGULFING = 1
ENDIF
IF close < open AND close < close[1] AND open > open[1] THEN
ENGULFING = -1
ENDIF
return ENGULFING
Encore une fois, merci pour votre aide…
Bonjour, merci de lire et appliquer les règles de publication dans le grand cadre jaune plus bas, en particulier ici l’usage du bouton “insert PRT code”, voir image ci-jointe si besoin de le localiser, merci.
Inutile de reposter le code, je vais le reformater dans le message ci-dessus.
Pour que le corps englobe seul le corps précédent, dans ta modification il faut aussi tenir compte de qui est le plus haut et qui est le plus bas entre l’open précédente et la close précédente. En d’autres termes il faut remplacer high[1] par max(open[1],close[1]), et low[1] par min(open[1],close[1]).
ENGULFING = 0
IF close > open AND close > max(open[1],close[1]) AND open < min(open[1],close[1]) THEN
ENGULFING = 1
ENDIF
IF close < open AND close < min(open[1],close[1]) AND open > max(open[1],close[1]) THEN
ENGULFING = -1
ENDIF
return ENGULFING
Au passage, dans le code original avec mèches dans l’indicateur du lien post #148861, il n’y avait pas besoin de vérifier close>open (resp close<open) dans la mesure où si close>high[1] et open<low[1], forcément close>open… donc idem dans les modifs ci-dessus où on a remplacé mèche par corps, ceci suffit:
ENGULFING = 0
IF close > max(open[1],close[1]) AND open < min(open[1],close[1]) THEN
ENGULFING = 1
ENDIF
IF close < min(open[1],close[1]) AND open > max(open[1],close[1]) THEN
ENGULFING = -1
ENDIF
return ENGULFING
Bonjour Noobywan,
Merci pour le code actuel 🙂
Est-ce qu’il te serait possible d’améliorer le code en ajoutant un filtre sur le résultat pour ne sélectionner que les englobantes qui font suite à une série de bougies haussières ou baissières, bref à l’issue d’un mouvement haussier ou baissier de N bougies ?
Merci d’avance
Bonsoir, à moins d’autres critères, j’ai traduit haussière par close>close[1] et baissière par close<close[1], N paramétrable en début de code, dans le doute j’ai mis les 2 modes mèches et corps paramétrables chacun par 0 ou 1 en début de code, pour retourner un résultat +/-0.5 si corps ou +/-1 si mèches afin de pouvoir visualiser les 2 modes à la fois.
// PRC Englobante avec filtre série de N bougies
// 24.11.2020
// Noobywan @ www.prorealcode.com
// Sharing ProRealTime Knowledge
// Forum ProBuilder user Axel98 request
//Paramètres
corps=1 // = 0 ou 1
meches=1 // = 0 ou 1
N=4 // nombre de bougies précédant l'englobante
//Initialisation
resultat=0
englobante=0
if close>max(open[1],close[1]) and open<min(open[1],close[1]) and corps then
englobante=0.5
endif
if close>high[1] and open<low[1] and meches then
englobante=1
endif
if close<min(open[1],close[1]) and open>max(open[1],close[1]) and corps then
englobante=-0.5
endif
if close<low[1] and open>high[1] and meches then
englobante=-1
endif
serieB = (summation[N](close<close[1])=N)
serieH = (summation[N](close>close[1])=N)
if englobante>=0.5 and serieB[1] then
resultat=englobante // retourne 0.5 en mode corps, 1 en mode meches
endif
if englobante<=-0.5 and serieH[1] then
resultat=englobante // retourne -0.5 en mode corps, -1 en mode meches
endif
return resultat
Bonsoir Noobiwan et un grand MERCI pour ton aide, c’est exactement ça 🙂 !!
Super boulot malheureusement il ne détecte que la moitié des englobantes ^^
Même avec le paramètre N=1 ?!