SCREENER doji porteur d’eau, pierre tombale et marteau sur HPT HA smooted

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #216981 quote
    supertiti
    Participant
    Master

    SCREENER doji porteur d’eau, pierre tombale et marteau sur HPT HA smooted

    Bonjour à tous,

    Serait-il possible de nous concocter un screener à partir de l’indicateur PRC HPT Heikin Ashi

    Smooted qui nous renverrait les Heikin Ashi doji porteurs d’eau, en pierre tombale après un

    trend haussier  ou en marteau après un trend baissier .Les conditions seraient que leur

    apparition se fasse après une série de hausse ou de baisse .

    A définir par une variable (th = trend haussier ou tb = trend baissier).

    Un plus serait de pouvoir jouer sur la hauteur des corps et des mèches.

     

    Bonne journée et bons trades.

    Pierre-tombale-HPT.jpg Pierre-tombale-HPT.jpg
    #217057 quote
    JC_Bywan
    Moderator
    Master

    Pas de lien dans le message, je suppose que c’est celui-ci datant de 2017 et qu’il n’y a pas eu d’autres versions depuis:

    HPT Heikin Ashi Smoothed

    Je jette un oeil…

    #217069 quote
    supertiti
    Participant
    Master

    Bonjour JC,

    ton lien est le bon, Nicolas avait remis ce code au goût du jour en page d’accueil il y a peu de temps.

    bon am et bons trades.

    #217070 quote
    supertiti
    Participant
    Master

    ci joint Amundi doji porteur d’eau

    Amundi-doji-PTO.jpg Amundi-doji-PTO.jpg
    #217077 quote
    JC_Bywan
    Moderator
    Master

    Ok, dans ce cas, avant de passer au screener, pour l’indicateur il faut remplacer la ligne drawcandle par:

    DRAWCANDLE(ExtMapBuffer3,max(ExtMapBuffer1,ExtMapBuffer2),min(ExtMapBuffer1,ExtMapBuffer2),ExtMapBuffer4) coloured(r,g,b)

    pour éviter un problème d’affichage sur les parties inférieures des bougies rouges HPT HA smoothed.

    Cela n’affectera pas le screener qui n’utilisera pas drawcandle, mais cela évitera d’avoir une visualisation faussée sur les doji bougies rouge pendant vérification sur le graphe d’une valeur retournée par le screener.

    #217078 quote
    supertiti
    Participant
    Master

    dans le proscreener le systeme n’accepte pas la ligne : DRAWCANDLE ? panneau triangulaire jaune …

    #217080 quote
    JC_Bywan
    Moderator
    Master

    C’était une correction pour l’indicateur uniquement, le screener je suis en train de le faire

    #217081 quote
    JC_Bywan
    Moderator
    Master

    Voici le screener,

     

    J’ai ajouté 4 paramètres utilisateurs pour pouvoir définir taille du trend préalable et personnaliser les caractéristiques du doji recherché :

    TrendLongueurMini = le nombre de bougies minimum HPT HA smoothed dans le même sens pour faire un trend

    DojiCorpsMaxPct = Taille T maximale du Corps en pourcentage T/100 du range entre ses extrémités. Exemple : pour 4% entrer 4 (pas 0.04)

     

    Dans le cas d’un trend haussier, autres caractéristiques du doji pour la plage min/max possible du centre du corps du doji (le centre du corps et sa taille étant définis, les mèches en découleront toutes seules sans besoin de paramétrage supplémentaire):

    DojiCentreCorpsMinPct = Centre du Corps à au moins X/100 de la bougie en partant du bas. Exemple : pour 43% entrer 43 (pas 0.43)

    DojiCentreCorpsMaxPct = Centre du Corps à au plus X/100 de la bougie en partant du bas. Exemple : pour 57% entrer 57 (pas 0.57)

     

    Ces 2 derniers paramètres pour doji post-trend haussier seront automatiquement convertis en leurs équivalents pour obtenir aussi le doji inverse voulu après un trend baissier

     

    A l’utilisateur de se définir avec ces paramètres soit des porteurs d’eau, soit des pierres tombales, etc…

     

    Le screener renverra à la fois les doji après trend haussier définis par les paramètres utilisateurs ci-dessus, et les dojis inverses après trend baissier sans avoir besoin de les définir aussi, avec une colonne “trend” qui vaudra +1/-1 pour les distinguer dans la liste obtenue.

     

    //PRC_HPT Heikin Ashi Smoothed | screener
    //30.06.2023
    //JC_Bywan @ www.prorealcode.com
    //forum request https://www.prorealcode.com/topic/screener-doji-porteur-deau-pierre-tombale-et-marteau-sur-hpt-ha-smooted/
    //Based on:
    //PRC_HPT Heikin Ashi Smoothed | indicator
    //25.04.2017
    //Nicolas @ www.prorealcode.com
    //Sharing ProRealTime knowledge
    //translated from MT4 indicator code
    
    //---settings
    MaPeriod=6
    MaPeriod2=2
    
    TrendLongueurMini=6// Nombre mini de bougies HPT Heikin Ashi smoothed dans le même sens pour faire un trend
    
    DojiCorpsMaxPct= 4// Taille T maximale du Corps en pourcentage T/100 du range entre ses extrémités. Exemple : pour 4% entrer 4 (pas 0.04)
    DojiCentreCorpsMinPct= 47// Centre du Corps à au moins X/100 de la bougie en partant du bas, après un trend haussier
    DojiCentreCorpsMaxPct= 53// Centre du Corps à au plus X/100 de la bougie en partant du bas, après un trend haussier
    //---end of settings
    
    once maOpen=Open
    once maClose=Close
    once maLow=Low
    once maHigh=High
    
    if barindex>0 then
    maOpen=(maOpen[1]*(MAperiod-1)+Open)/MAPeriod
    maClose=(maClose[1]*(MAperiod-1)+Close)/MAPeriod
    maLow=(maLow[1]*(MAperiod-1)+Low)/MAPeriod
    maHigh=(maHigh[1]*(MAperiod-1)+High)/MAPeriod
    
    haOpen=(ExtMapBuffer5[1]+ExtMapBuffer6[1])/2
    haClose=(maOpen+maHigh+maLow+maClose)/4
    haHigh=Max(maHigh, Max(haOpen, haClose))
    haLow=Min(maLow, Min(haOpen, haClose))
    if (haOpen<haClose) then
    //r=0
    //g=191
    //b=255
    ExtMapBuffer7=haLow
    ExtMapBuffer8=haHigh
    else
    //r=255
    //g=10
    //b=0
    ExtMapBuffer7=haHigh
    ExtMapBuffer8=haLow
    endif
    ExtMapBuffer5=haOpen
    ExtMapBuffer6=haClose
    
    ExtMapBuffer1=weightedaverage[MAperiod2](ExtMapBuffer7)
    ExtMapBuffer2=weightedaverage[MAperiod2](ExtMapBuffer8)
    ExtMapBuffer3=weightedaverage[MAperiod2](ExtMapBuffer5)
    ExtMapBuffer4=weightedaverage[MAperiod2](ExtMapBuffer6)
    endif
    
    TrendH= summation[TrendLongueurMini](ExtMapBuffer4>ExtMapBuffer3)=TrendLongueurMini
    TrendB= summation[TrendLongueurMini](ExtMapBuffer4<ExtMapBuffer3)=TrendLongueurMini
    
    TailleCorps=abs(ExtMapBuffer4-ExtMapBuffer3)
    TailleDoji=abs(ExtMapBuffer2-ExtMapBuffer1)
    if TailleDoji>0 then
    TailleCorpsPct=100*TailleCorps/TailleDoji
    CentreCorpsPct=100*((ExtMapBuffer4+ExtMapBuffer3)/2-min(ExtMapBuffer1,ExtMapBuffer2))/TailleDoji
    else
    TailleCorpsPct=0
    CentreCorpsPct=0
    endif
    
    DojiOK= TailleDoji>0 and TailleCorpsPct<=DojiCorpsMaxPct and CentreCorpsPct>=DojiCentreCorpsMinPct and CentreCorpsPct<=DojiCentreCorpsMaxPct
    
    InverseDojiCentreCorpsMinPct= 100-DojiCentreCorpsMaxPct
    InverseDojiCentreCorpsMaxPct= 100-DojiCentreCorpsMinPct
    
    InverseDojiOK= TailleDoji>0 and TailleCorpsPct<=DojiCorpsMaxPct and CentreCorpsPct>=InverseDojiCentreCorpsMinPct and CentreCorpsPct<=InverseDojiCentreCorpsMaxPct
    
    selection= (trendH[1] and DojiOK) or (TrendB[1] and InverseDojiOK)
    trend= trendH[1]-trendB[1]
    
    screener[selection](trend as "trend")
    #217096 quote
    supertiti
    Participant
    Master

    Il est fort le gars , très fort !!!

    J’ai donc modifié la ligne : Candlestick dans l’indicateur comme suggéré ci-dessus.

    Quant au screener il me sort des dojis ou pierre tombales , les marteaux viendront à leur heure je suppose.

    Bon j’ai le week-end pour m’en remettre et bien regarder les possibilités offertes.

    Aujourd’hui en fin de journée il me donne : Métabolic explorer et Ubisoft.

    Vraiment un grand merci pour ta dédication et j’encourage nos amis membres de s’intéresser de près à cet indicateur

    en bidouillant un peu les paramètres jumelé au centre de gravité proposé par Nicolas on peut faire du bon boulot !

    Excellent week-end à tous et bons trades.

    Ci-joint un bel exemple issu du code

    un-bel-exemple.jpg un-bel-exemple.jpg
    #217105 quote
    JC_Bywan
    Moderator
    Master

    Pour ceux qui ont déjà pris le code, je corrige la ligne 81: trend= trendHtrendB

    avec: trend= trendH[1]trendB[1]

    … cela permet de garder dans la colonne trend le +1/-1 tel qu’il était juste avant la bougie, plutôt qu’éventuellement passer à zéro sur la bougie en cas d’inversin open/close. Je l’edit directement dans le code ci-dessus pour faciliter les futur copier-coller.

     

    Pour le marteau,

    soit à partir du même code, il faut modifier les paramètres utilisateurs pour faire correspondre taille et position du corps à un marteau,

    soit, si la possibilité de paramétrer n’était pas pour faire « type de bougie par type de bougie» mais devait être un paramétrage multiple pour détecter plusieurs types de bougie dans le même screener, alors il faut me dire combien de types de bougie détecter simultanément dans le même screener (exemple : 2 à la fois si porteur d’eau et pierre tombale, 3 à la fois si ces 2 là et le marteau aussi), et je démultiplierai toutes les lignes rajoutées en conséquence pour déboucher sur une sélection multiple.

    #217110 quote
    supertiti
    Participant
    Master

    Bonjour JC,

    Tant qu’à faire autant avoir les 3 types de bougies si possibles pour ouvrir à plus d’opportunités  : porteur d’eau,pierre tombale et marteau.

    Chacun prendra le signal selon la place de la bougie dans le trend et la signification qui lui correspond.

    merci pour le travail et bon week end.

    DOJI-JCbyWan.jpg DOJI-JCbyWan.jpg
    #217202 quote
    supertiti
    Participant
    Master

    Bonjour à tous,

    Pour ceux qui préfère on peut mettre les HA smoothed sous forme de moyenne mobile.

    Ci dessous un exemple avec Nexity. MA en jaune

    // HPTMA  03.07.2023

    //HPT PRC V2 Heikin Ashi Smoothed indicator PRC 25.04.2017
    //Nicolas @ http://www.prorealcode.com Sharing ProRealTime knowledge
    //translated from MT4 indicator code
    defparam calculateonlastbars = 150
    //—settings
    //MaPeriod = 4//6 perso = 4
    //MaPeriod2 = 1// perso = 1
    //—end of settings

    once maOpen=Open
    once maClose=Close
    once maLow=Low
    once maHigh=High

    if barindex>0 then
    maOpen=(maOpen[1]*(MAperiod-1)+Open)/MAPeriod
    maClose=(maClose[1]*(MAperiod-1)+Close)/MAPeriod
    maLow=(maLow[1]*(MAperiod-1)+Low)/MAPeriod
    maHigh=(maHigh[1]*(MAperiod-1)+High)/MAPeriod

    haOpen=(ExtMapBuffer5[1]+ExtMapBuffer6[1])/2
    haClose=(maOpen+maHigh+maLow+maClose)/4
    haHigh=Max(maHigh, Max(haOpen, haClose))
    haLow=Min(maLow, Min(haOpen, haClose))
    if (haOpen<haClose) then
    r=0 // vert clair
    g=255//191
    b=127//255
    ExtMapBuffer7=haLow
    ExtMapBuffer8=haHigh
    else
    r=134//240//255 rose foncé
    g=9//128//10
    b=82//128//0
    ExtMapBuffer7=haHigh
    ExtMapBuffer8=haLow
    endif
    ExtMapBuffer5=haOpen
    ExtMapBuffer6=haClose

    ExtMapBuffer1=weightedaverage[MAperiod2](ExtMapBuffer7)
    ExtMapBuffer2=weightedaverage[MAperiod2](ExtMapBuffer8)
    ExtMapBuffer3=weightedaverage[MAperiod2](ExtMapBuffer5)
    ExtMapBuffer4=weightedaverage[MAperiod2](ExtMapBuffer6)
    endif

    MA = average [MAperiod2](ExtMapBuffer6)

    //DRAWCANDLE(ExtMapBuffer3,ExtMapBuffer2,ExtMapBuffer1,ExtMapBuffer4) coloured(r,g,b)
    DRAWCANDLE(ExtMapBuffer3,max(ExtMapBuffer1,ExtMapBuffer2),min(ExtMapBuffer1,ExtMapBuffer2),ExtMapBuffer4) coloured(r,g,b)// modifié par JCbyWan
    //short = ExtMapBuffer7[1]>ExtMapBuffer8[1] and ExtMapBuffer7[2]<ExtMapBuffer8[2] and ExtMapBuffer7[0]>ExtMapBuffer8[0]
    //long = ExtMapBuffer7[1]<ExtMapBuffer8[1] and ExtMapBuffer7[2]>ExtMapBuffer8[2] and ExtMapBuffer7[0]<ExtMapBuffer8[0]

    RETURN customclose as “customclose” ,MA as ” MA”

    HPTMA.jpg HPTMA.jpg
    #217335 quote
    JC_Bywan
    Moderator
    Master

    Voici, avec 3 jeux de paramètres pour personnaliser la détection de 3 types de chandeliers à la fois après un trend haussier (les 3 réciproques pour après un trend baissier étant automatiquement définis).

    Dans la colonne trend on aura désormais: +1 ou +2 ou +3 ou -1 ou -2 ou -3, le signe +/- indiquant le trend précédant le chandelier détecté, et la valeur 1/2/3 pour savoir lequel des 3 types de chandelier.

    //PRC_HPT Heikin Ashi Smoothed | screener
    //30.06.2023 version 1 doji
    //05.07.2023 version 3 doji
    //JC_Bywan @ www.prorealcode.com
    //forum request https://www.prorealcode.com/topic/screener-doji-porteur-deau-pierre-tombale-et-marteau-sur-hpt-ha-smooted/
    //Based on:
    //PRC_HPT Heikin Ashi Smoothed | indicator
    //25.04.2017
    //Nicolas @ www.prorealcode.com
    //Sharing ProRealTime knowledge
    //translated from MT4 indicator code
    
    //---settings
    MaPeriod=6
    MaPeriod2=2
    
    TrendLongueurMini=5// Nombre mini de bougies HPT Heikin Ashi smoothed dans le même sens pour faire un trend
    
    // Doji1: porteur d'eau
    Doji1CorpsMaxPct= 4// Taille T maximale du Corps en pourcentage T/100 du range entre ses extrémités. Exemple : pour 4% entrer 4 (pas 0.04)
    Doji1CentreCorpsMinPct= 47// Centre du Corps à au moins X/100 de la bougie en partant du bas, après un trend haussier
    Doji1CentreCorpsMaxPct= 53// Centre du Corps à au plus X/100 de la bougie en partant du bas, après un trend haussier
    
    // Doji2: pierre tombale
    Doji2CorpsMaxPct= 4// Taille T maximale du Corps en pourcentage T/100 du range entre ses extrémités. Exemple : pour 4% entrer 4 (pas 0.04)
    Doji2CentreCorpsMinPct= 0// Centre du Corps à au moins X/100 de la bougie en partant du bas, après un trend haussier
    Doji2CentreCorpsMaxPct= 10// Centre du Corps à au plus X/100 de la bougie en partant du bas, après un trend haussier
    
    // Doji3: marteau
    Doji3CorpsMaxPct= 40// Taille T maximale du Corps en pourcentage T/100 du range entre ses extrémités. Exemple : pour 4% entrer 4 (pas 0.04)
    Doji3CentreCorpsMinPct= 80// Centre du Corps à au moins X/100 de la bougie en partant du bas, après un trend haussier
    Doji3CentreCorpsMaxPct= 100// Centre du Corps à au plus X/100 de la bougie en partant du bas, après un trend haussier
    //---end of settings
    
    once maOpen=Open
    once maClose=Close
    once maLow=Low
    once maHigh=High
    
    if barindex>0 then
    maOpen=(maOpen[1]*(MAperiod-1)+Open)/MAPeriod
    maClose=(maClose[1]*(MAperiod-1)+Close)/MAPeriod
    maLow=(maLow[1]*(MAperiod-1)+Low)/MAPeriod
    maHigh=(maHigh[1]*(MAperiod-1)+High)/MAPeriod
    
    haOpen=(ExtMapBuffer5[1]+ExtMapBuffer6[1])/2
    haClose=(maOpen+maHigh+maLow+maClose)/4
    haHigh=Max(maHigh, Max(haOpen, haClose))
    haLow=Min(maLow, Min(haOpen, haClose))
    if (haOpen<haClose) then
    //r=0
    //g=191
    //b=255
    ExtMapBuffer7=haLow
    ExtMapBuffer8=haHigh
    else
    //r=255
    //g=10
    //b=0
    ExtMapBuffer7=haHigh
    ExtMapBuffer8=haLow
    endif
    ExtMapBuffer5=haOpen
    ExtMapBuffer6=haClose
    
    ExtMapBuffer1=weightedaverage[MAperiod2](ExtMapBuffer7)
    ExtMapBuffer2=weightedaverage[MAperiod2](ExtMapBuffer8)
    ExtMapBuffer3=weightedaverage[MAperiod2](ExtMapBuffer5)
    ExtMapBuffer4=weightedaverage[MAperiod2](ExtMapBuffer6)
    endif
    
    //DRAWCANDLE(ExtMapBuffer3,max(ExtMapBuffer1,ExtMapBuffer2),min(ExtMapBuffer1,ExtMapBuffer2),ExtMapBuffer4) coloured(r,g,b)
    
    //short = ExtMapBuffer7[1]>ExtMapBuffer8[1] and ExtMapBuffer7[2]<ExtMapBuffer8[2] and ExtMapBuffer7[0]>ExtMapBuffer8[0]
    //long = ExtMapBuffer7[1]<ExtMapBuffer8[1] and ExtMapBuffer7[2]>ExtMapBuffer8[2] and ExtMapBuffer7[0]<ExtMapBuffer8[0]
    
    TrendH= summation[TrendLongueurMini](ExtMapBuffer4>ExtMapBuffer3)=TrendLongueurMini
    TrendB= summation[TrendLongueurMini](ExtMapBuffer4<ExtMapBuffer3)=TrendLongueurMini
    
    TailleCorps=abs(ExtMapBuffer4-ExtMapBuffer3)
    TailleDoji=abs(ExtMapBuffer2-ExtMapBuffer1)
    if TailleDoji>0 then
    TailleCorpsPct=100*TailleCorps/TailleDoji
    CentreCorpsPct=100*((ExtMapBuffer4+ExtMapBuffer3)/2-min(ExtMapBuffer1,ExtMapBuffer2))/TailleDoji
    else
    TailleCorpsPct=0
    CentreCorpsPct=0
    endif
    
    Doji1OK= TailleDoji>0 and TailleCorpsPct<=Doji1CorpsMaxPct and CentreCorpsPct>=Doji1CentreCorpsMinPct and CentreCorpsPct<=Doji1CentreCorpsMaxPct
    Doji2OK= TailleDoji>0 and TailleCorpsPct<=Doji2CorpsMaxPct and CentreCorpsPct>=Doji2CentreCorpsMinPct and CentreCorpsPct<=Doji2CentreCorpsMaxPct
    Doji3OK= TailleDoji>0 and TailleCorpsPct<=Doji3CorpsMaxPct and CentreCorpsPct>=Doji3CentreCorpsMinPct and CentreCorpsPct<=Doji3CentreCorpsMaxPct
    
    InverseDoji1CentreCorpsMinPct= 100-Doji1CentreCorpsMaxPct
    InverseDoji1CentreCorpsMaxPct= 100-Doji1CentreCorpsMinPct
    InverseDoji2CentreCorpsMinPct= 100-Doji2CentreCorpsMaxPct
    InverseDoji2CentreCorpsMaxPct= 100-Doji2CentreCorpsMinPct
    InverseDoji3CentreCorpsMinPct= 100-Doji3CentreCorpsMaxPct
    InverseDoji3CentreCorpsMaxPct= 100-Doji3CentreCorpsMinPct
    
    InverseDoji1OK= TailleDoji>0 and TailleCorpsPct<=Doji1CorpsMaxPct and CentreCorpsPct>=InverseDoji1CentreCorpsMinPct and CentreCorpsPct<=InverseDoji1CentreCorpsMaxPct
    InverseDoji2OK= TailleDoji>0 and TailleCorpsPct<=Doji2CorpsMaxPct and CentreCorpsPct>=InverseDoji2CentreCorpsMinPct and CentreCorpsPct<=InverseDoji2CentreCorpsMaxPct
    InverseDoji3OK= TailleDoji>0 and TailleCorpsPct<=Doji3CorpsMaxPct and CentreCorpsPct>=InverseDoji3CentreCorpsMinPct and CentreCorpsPct<=InverseDoji3CentreCorpsMaxPct
    
    DojiOK= Doji1OK or Doji2OK or Doji3OK
    InverseDojiOK= InverseDoji1OK or InverseDoji2OK or InverseDoji3OK
    
    selection= (trendH[1] and DojiOK) or (TrendB[1] and InverseDojiOK)
    trend= (Doji1OK+2*Doji2OK+3*Doji3OK)*trendH[1]-(InverseDoji1OK+2*InverseDoji2OK+3*InverseDoji3OK)*trendB[1]
    
    screener[selection](trend as "trend")
    #217364 quote
    supertiti
    Participant
    Master

    Bonjour à tous,

    merci JC pour ce nouveau code , je vais profiter de l’heure de la sieste pour le détailler, 35 º C ici en moyenne tous les jours d’où la sieste obligatoire .

    bons trades à tous , ce genre de code devrait vous aider !

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

SCREENER doji porteur d’eau, pierre tombale et marteau sur HPT HA smooted


ProScreener : Scanners de Marché & Détection

New Reply
Author
author-avatar
supertiti @supertiti Participant
Summary

This topic contains 13 replies,
has 2 voices, and was last updated by supertiti
2 years, 7 months ago.

Topic Details
Forum: ProScreener : Scanners de Marché & Détection
Language: French
Started: 06/29/2023
Status: Active
Attachments: 5 files
Logo Logo
Loading...