écart minimum possible du stop loss par rapport au prix
Forums › ProRealTime forum Français › Support ProBuilder › écart minimum possible du stop loss par rapport au prix
- This topic has 9 replies, 3 voices, and was last updated 1 year ago by Garex.
-
-
10/12/2023 at 7:43 AM #222310
Bonjour,
J’aimerais pouvoir coder un indicateur qui m’affiche sur le graphique l’écart minimum possible du stop loss par rapport au prix. Par exemple le prix + ou – 8 points pour un ordre sur Nasdaq. J’ai cru comprendre qu’il n’était pas possible pour un indicateur d’effacer ce qui a été tracé mais comme l’indicateur “Zone d’Achat/Vente” semble le faire, je me dis que c’est peut-être possible.
Auriez-vous des pistes à me suggérer, ou le code de l’indicateur “Zone d’Achat/Vente” pour que je puisse le modifier?
Bonne journée.
10/12/2023 at 8:48 AM #222311On peut tracer et effacer, si on dessine uniquement sur la dernière barre et/ou dans le passé.
Concernant ta demande, elle pourrait être réalisé comme ceci:
123456defparam drawonlastbaronly=true //dessine uniquement sur le dernier chandelierdrawhline(close+8*pointsize) coloured("green") style(dottedline4,2)drawhline(close-8*pointsize) coloured("crimson") style(dottedline4,2)RETURN1 user thanked author for this post.
10/12/2023 at 9:20 AM #222317Super !
Je l’ai modifié pour ne pas tracer sur tout le graphique :
123456defparam drawonlastbaronly=true //dessine uniquement sur le dernier chandelierDRAWSEGMENT(barindex, close+8*pointsize, barindex[10], close+8*pointsize) coloured("green") style(dottedline4,2)DRAWSEGMENT(barindex, close-8*pointsize, barindex[10], close-8*pointsize) coloured("crimson") style(dottedline4,2)RETURN- Mais est-il possible de tracer les segments dans l’autre sens? En d’autres termes il faudrait que je puisse utiliser un “barindex” négatif, et comme ce n’est pas possible est-ce qu’il y a une autre solution?
- Par ailleurs est-il possible de récupérer l’information “distance minimale au stop” ? Ou alors faire une condition en fonction de l’actif (je n’en utilise que 4 max)?
Merci.
10/12/2023 at 9:34 AM #222319Désolé je n’ai pas assez réfléchi avant de poster.
J’ai la solution à ma première question à savoir tracer les segments “dans le futur”.
1234567defparam drawonlastbaronly=true //dessine uniquement sur le dernier chandelierDRAWSEGMENT(barindex+10, close+8*pointsize, barindex[10], close+8*pointsize) coloured("green") style(dottedline4,2)DRAWTEXT(close+8*pointsize, barindex+15, close+8*pointsize) coloured("green")DRAWSEGMENT(barindex+10, close-8*pointsize, barindex[10], close-8*pointsize) coloured("crimson") style(dottedline4,2)DRAWTEXT(close-8*pointsize, barindex+15, close-8*pointsize)coloured("crimson")RETURNMaintenant il me reste à savoir si je peux automatiser le “close+8*pointsize” soit en récupérant l’information soit en faisant une condition en fonction de l’actif.
10/12/2023 at 9:56 AM #222325Pas de mot-clé du langage pour récupérer la distance minimale spécifique à IG, il te faudra faire une condition pour chacun des 4 actifs pour stocker les 4 valeurs dans une variable (par exemple distancemini)
12345678910111213if (ta condition qui définit l'actif1) thendistancemini=8elsif (ta condition qui définit l'actif2) thendistancemini=...elsif ......endifet remplacer le 8 dans tes drawsegment par la variable distancemini
10/12/2023 at 10:04 AM #22232610/12/2023 at 10:14 AM #222328J’ai mis (ta condition qui définit l’actif1) ne sachant pas quels sont tes actifs ni si tu avais déjà une condition préférée parmi les possibles.
Pas de mot-clé pour connaitre l’actif dans probuilder (que dans proscreener à ce jour), mais il y a plusieurs façons de faire même si elles sont temporaires:
–> Par exemple, tu peux prendre les 4 open de ce jour qui sont probablement différentes, et ne pas avoir besoin de les remplacer tant qu’elles restent dans ton historique (dépend de ton UT et du nombre d’unités que tu charges)
12345678910111213if opendate=20231012 and opendate<>opendate[1] thenif open=... then //(actif1)distancemini=...elsif ... //(actif2)...endifendif–> ou bien s’ils sont dans 4 plages très différentes, tu peux encadrer le prix à la louche et ne pas avoir besoin de modifier le code tant que chacun reste dans sa fourchette. Exemple dow / dax /cac / eurusd
123456789if close>30000 then // (dow)distancemini=...elsif close>10000 and <20000 then // (dax)...elsif close>1000 and close <10000 then // (cac)...elsif close<2 then // (euro)...endifmais s’ils sont dans 4 plages similaires, mieux vaut passer par des open à un instant précis qui seront différentes pour les 4
1 user thanked author for this post.
10/12/2023 at 10:40 AM #22233610/12/2023 at 10:55 AM #222339Pour éviter de modifier le code, il y a encore d’autres possibilités.
Par exemple au niveau des espaces de travail, soit créer son son espace de travail avec 4 fenêtres pour 1 actif= 1 fenêtre et utiliser 4 variantes distinctes de l’indic, chacune sa seule distance mini. Ou encore si on travaille en mono-fenêtre, la possibilité de créer 4 espaces de travail de 1 fenêtre, un espace par actif, et changer d’espace plutôt que de nom d’actif dans la fenêtre du mêem espace (là encore chacun sa variante de l’indic avec une distance mini par variante)
Autre possibilité, le paramètre externe: si on ne travaille qu’avec une fenêtre dans son espace de travail et qu’on ne veut pas changer d’espace, on peut créer pour l’indic un paramètre externe, par exemple nommé “distancemini”, et faire varier sa valeur dans la fenêtre de propriétés, cette façon de faire évite de modifier le code de temps en temps, mais nécessite de modifier le paramètre dans la fenêtre de propriétés à chaque fois qu’on change d’actif dans une même fenêtre graphique. Par contre, il suffit de le faire une seule fois à l’installation si plusieurs fenêtres, une par actif
(si besoin de voir comment créer un paramètre, voir manuel probuilder page 16)
https://www.prorealtime.com/build/pdfs/fr/probuilder.52de148d.pdf
10/12/2023 at 10:59 AM #222340Selon mon utilisation le changement dans le code ne me pose pas de problème, et je verrai via l’affichage de l’indicateur si je n’ai pas pensé à modifier le code. Au final j’arrive à ça :
123456789101112131415161718192021222324252627defparam drawonlastbaronly=true //dessine uniquement sur le dernier chandelierDRAWTEXT(DOpen(0),-50,-50) ANCHOR(TOPRIGHT )//----- NASDAQif (DOpen(0)= 15269.4) thendistancemini=8//----- DOWelsif (DOpen(0)= 33848.5) thendistancemini=12//----- DAXelsif (DOpen(0)= 15493.7) thendistancemini=5//----- EURUSDelsif (DOpen(0)= 1.06194) thendistancemini=2endifDRAWSEGMENT(barindex+10, close+distancemini*pointsize, barindex[10], close+distancemini*pointsize) coloured("green") style(dottedline4,2)DRAWTEXT(close+distancemini*pointsize, barindex+15, close+distancemini*pointsize) coloured("green")DRAWSEGMENT(barindex+10, close-distancemini*pointsize, barindex[10], close-distancemini*pointsize) coloured("crimson") style(dottedline4,2)DRAWTEXT(close-distancemini*pointsize, barindex+15, close-distancemini*pointsize)coloured("crimson")RETURN1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on