ProRealCode - Trading & Coding with ProRealTime™
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.
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:
Je jette un oeil…
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.
ci joint Amundi doji porteur d’eau
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.
dans le proscreener le systeme n’accepte pas la ligne : DRAWCANDLE ? panneau triangulaire jaune …
C’était une correction pour l’indicateur uniquement, le screener je suis en train de le faire
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")
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
Pour ceux qui ont déjà pris le code, je corrige la ligne 81: trend= trendH–trendB
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.
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.
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”
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")
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 !
SCREENER doji porteur d’eau, pierre tombale et marteau sur HPT HA smooted
This topic contains 13 replies,
has 2 voices, and was last updated by supertiti
2 years, 7 months ago.
| Forum: | ProScreener : Scanners de Marché & Détection |
| Language: | French |
| Started: | 06/29/2023 |
| Status: | Active |
| Attachments: | 5 files |
The information collected on this form is stored in a computer file by ProRealCode to create and access your ProRealCode profile. This data is kept in a secure database for the duration of the member's membership. They will be kept as long as you use our services and will be automatically deleted after 3 years of inactivity. Your personal data is used to create your private profile on ProRealCode. This data is maintained by SAS ProRealCode, 407 rue Freycinet, 59151 Arleux, France. If you subscribe to our newsletters, your email address is provided to our service provider "MailChimp" located in the United States, with whom we have signed a confidentiality agreement. This company is also compliant with the EU/Swiss Privacy Shield, and the GDPR. For any request for correction or deletion concerning your data, you can directly contact the ProRealCode team by email at privacy@prorealcode.com If you would like to lodge a complaint regarding the use of your personal data, you can contact your data protection supervisory authority.