Bonjour,
Je serais curieux de backtester un indicateur qui me signalerait par histogramme 2 ou plus ( 3,4,5 etc…) de plus bas des bougies Heikin Ashi sur les 20 bougies qui se suivent entre elles. Ci-joint un screenshot pour une bonne compréhension. Dans l’exemple il y a 4 plus bas identiques, même si ces plus bas sont intercalés par d’autres bougies encore plus basses, au contraire c’est mieux même car sinon il y aurait trop peu de signaux . En somme cela revient à tracer une ligne de support sur des plus bas.
Merci
OUPS je me suis trompé de forum et il faudrait placer le post sur Probuilder.
C’est bon j’ai trouvé nickel ce que je voulais dans ce post: Détection de range de bougies Heiken-Ashi
Bon l’indicateur est super mais il manquerait juste une condition: C’est qu’il peut y avoir des bougies intercalaires entre 2 ou plusieurs bas identiques, mais ces bougies intercalaires ne peuvent transpercer les bas identiques que par leur mèche et pas leur corps. Dans mon exemple j’ai cerclé en vert les cas possibles.
Et si on pouvait grossir à notre guise les traits horizontaux de l’indicateur car il est très peu visible.
Merci bien.
Voila l’indicateur en question:
//heiken ashi candlesticks definition
if barindex>2 then
haclose=(open+close+low+high)/4
haopen=(haopen[1]+haclose[1])/2
xHigh = Max(haOpen, haClose)
xLow = Min(haOpen, haClose)
hahigh = Max(High,xHigh)
halow = Min(Low,xLow)
endif
SommetEnPince = hahigh[1]=hahigh[2]
CreuxEnPince = halow[1]=halow[2]
//if SommetEnPince then
//drawsegment(barindex[3],hahigh[2],barindex,hahigh[1])
//endif
if CreuxEnPince then
drawsegment(barindex[3],halow[2],barindex,halow[1])
endif
return
Ci-dessous le code pour cette détection, je n’ai pas trouvé de cas comme celui que tu présentes, ce serait sympa de donner les infos utiles pour faire des tests, merci.
period = 30 //verifier X bougies en arriere
quantite = 2 //au moins X Somme ou Creux en pince
//heiken ashi candlesticks definition
if barindex>2 then
haclose=(open+close+low+high)/4
haopen=(haopen[1]+haclose[1])/2
xHigh = Max(haOpen, haClose)
xLow = Min(haOpen, haClose)
hahigh = Max(High,xHigh)
halow = Min(Low,xLow)
endif
//SommetEnPince = hahigh[1]=hahigh[2]
CreuxEnPince = halow[1]=halow[2]
//if SommetEnPince then
//drawsegment(barindex[3],hahigh[2],barindex,hahigh[1])
//endif
if CreuxEnPince then
niveau=halow[1]
count=1
for i = 1 to period-1 do
if creuxenpince[i] and halow[i]=niveau and min(haopen[i],haclose[i])>=niveau then
count=count+1
startbar=barindex[i+2]
endif
next
if count>=quantite then
drawsegment(startbar,niveau,barindex,niveau)
endif
endif
return
Merci Nicolas, Le cas que je présente sur mon screen est parfait. J’ai 4 bas identiques ( flèches rouges) et ils sont intercalés par d’autres bougies qui font une mèche plus basse ( cercle vert). L’idée serait que les vendeurs n’ont pas réussi à prendre le contrôle du marché car les bougies intercalaires ont transpercées furtivement le support des 4 plus bas sans pouvoir emporter les cours vers des plus bas par le corps de ces bougies. Le dernier plus bas des 4 bougies refermant le support , peut-être qu’il y a une probabilité plus grande à ce que le marché remonte. C’est une supposition, il faut que je backtest.
Je voulais dire, donne moi les infos sur l’instrument, le timeframe et la date à laquelle cet exemple a eu lieu, merci ! 😉
Les conditions sont aussi peut être un peu trop restrictive, le Low devrait être exactement le même sur les X dernières bougies, ce qui est, même en bougies Heikin Ashi, un peu trop sévère, un écart possible en points serait peut être une idée à implémenter.
C’était sur du une heure une valeur du SRD. Je ne me souviens plus laquelle.
Oui exact car l’indicateur ne se déclenche pas sur toutes les valeurs. En tout cas je backtest que sur du 1 h.
Voilà le résultat sur Avenir Telecom du 22 avril en 1 h.
Mais je ne suis pas convaincu. C’est soit pas de signal du tout sur des valeurs ou soit trop de signaux sur d’autres valeurs.
J’ai omis de ne pas tracer le segment si un corps de bougies Heikin Ashi se trouvait en dessous du niveau testé, voici la correction :
period = 50 //verifier X bougies en arriere
quantite = 2 //au moins X Somme ou Creux en pince
//heiken ashi candlesticks definition
if barindex>2 then
haclose=(open+close+low+high)/4
haopen=(haopen[1]+haclose[1])/2
xHigh = Max(haOpen, haClose)
xLow = Min(haOpen, haClose)
hahigh = Max(High,xHigh)
halow = Min(Low,xLow)
endif
//SommetEnPince = hahigh[1]=hahigh[2]
CreuxEnPince = halow[1]=halow[2]
//if SommetEnPince then
//drawsegment(barindex[3],hahigh[2],barindex,hahigh[1])
//endif
if CreuxEnPince then
niveau=halow[1]
count=1
for i = 1 to period-1 do
if creuxenpince[i] and halow[i]=niveau and min(haopen[i],haclose[i])>=niveau then
count=count+1
startbar=barindex[i+2]
endif
if min(haopen[i],haclose[i])<niveau then
count=0
break
endif
next
if count>=quantite then
drawsegment(startbar,niveau,barindex,niveau)
endif
endif
return
Oui c’est pas mal du tout ça Nicolas! Je backtest pour voir. Merci bien
Bonsoir et merci pour cet indicateur sûrement intéressant.
Le truc, c’est que j’ai bien l’impression qu’il ne fonctionne pas en version 10.3.
Par exemple : les fonctions hahigh et xHigh ne sont pas utilisées.
Nicolas peux-tu me confirmer que le code est spécifique à la V11.1 stp ? ou quelqu’un d’autre.
Si oui, quel code faudrait-il pour faire fonctionner cet indicateur sur la V 10.3 ? 😉
A suivre…
Il doit aussi fonctionner en 10.3, parce que je l’ai écrit en v11, je ne suis pas alerté sur les variables non utilisées et cela est restrictif en 10.3. Donc si tu as ce genre de message d’erreurs, tu commentes les lignes où ces variable sont déclarés (avec REM devant par exemple), le message d’erreur de compilation devrait disparaître et le code sera utilisable sur ta version 10.3
Bonjour,
Est-ce que c’est cela que tu me proposes de faire ?
period = 50 //verifier X bougies en arriere
quantite = 2 //au moins X Somme ou Creux en pince
//heiken ashi candlesticks definition
if barindex>2 then
REM haclose=(open+close+low+high)/4
REM haopen=(haopen[1]+haclose[1])/2
REM xHigh = Max(haOpen, haClose)
REM xLow = Min(haOpen, haClose)
REM hahigh = Max(High,xHigh)
REM halow = Min(Low,xLow)
endif
//SommetEnPince = hahigh[1]=hahigh[2]
CreuxEnPince = halow[1]=halow[2]
//if SommetEnPince then
//drawsegment(barindex[3],hahigh[2],barindex,hahigh[1])
//endif
if CreuxEnPince then
niveau=halow[1]
count=1
for i = 1 to period-1 do
if creuxenpince[i] and halow[i]=niveau and min(haopen[i],haclose[i])>=niveau then
count=count+1
startbar=barindex[i+2]
endif
if min(haopen[i],haclose[i])<niveau then
count=0
break
endif
next
if count>=quantite then
drawsegment(startbar,niveau,barindex,niveau)
endif
endif
return
Si oui PRT me demande de définir les variables suivantes : halow – haopen – haclose
J’ai fait une tentative d’ajouter ces variables mais pas de résultat.
Je ne comprends pas la demande. Désolé.
A suivre…
Parce que tu as commenté des variables qui justement étaient utiles ! Il ne faut pas les commenter, uniquement celles dont la plateforme dit qu’elles ne sont pas utiles, voir ton premier message .. 🙄
Par exemple : les fonctions hahigh et xHigh ne sont pas utilisées.