Bonjour,
J’ai repris un code existant dans la bibliothèque
// https://www.prorealcode.com/topic/resistance/
et j’ai rajouté les lignes de code nécessaire pour me calculer à quelle distance
du breakout le cours de l’action se situe.
J’obtiens qui est juste en euros, mais qui dépasse ma limite de test entre 0.98 et 1
je joins le code
Je n’arrive pas à comprendre pourquoi ?
une idée, pour que je trouve
Merci d’avance
Cordialement
RESISTANCE = HIGHEST[9](HIGH)
IF RESISTANCE>RESISTANCE[1] AND CLOSE>RESISTANCE[1] THEN
RES = RESISTANCE[0]
ELSE
RES = RESISTANCE[1]
ENDIF
res = ( CLOSE - resistance )
if CLOSE >= 0.98 and close <1 then
TOP = 1
endif
SCREENER [ top ] ( Res as"ÉCART / RES")
???
Avec cette condition “CLOSE> = 0.98 et close <1” vous vérifiez si le prix (close) est compris entre 0,98 et 1, est-ce ce que vous avez l’intention de faire?
Si c’est le cas, écrire à la place:
top = CLOSE >= 0.98 and close <1 // votre condition de filtre
SCREENER [ top ] ( Res as "ÉCART / RES")
sinon, donnez-nous plus d’informations sur ce que vous vouliez faire.
Un accueil et une bonne soirée.
Bonjour,
merci pour la réponse. En effet, je veux la liste des actions entre – 2% et 0 du point de breakout.
en effet, ça me paraît plus pertinent écris ainsi.
Je vais corriger et tester les actions que me donnent la liste
Je reviendrais pour confirmer le résultat, Je vous souhaite une agréable journée.
Cordialement
Je viens de modifier le code, et en vérifiant les résultats j’ai toujours le même problème
en H1 j’ai une liste de 9 actions, mais le test ne correspond pas à la limite des 2%
je prend l’exemple de OREGE qui est donné par le screener
Clôture de vendredi soir 1.175 et BREAKOUT à venir 1.20 soit à une distance de – 2.13%
Pour DOLFINES l’écart est de -8.81% clôture 1.93 niveau du breakout 2.10
Je vais y réfléchir.
si une idée je suis preneur pour comprendre
Cordialement
Je crois avoir compris mon erreur
en fait le screener me sort non pas le % mais la valeur en euros
pour DOLFINNES = -0.17 , c’est l’écart en euros et non en %
doit manquer une conversion du résultat en %
je vais regarder ça mais une aide est toujours acceptée
Cordialement
En attendant, il est étrange que vous créiez une variable “res” et que vous ne l’utilisiez pas dans les étapes suivantes … (avec le code “IF RESISTANCE> RESISTANCE [1] AND CLOSE> RESISTANCE [1] THEN RES = RESISTANCE [0] ELSE RES = RÉSISTANCE [1] ENDIF “).
Pour les prochaines fois, je vous suggère de procéder par étape, d’écrire d’abord l’indicateur pour probuilder, puis de l’amener au proscreener, il est plus facile de visualiser les erreurs.
Je peux écrire un code de ce que je pense que vous aimeriez faire …
En supposant que la variable res que vous créez (que vous avez copiée à partir de ce lien que vous avez mis dans le premier article) est votre niveau de référence:
resistance = highest[9](high)
if resistance>resistance[1] and close>resistance[1] then
res = resistance[0]
else
res = resistance[1]
endif
// (close : res = x : 100) - 100
// percentage variation from res
perc = ( ( close*100 )/res ) - 100
filter = perc >= 0.98 and perc < 1
screener [ filter ]( perc as "perc" )
Je ne suis pas sûr que ce soit ce dont vous aviez besoin, mais pour passer de “a”, “b” au pourcentage de changement de “a” à “b”, tapez simplement:
// perc = (b : a = x : 100) - 100
// percentage variation from a to b
perc = ( ( b*100 )/a ) - 100
où “a” et “b” sont vos deux variables à considérer.
Daniele,
Merci je vais regarder votre code, et je vais modifier avec le code en % de vos lignes
je fais un test mais je crois savoir d’où viens l’erreur puisque je ne convertissais pas en %, mais en
euros
Le code fonctionne et me donne les bons résultats par rapport à mes limites en euros
Merci, mille fois pour votre aide
Bonne journée
Cordialement
Help,
j’ai tout essayé, je n’arrive pas à convertir en % le résultat afin que le test fonctionne correctement limité à 2%
J’obtiens le résultat ci-dessous qui est exprimé en euros
merci pour une aide complémentaire
cordialement
Pardonne-moi mais je ne comprends toujours pas.
Pouvez-vous s’il vous plaît réexpliquer, point par point:
1) ce que votre code doit faire (et dans quelle mesure est-il correct pour le moment)
2) comment vous souhaitez filtrer vos titres
3) quelle valeur voulez-vous afficher pour les titres filtrés
Si vous décrivez bien ces trois points, nous résolvons le problème immédiatement.
L’avez-vous fait avant comme je l’ai suggéré? Autrement dit, commencez à écrire un code fonctionnel dans probuilder avant de le transformer en filtre sur le proscreener.
Merci pour la réponse
J’ai effectivement recopié votre code.
Voilà ce que je veux en prenant les éléments de départ du screener
Je veux une liste qui me donne les actions à 2% maxi du BREAKOUT
Exemple à vendredi sur DOLFINNES
Le BREAKOUT avec le code situe à 2.10 et le cours de clôture est de 1.93
Sur mon image cette valeur ressort à 0.17 mais ce montant est exprimé en euros soit 2.10 – 1.93 = 0.17 soit 8.83% du BREAKOUT
Donc avec ma liste >= .98 il ne devrait pas sortir sur ma liste.
En fait la ligne dans mon code,
RES = (CLOSE – résistance ) me donne le résultat qu’il faut convertir % pour que le screener puisse ne pas en tenir compte puisqu’il représente 8%
supérieur à la limite de 2% que je fixe.
en espérant que mes explications sont claires.
Merci
Désolé, je n’ai toujours pas assez d’informations pour vous amener à coder.
Pour le moment, je ne peux que vous suggérer de prendre le code et d’essayer de l’écrire d’abord avec le probuilder, et “return” valeurs clés …
Une fois que cela fonctionne, il sera très facile de le transformer en proscreener.
Assurez-vous que “filtre” est défini sur 1 lorsque vous souhaitez que le titre soit visible, 0 sinon.
resistance = highest[9](high)
if resistance>resistance[1] and close>resistance[1] then
res = resistance[0]
else
res = resistance[1]
endif
// (close : res = x : 100) - 100
// percentage variation from res
perc = ( ( close*100 )/res ) - 100
diffVal1 = ( close - res )
diffVal2 = ( close - resistance )
filter = perc >= 0.98 and perc < 1.00 // like this filter is +1 when the variation from the res is between +0.98% and 1.00%
return perc as "perc", diffVal1 as "diffVal1", diffVal2 as "diffVal2", filter as "filter"
// screener [ filter ]( xyz as "xyz" ) // replace xyz with perc/diffVal1/diffVal2 or whatever you want
À bientôt!
Bonjour,
Désolé j’ai repris votre code mais ça ne fonctionne pas.
Je n’obtiens aucun résultat.
Je vais reformuler ma demande plus clairement
Ma nouvelle demande
J’utilise le code ci-dessous que j’ai repris dans la bibliothèque de PRT ( voir le lien au début de mon message )
Ce code fonctionne parfaitement sur le Graphique
Il m’affiche correctement le niveau de breakout
RESISTANCE = HIGHEST[9](HIGH)
res = highest[max(1,barindex)](close)
IF RESISTANCE>RESISTANCE[1] AND CLOSE>RESISTANCE[1] THEN
RES = RESISTANCE[0]
ELSE
RES = RESISTANCE[1]
ENDIF
RETURN RES
Ce que je recherche à partir de ce code, c’est de créer un screener qui me donne toutes les actions qui
entre -2% et le niveau du breakout
RESISTANCE = HIGHEST[9](HIGH)
IF RESISTANCE>RESISTANCE[1] AND CLOSE>RESISTANCE[1] THEN
RES = RESISTANCE[0]
ELSE
RES = RESISTANCE[1]
ENDIF
RES = (( resistance*100 / CLOSE*100) /100 ) - 100
IF CLOSE >= 0.98 and CLOSE <1 THEN
TOP = CLOSE >= 0.98 and CLOSE < 1
ENDIF
SCREENER [ TOP ] ( RES as"ECART / RES")
Donc suite à cela, le test n’est pas correct puisque le screener me donne des valeurs
dont l’écart entre le breakout et la close est supérieure à 2% alors que je veux limiter la liste
aux valeurs qui sont maxi à 2% du breakout.
En espèrant que ma formulation est plus claire
Merci
Cordialement
“entre -2%” voulez-vous dire une variation entre 0 et -2% par rapport au niveau res (de votre indicateur)?
Vous remplacez la valeur de res dans votre code.
“res = highest[max(1,barindex)](close)” cette ligne n’a aucun sens … vous la remplacez dans le prochain “ifelse”.
Sur le probuilder, vous pouvez imprimer la distance en pourcentage de votre résistance comme ceci:
resistance = highest[9](high)
if resistance>resistance[1] and close>resistance[1] then
res = resistance[0]
else
res = resistance[1]
endif
// percentage variation from res
perc = ( ( close*100 )/res ) - 100
return perc
Si cette valeur de pourcentage est correcte et que vous ne voulez que des titres à une distance comprise entre 0% et -2% de res vous pouvez écrire le proscreener comme ceci:
resistance = highest[9](high)
if resistance>resistance[1] and close>resistance[1] then
res = resistance[0]
else
res = resistance[1]
endif
// percentage variation from res
perc = ( ( close*100 )/res ) - 100
filter = perc <= 0 and perc >= -2 // between 0% and -2% from res
screener [ filter ]( perc as "Perc distance from res" )
C’est parfait,
je viens de vérifier tous les résultats du screener.
Mille mercis d’avoir passé du temps pour faire avancer mon idée et de m’avoir aidé à comprendre mon erreur.
J’en profite pour vous souhaiter de bonnes fêtes de fin d’année
Cordialement