Conversion code volume multi timeframe tradingview vers prorealtime
Forums › ProRealTime forum Français › Support ProBuilder › Conversion code volume multi timeframe tradingview vers prorealtime
- This topic has 2 replies, 2 voices, and was last updated 3 years ago by ABOUBI.
-
-
09/17/2021 at 10:27 PM #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 : barcvar float htfvol = 0.
htfvol := newbar ? volume : htfvol + volumevar float Open = open
Open := newbar ? open : Opencol = 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 :
statusalertcondition(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
09/18/2021 at 8:03 AM #177834Bonjour,
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…
12345678910111213141516171819202122timestart=080000TFtraducteur=60rouge=0vert=0if (opentime>=timestart and opentime[1]<timestart) or (LTFbarindex<>0 and LTFbarindex mod TFtraducteur = 0 ) thenHTFvol=volumeLTFbarindex=1openHTF=openelsif opentime>timestart thenHTFvol=HTFvol[1]+volumeLTFbarindex=LTFbarindex+1closeHTF=closeendifif closeHTF>=openHTF thenvert=255elserouge=255endifreturn HTFvol coloured(rouge,vert,0) style(histogram)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:
123456789101112131415161718192021222324// Version pour ut sup = 5mn seulement, quelle que soit l'ut inftimestart=080000ref=opentime mod 500rouge=0vert=0if (opentime>=timestart and opentime[1]<timestart) or (ref<ref[1]) thenHTFvol=volume//LTFbarindex=1openHTF=openelsif opentime>timestart thenHTFvol=HTFvol[1]+volume//LTFbarindex=LTFbarindex+1closeHTF=closeendifif closeHTF>=openHTF thenvert=255elserouge=255endifreturn HTFvol coloured(rouge,vert,0) style(histogram)1 user thanked author for this post.
09/18/2021 at 9:20 PM #177876Wow 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.
-
AuthorPosts
Find exclusive trading pro-tools on