écart minimum possible du stop loss par rapport au prix

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #222310 quote
    Garex
    Participant
    New

    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.

    #222311 quote
    Nicolas
    Keymaster
    Master

    On 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:

    defparam drawonlastbaronly=true //dessine uniquement sur le dernier chandelier 
    
    drawhline(close+8*pointsize) coloured("green") style(dottedline4,2)
    drawhline(close-8*pointsize) coloured("crimson") style(dottedline4,2)
    
    RETURN
    Garex thanked this post
    drawhline-zone.png drawhline-zone.png
    #222317 quote
    Garex
    Participant
    New

    Super !

    Je l’ai modifié pour ne pas tracer sur tout le graphique :

    defparam drawonlastbaronly=true //dessine uniquement sur le dernier chandelier
     
    DRAWSEGMENT(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.

    #222319 quote
    Garex
    Participant
    New

    Dé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”.

    defparam drawonlastbaronly=true //dessine uniquement sur le dernier chandelier
     
    DRAWSEGMENT(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") 
    RETURN

    Maintenant 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.

    #222325 quote
    JC_Bywan
    Moderator
    Master

    Pas 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)

    if (ta condition qui définit l'actif1) then
    
      distancemini=8
    
    elsif (ta condition qui définit l'actif2) then
    
      distancemini=...
    
    elsif ...
    
      ...
    
    endif

     

    et remplacer le 8 dans tes drawsegment par la variable distancemini

    #222326 quote
    Garex
    Participant
    New

    C’est bien ce que j’avais en tête mais est-ce que Prorealcode gère le nom des actifs? Sinon je ne vois pas comment le code peut savoir que c’est le Nasdaq et pas n’importe qu’elle autre indice ou paire …

    #222328 quote
    JC_Bywan
    Moderator
    Master

    J’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)

    if opendate=20231012 and opendate<>opendate[1] then
    
      if  open=... then                    //(actif1)
    
        distancemini=...
    
      elsif ...                          //(actif2)
    
        ...
    
      endif
    
    endif

     

    –>  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

    if 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)
    ...
    endif

     

    mais s’ils sont dans 4 plages similaires, mieux vaut passer par des open à un instant précis qui seront différentes pour les 4

    Garex thanked this post
    #222336 quote
    Garex
    Participant
    New

    Ah oui je vois, il me faudrait juste modifier le code une fois par jour dans mon AT avec l’instruction DOpen, merci je vais me coder ça.

    #222339 quote
    JC_Bywan
    Moderator
    Master

    Pour é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

    #222340 quote
    Garex
    Participant
    New

    Selon 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 :

    defparam drawonlastbaronly=true //dessine uniquement sur le dernier chandelier
    
    DRAWTEXT(DOpen(0),-50,-50) ANCHOR(TOPRIGHT ) 
    
        //----- NASDAQ
    if (DOpen(0)= 15269.4) then
    distancemini=8
    
    //----- DOW
    elsif (DOpen(0)= 33848.5) then
    distancemini=12
    
    //----- DAX
    elsif (DOpen(0)= 15493.7) then
    distancemini=5
    
    //----- EURUSD
    elsif (DOpen(0)= 1.06194) then
    distancemini=2
    endif
    
    DRAWSEGMENT(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")
    
    RETURN
    
    Nicolas thanked this post
Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.

écart minimum possible du stop loss par rapport au prix


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Garex @garex Participant
Summary

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

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 10/12/2023
Status: Active
Attachments: 1 files
Logo Logo
Loading...