Taille des objets qui s’adapte automatiquement au niveau de “zoom”

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #253408 quote
    Aarnii
    Participant
    New

    Bonjour,

    Comment faire pour que la taille des objets créés via le code s’adapte automatiquement au nombre de bougies affichées sur la graphique?
    Concrètement je créé une ellipse sous/au-dessus d’une bougie sous certains conditions et je souhaiterais que cette ellipse garde à peu près son apparence quelque soit l’historique/ le nombre de bougies affichées.

    Sur le premier graph ci-joint, on voit que les bulles sont relativement petites lorsque l’historique est large; en revanche, les bulles deviennent de plus en plus étalées au fur et à mesure que l’on “zoome” sur les bougies.

    Comment donc faire pour que les bougies gardent toujours la même apparence/taille?

    Merci d’avance!

    Petite-bulle.jpg Petite-bulle.jpg Grande-bulle.jpg Grande-bulle.jpg
    #253420 quote
    Bernard13
    Participant
    Average

    Bonjour,
    A la vue de tes deux graphs, quelque soit ton historique, ton algo code les ellipses sur cinq bougies.
    Il en sera toujours de même que tu appliques un zoom ou non.
    Peut-être souhaites-tu des ellipses dans une autre UT , et les superposer ? Alors c’est un autre sujet qu’il faudrait préciser.
    Cordialement.

    #253435 quote
    Aarnii
    Participant
    New

    Hello,

    merci pour ta réponse.
    En réalité, les ellipses pourront faire 5 bougies comme 1 bougie ou 10. La taille d’une ellipse à l’autre pourra varier; il y aura des ellipses plus grosses que d’autres.
    Mais quand je vais dézoomer, je voudrai que ces ellipses restent visibles, qu’elles “s’adaptent” à ce niveau de (dé)-zoom et qu’on arrive toujours à détecter les grosses ellipses des petites ellipses. En gros, qu’elles continuent à occuper le même espace, la même surface à l’écran qu’on soit en plein zoom ou totalement dézoomé.

    Je ne sais pas si c’est un peu plus clair?

    #253441 quote
    Bernard13
    Participant
    Average

    Hello,
    1- La longueur x des ellipses est variable => Gestion sur l’axe BarIndex
    2- La taille pourra varier => Gestion de la taille sur l’axe y
    Ne serait-il pas préférable de gérer cet algo dans un premier temps sous le graph en mode Histogramme ?
    Puis réfléchir à l’intégration sur le graph des prix.
    Peux-tu publier 2 captures extrêmes, (1 ou 2 bougies) et (9 ou 10bougies) ?
    A+ 🙂

    #253443 quote
    JS
    Participant
    Senior

    Vous pouvez ancrer des objets en pixels (d’écran) plutôt qu’en coordonnées liées au temps et au prix…

    Le lien ci-dessous explique ces nouvelles instructions…

    New drawing instructions: anchoring in pixels

    Aarnii thanked this post
    #253500 quote
    Aarnii
    Participant
    New

    Hello!

    merci pour vos réponses.

    Pour les ancrages avec la formule Anchor, j’avais vu que cela existait mais je comprends peut-être mal comment cela fonctionne mais cela ne semble pas correspondre à ce que je veux exactement. Les bulles doivent s’adapter avec le niveau de zoom ou de dézoom.

    Voici un autre exemple, où l’on voit des bulles de tailles différentes. Sur le graph zoomé (Grande bulle2), on voit bien la différence de taille. En revanche, dès que l’on dézoome, on perd toute la largeur des grosses bulles. La bulle sous laquelle il y a indiqué 142 va être en gros 3 fois plus grosse que les bulles sous lesquelles il y a 50/60. On voit bien la différence en zoomant, mais on ne la voit plus en dézoomant malheureusement car la largeur est “écrasée”. C’est cela que je veux fixer.

    Grande-bulle2.jpg Grande-bulle2.jpg Petite-bulle2.jpg Petite-bulle2.jpg
    #253514 quote
    Bernard13
    Participant
    Average

    Hello,
    Je rejoins la réponse de JS.
    Hormis les 2 méthodes:  Temps et prix d’une part,  Ancrage d’un objet d’autre part, je ne vois pas d’autres solutions.
    Si tu ancres une ellipse, certes elle sera figée, mais les bougies des zooms vont s’éloigner de l’ellipse de référence.
    La taille des ellipses étant importante pour toi, je te suggère de les remplacer par un résultat en mode Texte. Ce dernier restera attaché à la bougie du signal et il sera complètement indépendant des zooms.
    Par exemple: sur un sommet, tu peux afficher son No, un delta, une mention etc…    DrawText(“mon texte”,  BarIndex[i], delta #delta#,  Quantité #Qté#, Dialog, Bold, 14)
    Bon trades.

    Aarnii thanked this post
    #253546 quote
    Aarnii
    Participant
    New

    Hello,

    merci à tous les deux pour vos réponses. Je vais refaire des tests avec anchor, je vais voir ce que je peux en tirer.

    Merci!

    #253547 quote
    JC_Bywan
    Moderator
    Master

    Bonsoir,

    Si sur le papier, on ne peut pas adapter la taille des objets graphiques au niveau de zoom (de façon générale on ne peut pas coder dans probuilder des actions en lien avec la souris), on peut contourner le problème si tu n’as pas besoin d’une bulle “trop grande” en se servant du fait que le texte va garder une taille indépendante du zoom, pas seulement pour écrire des caractères de type lettres/chiffres, mais aussi pour dessiner via drawtext de “caractère spéciaux” un petit cercle donc on peut préciser taille couleur et transparence dans les options de l’instruction, par exemple ci-dessous un petit cercle plein, rouge, de taille 30, et de transparence mise à 100 pour voir à travers:

    DRAWTEXT(“●”, barindex, high,SansSerif,bold,30) COLOURED(255,0,0,100)

    Bernard13 and Aarnii thanked this post
    #253958 quote
    Aarnii
    Participant
    New

    Bonjour,

    je n’ai pas eu le temps de me repencher sur le sujet depuis mon dernier message, mais merci JC_Bywan, je vais essayer avec ta méthode. J’avais déjà essayé avec la fonction DRAWPOINT mais la taille maximale étant de 5, cela ne me convenait pas.
    Selon le doc de Probuilder, la taille maxi des fonts est de 30, je verrai donc si cela passe. Au pire de cas, aucun moyen de forcer des tailles plus grandes?

     

    Deux questions subsidiaires:

    1/ Quand je dessine des ellipses ou des rectangles par exemple, même avec un alpha à 255, la forme apparaît “derrière” la bougie. Comment faire en sorte que la bulle cache la bougie qu’elle recouvre? que celle-ci passe au deuxième plan?
    2/ Je souhaiterais que mon indicateur ne se mette à dessiner les bulles qu’à partir du moment où il est lancé; je ne veux pas qu’il dessine sur tout l’historique précédent. J’ai essayé avec “DefParam DrawOnLastBarOnly = true”, mais dans ce cas, la bulle n’apparaît que sur la bougie en cours; toutes les bulles précédemment dessinées disparaissent dès qu’un nouveau chandelier apparaît.

     

    3 en extra/ comment savoir, au tick près, qu’une nouvelle bougie vient de commencer? il n’y a aucune fonction/variable particulière? je dois gérer ça en regardant si mon barindex a changé par exemple?

     

    Merci d’avance!

    #254000 quote
    JC_Bywan
    Moderator
    Master

    Pour ne dessiner qu’à partir du lancement de l’indicateur, tu peux te servir de islastbarupdate dans un if…endif :

    if islastbarupdate then
    
        //lignes de code pour ce qui ne doit être dessiné qu'à partir du lancement de l'indicateur
    
    endif
    Iván González, robertogozzi and Aarnii thanked this post
    #254016 quote
    Aarnii
    Participant
    New

    C’est parfait, merci beaucoup!

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

Taille des objets qui s’adapte automatiquement au niveau de “zoom”


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Aarnii @aarnii Participant
Summary

This topic contains 11 replies,
has 4 voices, and was last updated by Aarnii
3 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 11/07/2025
Status: Active
Attachments: 4 files
Logo Logo
Loading...