Bull & Bear Volume-by-Price levels

v10.3
Bull & Bear Volume-by-Price levels

This “Volume-by-Price” indicator shows the amount of volume for a particular price range selected with the “lookback” setting, which is based on closing prices. The bars are horizontal and shown on the left side of the chart to correspond with these price ranges. The bars are separated into 2 colors to clearly identify the bull and bear Volumes in each price range. By combining volume and closing prices, this indicator can be used to identify high-volume price ranges to mark support or resistance.

The code shows 12 Volume-by-Price bars by default, but users can increase or decrease this number to suit their preferences with the “NbrBars” setting. Be aware that due to some ProBuilder limitations, this setting, as well as the lookback one, cannot be extended very much.

For a better visualization of which side has higher volumes on each price range, I added a small square of the corresponding color.

The ScaleFactor setting is used to adapt the length of the bars, depending of your choice to have small or big bars plotted over the price chart.

 

Share this

Risk disclosure:

No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.

ProRealTime ITF files and other attachments : How to import ITF files into ProRealTime platform?

PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials

  1. juanj • 07/05/2018 #

    Love It!

  2. Marcel • 07/05/2018 #

    Great job, just what I needed.

  3. juanj • 07/05/2018 #

    The only problem is that it takes forever to load, even after changing calculateonlastbars=200

    • Nicolas • 07/05/2018 #

      You’ll need at least 201 bars for a 200 bars lookback. About loading time, I can’t help more sorry …

  4. Marcel • 07/05/2018 #

    Loading time is surmountable if you trade om the daily timeframe.

  5. ALE • 07/05/2018 #

    Great!

  6. James Bonnd • 07/05/2018 #

    do u have indicator for binary???

  7. Eloi • 07/05/2018 #

    Bonjour Nicolas, Merci ! Excellent code. Les zones sont à égales distances les unes des autres. Y aurait pas moyen d’affiner ?

    • Nicolas • 07/05/2018 #

      Désolé je n’ai pas compris la question.

  8. Eloi • 07/05/2018 #

    Excuse-moi, je n’étais peut être pas clair. Sur certaines zones, le prix passe à de très nombreuses reprises sur d’autres beaucoup moins. J’aimerai pouvoir différencier cela. Est-ce possible ?

    • Nicolas • 07/05/2018 #

      Je ne comprends pas de quelles zones on parle ? Le graphique représenté ici est simplement une somme des volumes sur les x dernières périodes et divisé en 12 parts égales.

  9. Eloi • 07/05/2018 #

    Ok je comprend mieux. Merci Nicolas

  10. macbartin • 07/05/2018 #

    Bonjour, si je souhaite utiliser l’indicateur “Market profile” : “Bull & Bear Volume-by-Price levels” et que je travaille sur une unité de temps 30Min! Alors je voudrais l’avoir en debut de journée. par exemple : ouverture DAX30 8:00 la ligné de départ comme a partir de 8:00.
    Il faut donc calculer comme cela : 22:00 (heure fermeture DAX30) – 8:00 (ouverture DAX30) = 14h00 de temps donc pour des bougies de 30Min il faut 14*2=28 (28 correspond au nombre de périodes à renseigner ?) pour pouvoir commencer au debut de la journée ?

  11. peppe novellino • 07/05/2018 #

    Hi Nicholas…the system shows me two errors. The first one is this: PRC_Bull&Bear Volume on Price (5 12 200); the second one is on the line 6, character 10 (defparam drawonlastbaronly=true). I took a picture of it but I dont’k how to attach it here.
    Thanks in advance

    • Nicolas • 07/05/2018 #

      Indicator is compatible from version 10.3
      To avoid code problems with bad copy paste, you should download the. .itf file and import it into your platform.

  12. peppe novellino • 07/05/2018 #

    Thanks Nicholas: I did it. I mean that I’ve imported the itf file that you’ve charged above, but it isn’t still working. I can’t understand what’s the problem

  13. peppe novellino • 07/05/2018 #

    Hallo Nicholas…I’ve been waiting for your aswer: maybe you can’t help me. All the best

    • Nicolas • 07/05/2018 #

      I think you have not a compatible version of PRT. What’s your broker?

  14. peppe novellino • 07/05/2018 #

    My broker is Binck bank, and I’m actually using version 10.2 (I think that Binck as a kind of use license for prorealtime)

    • peppe novellino • 07/05/2018 #

      Has a kind…sorry for the mistake

    • Nicolas • 07/05/2018 #

      Ok, so that confirm what I replied to you 7 days ago, your PRT version is too old and not compatible for graphics objects created by code.

  15. odin • 07/05/2018 #

    i nicoles i have posted a new forum topic with your indicator, to search for help.

  16. TAC Bolsa • 07/05/2018 #

    Hola Nicolas enhorabuena por el indicador podrías agregar una linea al indicador, indicado el Volumen Maximo.. en modo VPOC.

  17. TAC Bolsa • 07/05/2018 #

    Gracias Nicolas no te molestes.

    Ya he realizado mi propio indicador con un Volumen profile y un marker profile para el intradia para Prorealtime.

  18. TAC Bolsa • 07/05/2018 #

    Como sabes todo mis indicadores están bloqueados pero te dejo el enlace por si te interesa probarlo y compartir ideas o mejoras…..

    https://www.tiburonesdealetacorta.com/2018/11/tac-volumen-profile.html

    Mucho de este indicador parte de tu idea inicial, solo se tenia que mejorar.

  19. TAC Bolsa • 07/05/2018 #

    He publicado una nueva version para todos los valores

    https://www.tiburonesdealetacorta.com/2018/11/tac-volumen-profile-v1.html

    Gracias

  20. oracle • 07/05/2018 #

    Nicolas “podrías agregar una línea en el indicador, indicado el Volumen Máximo .. en modo VPOC”. como se pide por varios foreros y o no se puede hacer. ¿?.

    • Nicolas • 07/05/2018 #

      Se puede hacer, por favor haga una solicitud específica en el foro, gracias.

    • oracle • 07/05/2018 #

      Es esto lo que necesitas Nicolas

      https://www.prorealcode.com/topic/bull-bear-volume-by-price-levels/

      Si no dime como lo solicito..

    • oracle • 07/05/2018 #

      Me puede indicar si esto es suficiente para realizar su colaboración.

  21. Kris75 • 07/05/2018 #

    Hi Nicolas,
    Just a quick question:
    > how come the “volume on price” indicator of PRT is so quick and this great one you developped so “slow”;
    I makes no sens to me!
    Thanks anyway for this;
    Chris

  22. Kris75 • 07/05/2018 #

    😉 ok thanks

    What about creating a strategy based on this indicator using the same trick you used in “swing lines : https://www.prorealcode.com/topic/swing-lines-strategy/“, registering the different maximimums of volume level which are a definition of a support or resistance?
    Best,
    Chris

    • Nicolas • 07/05/2018 #

      no real trick, just storing each segment value into a variable.. 😉

  23. Kris75 • 07/05/2018 #

    BTW I tried to add a piece of code which makes the indicator automaticaly starts the “llokback” at the highest of the time frame but it did not work: here is what I tried (FYI the Add PRT code is down)

    but it givest me an error saying the highest only accept positive integer (I debugged it but could not make it work)

    for i=400 to barindex

    StartVol=highest[400](high)
    if high = StartVol then
    StartBar = barindex
    else
    StartBar =0
    endif

    if StartBar > StartBar[1] then
    LastStartBar = StartBar
    endif
    next

    hh=highest[LastStartBar](high)
    ll=lowest[LastStartBar](low)
    div = (hh-ll)/NbrBars
    i=0
    volsum=summation[LastStartBar](volume)

    while i=lrange and close[j]open[j] then
    volbull=volbull+volume[j]
    else
    volbear=volbear+volume[j]
    endif
    endif
    next
    bullbar = round((volbull*LastStartBar)/volsum)*scalefactor
    bearbar = round((volbear*LastStartBar)/volsum)*scalefactor

    drawrectangle(LastStartBar,lrange,LastStartBar+bullbar,hrange) coloured(46,139,87,255)
    drawrectangle(LastStartBar,lrange,LastStartBar+bearbar,hrange) coloured(255,0,0,255)

    if bullbar>bearbar then
    drawtext(“■”,LastStartBar+bullbar,(lrange+hrange)/2,Dialog,Bold,22) coloured(46,139,87)
    else
    drawtext(“■”,LastStartBar+bearbar,(lrange+hrange)/2,Dialog,Bold,22) coloured(255,0,0)
    endif
    i=i+1
    wend
    drawvline(barindex[LastStartBar])

    return

    • Nicolas • 07/05/2018 #

      Because your variable “LastStartBar” is sometimes equal to 0 or even negative, you should declare it in a way that it has a positive value in any case, like this:
      LastStartBar = max(1,startbar)

  24. Kris75 • 07/05/2018 #

    thanks for your help

  25. Kris75 • 07/05/2018 #

    Hello Nicolas,

    J’ai la même erreur avec ce code vous voyez d’ou cela vient ?

  26. Kris75 • 07/05/2018 #

    //PRC_Bull&Bear Volume on Price | indicator
    //05.07.2018
    //Nicolas @ http://www.prorealcode.com
    //Sharing ProRealTime knowledge

    //defparam drawonlastbaronly=true
    //defparam calculateonlastbars=300

    // — settings
    //ScaleFactor = 5
    //NbrBars=25
    //lookback=50
    // — end of settings

    for i=0 to 400 do

    StartVol=highest[400](high)
    if high[i] = StartVol then
    StartBar = i
    //else
    //StartBar =1
    endif

    if StartBar > StartBar[1] then
    LastStartBar = max(1,startbar)
    endif
    next

    hh=highest[LastStartBar](high)
    ll=lowest[LastStartBar](low)
    div = (hh-ll)/NbrBars
    i=0
    volsum=summation[LastStartBar](volume)

    while i=lrange and close[j]open[j] then
    volbull=volbull+volume[j]
    else
    volbear=volbear+volume[j]
    endif
    endif
    next
    bullbar = round((volbull*LastStartBar)/volsum)*scalefactor
    bearbar = round((volbear*LastStartBar)/volsum)*scalefactor

    drawrectangle(LastStartBar,lrange,LastStartBar+bullbar,hrange) coloured(46,139,87,255)
    drawrectangle(LastStartBar,lrange,LastStartBar+bearbar,hrange) coloured(255,0,0,255)

    if bullbar>bearbar then
    drawtext(“■”,LastStartBar+bullbar,(lrange+hrange)/2,Dialog,Bold,22) coloured(46,139,87)
    else
    drawtext(“■”,LastStartBar+bearbar,(lrange+hrange)/2,Dialog,Bold,22) coloured(255,0,0)
    endif
    i=i+1
    wend
    drawvline(barindex[LastStartBar])

    return

    • Nicolas • 07/05/2018 #

      ça vient de la même erreur, on ne peut avoir 0 comme période dans un indicateur et LastStartBar doit être à 0 dans l’une des premières itérations du code.

  27. Kris75 • 07/05/2018 #

    Hello Nicolas,
    C’est énigmatique pour moi ; pouvez-vous corriger le code ? Je pense que ce sera plus apprenant ; merci

    • Nicolas • 07/05/2018 #

      Dans le code, il n’y a qu’à cet endroit ou tu déclares que LastStartBar doit être à minima égal à 1:
      if StartBar > StartBar[1] then
      LastStartBar = max(1,startbar)
      endif
      Hors si cette condition n’est pas vrai, LastStartBar est toujours égal à 0 à la première lecture du code, d’ou l’erreur générée par la plateforme. Je pense que tu devrais arriver à corriger cette petite erreur 🙂

  28. Kris75 • 07/05/2018 #

    J’ai essayé cela mais ça produit des traits verticaux

    if StartBar > StartBar[1] then
    LastStartBar = max(1,startbar)
    else
    LastStartBar = 1
    endif

  29. Kris75 • 07/05/2018 #

    Hello Nicolas,
    je bloque ;
    je veux bien avoir votre correction de cet indicateur fonctionnant sur les plus hauts de derniers X unités ;
    merci
    Christophe

  30. Kris75 • 07/05/2018 #

    j’ai l’impression que ce code ne permet pas de connaitre le N° de la bougie correspondant au plus haut ;

  31. Kris75 • 07/05/2018 #

    StartVol=highest[400](high)
    for j=0 to 4000 do
    if high[j]=StartVol then
    Start = j
    break
    //break//else
    ////StartBar =1
    endif
    next

  32. Kris75 • 07/05/2018 #

    celui-la

    StartVol=highest[400](high)
    for j=0 to 400 do
    if high[j]=StartVol then
    Start = j
    break
    //break//else
    ////StartBar =1
    endif
    next

  33. Kris75 • 07/05/2018 #

    Hello Nicolas,
    Pour info tous les commentaires ont disparu !!!

    • Nicolas • 07/05/2018 #

      il faut cliquer sur ‘older comments’.

  34. Kris75 • 07/05/2018 #

    ‘older comments’ non visible pour moi ;
    idem pour la barre supérieure ou l’on peut ‘souscrire’ et mettre en ‘favori’

  35. Kris75 • 07/05/2018 #

    pb reproduit sur edge

  36. JMat45 • 07/05/2018 #

    Hi, thanks for this, Nicolas. Quick question: can this be modified so that, for intraday timeframes, it displays the relevant volume at price levels at the start of each new trading day based on the last trading day, like here: https://images.app.goo.gl/cc3oRLoeUMcHDrrK6
    I have seen Kris75’s variations on your work, but wanted to pose the question to you first. Thanks.

  37. Pascale31 • 07/05/2018 #

    Hello, I would like to know if there is a screener compliant with this indicator (Bull & Bear Volume-by-Price levels) ?
    Kind regards

    • Nicolas • 07/05/2018 #

      I don’t think so, I can’t remember, but you can try to search in the forums.

  38. sixeight • 07/05/2018 #

    Hello Nicolas,
    This is just what I’ve been looking for, but I have a few questions:
    1. Is it possible to increase the number of bars above 20? I tried 50 but I get a loop error.
    2. Is it possible to do it on a set timeframe/session?
    3. Is it possible to show previous days/sessions profiles?
    Thanks for any help 🙂

    • Nicolas • 07/05/2018 #

      1. yes
      2. maybe yes?!
      3. why not?

  39. patapouf • 07/05/2018 #

    Bonjour Nicolas.
    Je viens de découvrir cet indicateur, que je trouve bien intéressant
    Mais j’ai un petit problème technique (peut-être lié à la version 11 de PRT ?).
    Précision : j’ai importé la file *itf ci-dessus sans rien y changer.
    Les rectangles ne sont pas colorés, et ils sont donc difficiles à voir sur le graphe (malheureusement, impossible ici d’ajouter une pièce jointe pour envoyer la copie d’écran).
    As-tu idée d’où cela peut-il provenir ?
    Merci par avance

    • Nicolas • 07/05/2018 #

      Tu peux modifier le paramètre “scalefactor” pour adapter la hauteur des barres à ton graphique / écran.

