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

Forums ProRealTime forum Français Support ProBuilder Taille des objets qui s’adapte automatiquement au niveau de “zoom”

Viewing 12 posts - 1 through 12 (of 12 total)
  • #253408

    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!

     

    #253420

    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

    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

    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
    JS

    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…

    https://www.prorealcode.com/topic/new-drawing-instructions-anchoring-in-pixels/

    1 user thanked author for this post.
    #253500

    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.

     

    #253514

    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.

    1 user thanked author for this post.
    #253546

    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

    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)

     

     

    2 users thanked author for this post.
    #253958

    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

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

     

     

     

    3 users thanked author for this post.
    #254016

    C’est parfait, merci beaucoup!

Viewing 12 posts - 1 through 12 (of 12 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login