Conversion code volume multi timeframe tradingview vers prorealtime

Forums ProRealTime forum Français Support ProBuilder Conversion code volume multi timeframe tradingview vers prorealtime

Viewing 3 posts - 1 through 3 (of 3 total)
  • #177827

    Bonjour,

    j’ai trouver un indicateur intéressant sur tradingview nommé volume multi timeframe : https://www.tradingview.com/script/lu5sRbT8-Volume-Multi-Time-Frame/

    Il permet de voir le volume accumulé sur une période de temp donné comme dans l’image ci jointe et je me demandai si qq’un serait intéressé a traduire le code.

    Idéalement je ne sait pas si c’est possible mais ce serait génial si il marchait sur 2 unité de temps différente comme minute/sec je m’explique :

    j’utilise le super code de pableitor disponible ici https://www.prorealcode.com/prorealtime-indicators/higher-time-frame-heikin-ashi-candles-on-a-lower-time-frame-chart/ pour voir les bougies heikin ashi de 2min sur mon graph mais j’aime suivre

    mes trade dans une plus petite unité comme 10sec et je trouverai utile de voir le volume accumulé sur 5min par exemple pour le comparé au 5min precedente le tt sur un seul graph.

    Et voici le code original :

    // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // © LonesomeTheBlue

    //@version=4
    study(“Volume Multi Time Frame”, “VMTF”)
    mode =input(title = “HTF Mode”, defval = ‘Auto’, options=[‘Auto’, ‘User Defined’])
    HTFm = input(‘5’, title = “Resolution (if HTF Mode is user-defined)”, type=input.resolution)

    //auto higher time frame calculation
    HTFo = timeframe.period == ‘1’ ? ’15’ :
    timeframe.period == ‘3’ ? ’60’ :
    timeframe.period == ‘5’ ? ’60’ :
    timeframe.period == ’15’ ? ‘D’ :
    timeframe.period == ’30’ ? ‘D’ :
    timeframe.period == ’45’ ? ‘D’ :
    timeframe.period == ’60’ ? ‘D’ :
    timeframe.period == ‘120’ ? ‘D’ :
    timeframe.period == ‘180’ ? ‘D’ :
    timeframe.period == ‘240’ ? ‘M’ :
    timeframe.period == ‘D’ ? ‘M’ :
    ‘3M’

    HTF = mode == ‘Auto’ ? HTFo : HTFm

    bool newbar = change(time(HTF)) != 0

    var int barc = bar_index
    barc := newbar ? bar_index : barc

    var float htfvol = 0.
    htfvol := newbar ? volume : htfvol + volume

    var float Open = open
    Open := newbar ? open : Open

    col = close >= Open ? color.lime : color.red
    plot(htfvol, color = col, style = plot.style_columns)

    var line vline = na
    if not newbar
    line.delete(vline)

    vline := line.new(x1 = bar_index, y1 = htfvol, x2 = barc, y2 = htfvol, color = col, width = 2)

    // don’t give alert on each bar for HTF status
    var int status = 0
    status := close >= Open ? 1 :
    close < Open ? 2 :
    status

    alertcondition(change(status) and close >= Open, title=’HTF Candle is green’, message=’HTF Candle is green’)
    alertcondition(change(status) and close < Open, title=’HTF Candle is Red’, message=’HTF Candle is red’)

    La possibilité de voir la couleur de la bougie de la timeframe supérieur via la couleur des barre du volume est sympa mais pas vraiment nécessaire si jamais cela ajoutai de la complexité

    Merci

     

    #177834

    Bonjour,

    je ne parle pas le “tradingview” donc probable qu’il y ait de petites différences par rapport à une traduction directe, j’ai juste tenté de reproduire la capture écran fournie et d’inclure la couleur selon l’ut supérieure.

    En ce qui concerne la façon de définir l’ut supérieure, je l’ai fait dans un premier temps d’une façon à la fois compatible avec les UT classiques et les (x) ticks. Il suffit de connaître combien de barres du TF inférieur constituent le TF supérieur, et de renseigner cette donnée dans la variable TFtraducteur de la ligne 2 (on peut aussi la passer en paramètre externe pour plus de confort d’usage). Par exemple classiquement entre 1mn et 1h on a 60 barres on choisira TFtraducteur=60, autre exemple entre 100ticks et 500ticks TFtraducteur=5 etc…

     

    Par contre cette méthode n’aimera pas les “barres vides” qui décaleraient tout. S’il n’y a pas assez souvent de transactions sur une ut trop petite et qu’il y a des barres en (x) secondes qui sont vides, soit tu peux légèrement augmenter ton ut inférieure (par exemple de 10s à 30s) pour éviter les vides, soit tu peux la remplacer par une façon de faire pour seuls horaires et perdre la compatibilité avec les (x) ticks. Cette autre façon de faire peut être plus lourde en écriture et basée sur des formules de math horaires pour être compatible avec toutes les permutations possibles d’UT plutôt qu’un simple multiplicateur de barres TFtraducteur, mais on peut se simplifier la tâche si jamais seules quelques ut t’intéressent et se codent sans avoir besoin d’une formule compatible avec absolument tous les cas.

    Par exemple, si UT sup est 5mn quelle que soit ut inf, et si on veut pouvoir gérer malgré tout le cas de possibles barres vides en UT inf sans rien décaler, voici une autre version:

     

    1 user thanked author for this post.
    #177876

    Wow merci bcp  ca marche super bien ca vaudrait meme peut etre la coup de mettre ca dans la bibliotheque du site ca pourrait interessé d’autre personne j’avais cherher avant de demander et il n’y a rien d’approchant.

    encore merci en tt cas

    1 user thanked author for this post.
Viewing 3 posts - 1 through 3 (of 3 total)

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