avatar
Register or

Likes

avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar

+24 more likes

Related users ' posts
kal Buenos días TACBOLSA. Estoy muy interesado en ver tu blog para ver la explicación con detall...
1Randy I would be interested an invite to your blog. I am still learning about the VSA and it looks...
repropel Buenos días TACBOLSA. Yo también estoy interesado en visitar tu blog. Podrías enviarme una i...
Maxime Baudin Very useful! Thanks Mat, and Happy New Year
nicko Great work. Thank you. However I am having trouble getting it to print in the first bar. If ...
Marie-Eve Vergoz Bonsoir - Voici l'erreur qui est signalée lorsque je souhaite utiliser cet indicateur : il...
Meta Signals Pro Pleasure ! Please let us know if you make good trades with it and if you see improvements we...
francis59 Bonjour, Bonjour, comment puis-je créer un screener basé sur cet indicateur, qui affiche le...
Trader Sab I am curious to try it how, however I get an error message for line 47 and 48 - drawsegment,...
Om Hello, thanks for sharing! Getting a message that Variable P is undefined?
matin Intraday Average Volume Indicator Not working, what can i do plz
LucioleLucide Clean view, thanks for sharing
dertopen hi where i can found the window for candle configuration?
paolosab69 Ciao! . I have seen the pictures that explain this metod but i don't understand when is mome...
Ciccio
5 years ago
Vinks_o_7 Apirine also offers a very interesting update of the OBV...
TACBOLSA
5 years ago
dario ti please can you help me to understand? i know i am wrong: Long Histogram = High Volume S...
TAC Bolsa hi, I have already seen the problem and requested that it be removed until an adequate so...
sixeight Hey TAC, Did you ever find a solution to this?
Vinks_o_7 b=close > low and volume > high How can we compare volume and high of the day? (orang...
TAC Bolsa If to understand something you resort to compare Oranges and bananas. You go bad, Without e...
giumagi good morning Sir, great job your indicators! How can I reach your website or blog? please..t...
Gianluca THANK YOU!!!!!
JOSEBA que relaccion tiene la numeración de las barras del 1 al 10 que tiene cada número Tengo dos...
marcov66 Hi, it seems a very useful indicator. Unfortunately the link here for the full explanation d...
TACBOLSA Discontinued indicator. we are sorry.
Azzuerus Bonjour, je teste et j'utilise vos indicateurs depuis plusieurs années, et ils me sont dev...
bremze33 Another thing. Is it possible to make the graph lines a little thicker and not so long? Be...
giumagi Hi Sir, very good job done with this indicator, May I ask you to explain what is the line VW...
pmdr1969 Hola soy nuevo en en esto. ¿Hay algo parecido pero pudiendo tu elegir las velas a a analizar...
Nicolas Add indicator on price doesnt require any specific type of subcription. Click on the wrench ...
tahiti bonjour j'ai une petite question comment peux on enlevé la bar blanche sur la bougie en cour...
sixeight Hi Kris, is there a way to increase the number of rows? I get a loop error
Nicolas Good job Gabri, I confirm that with the new ProRealTime v11, everyone will be able to use in...
Slowlyslowly can u just help me with the exact definition of percbox , mm and period to understand will a...
Real Pro Great work gabri. I have this coded on Amibroker and I have done lots of backtesting but ne...
gabri Hi Real Pro, this indicator assists novices of the Wyckoff system. Wyckoff himself thought t...
tatie hi Gabri, I just came across the wyckoff method and was looking for the weiss wave indica...

Top