X plus bas sur X dernières bougies

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #133504 quote
    henri95
    Participant
    Average

    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.

    Sans-titre-6.png Sans-titre-6.png
    #133508 quote
    henri95
    Participant
    Average

    C’est bon j’ai trouvé nickel ce que je voulais dans ce post:  Détection de range de bougies Heiken-Ashi

    #133510 quote
    henri95
    Participant
    Average

    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
     
    
    Sans-titre-7.png Sans-titre-7.png
    #133560 quote
    Nicolas
    Keymaster
    Master

    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
    creux-en-pince.png creux-en-pince.png
    #133572 quote
    henri95
    Participant
    Average

    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.

    #133575 quote
    Nicolas
    Keymaster
    Master

    Je voulais dire, donne moi les infos sur l’instrument, le timeframe et la date à laquelle cet exemple a eu lieu, merci ! 😉

    #133576 quote
    Nicolas
    Keymaster
    Master

    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.

    #133584 quote
    henri95
    Participant
    Average

    C’était sur du une heure une valeur du SRD. Je ne me souviens plus laquelle.

    #133586 quote
    henri95
    Participant
    Average

    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.

    Sans-titre-8.png Sans-titre-8.png
    #133635 quote
    Nicolas
    Keymaster
    Master

    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
    
    creux-en-pince-1.png creux-en-pince-1.png
    #133649 quote
    henri95
    Participant
    Average

    Oui c’est pas mal du tout ça Nicolas! Je backtest pour voir. Merci bien

    #133686 quote
    Choliver
    Participant
    Veteran

    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…

    #133725 quote
    Nicolas
    Keymaster
    Master

    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

    #133762 quote
    Choliver
    Participant
    Veteran

    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…

    #133768 quote
    Nicolas
    Keymaster
    Master

    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.

Viewing 15 posts - 1 through 15 (of 16 total)
  • You must be logged in to reply to this topic.

X plus bas sur X dernières bougies


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
henri95 @henri95 Participant
Summary

This topic contains 15 replies,
has 3 voices, and was last updated by Choliver
5 years, 9 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 05/27/2020
Status: Active
Attachments: 5 files
Logo Logo
Loading...