+ Breadth & Volume

This "indicator" is basically a variety of indicators that measure volume, or accumulation/distribution. There's a bit of a story about how this came about but
it's not that interesting, so I'll spare you.
Indicators from which you may choose here are On Balance Volume (OBV), Money Flow Index (MFI), Chaikin Money Flow (CMF), Chaikin Oscillator, and Positive & Negative Net Volume.
I'll give a brief overview of these below, and if you want to educate yourself further on them you may. There are many web resources for that.
Most people are probably familiar with OBV. It's one of the more commonly used volume indicators, especially in the crypto crowd (at least amongst those traders I follow). It's basically a cumulative (doesn't oscillate around a midpoint) momentum indicator that measures volume of the current period versus volume of the previous period and adds it if price closed higher, but subtracts it if price closes lower. It's another way of using volume to confirm trend.
The MFI is a momentum indicator that measures the flow of money into and out of an asset over some period of time (user input). It's calculated using the RSI, so it can be used similarly to RSI (divergences, overbought, oversold, etc.), but of course unlike the RSI it's calculated primarily using volume and comparing the most recent candle close to the previous one (similar to OBV).
CMF is a volume-weighted average of accumulation and distribution over a some period of time (typically 21). It's a way of measuring accumulation versus
distribution in an asset, and oscillates around a zero line. You would use it similarly to any other oscillator, in that you can look for divergences, and general positive or negative momentum.
Chaikin Oscillator is basically a MACD (without signal line) of the accumulation and distribution index (or line--which is somehow different than simply accumulation and distribution). I haven't looked into these differences deeply, but if you look below at the calculations, and substituted 'ad' for 'accdist' you get very different readings. I actually did that, and what it looks like it would do is turn the actual Oscillator into a MACD signal line. So, by substituting 'ad' for 'accdist' (or the accumulation/distribution index) you produce a signal line of the Chaikin Oscillator.
Anyway, all that confusion out of the way, as I said, it's a MACD on the accumulation and distribution index, therefore it is another zero line oscillator, and similarly to CMF, it's a way of measuring price movements in the chart versus a/d. The zero line isn't just any old zero line, however, it is actually the accumulation distribution line. I've made an OBV version of this by substituting the OBV for AD, so if you prefer OBV maybe you will like that.
Pos. & Neg Net Volume is actually an indicator I had seen made by RafaelZioni. It basically takes net volume, calculates a cumulative of that, then subtracts a moving average of some period from the cumulative net volume in order to create a volume oscillator. Use it like the other oscillators!
Added Donchian Channels, moving averages, Bollinger Bands, colored everything, and alerts.
Enjoy!
Below I will post images with the different indicators, everything on default settings (except for lookback period, which I have adjusted to my personal preferences).
Above is an image with the MFI being compared to the RSI since they are very similar (MFI being basically a volume derivative of the RSI).
Chaikin Money Flow set to lookback of 13. You could probably extend that a bit if you wanted to smooth the line more.
Chaikin Oscillator and Chaikin Oscillator of OBV, with a zoomed in look below, to see the differences more clearly.
CO and COBV closer look.
Positive & Negative Net Volume.
I have to say this was kind of a bad spot to take a screenshot, in terms of divergences. Probably the worst spot I could have chosen, tbh. Every indicator on the planet was showing divergences on this grind up from 30k to 50k on bitcoin. And then of course the typical pop all the way at the top that destroys an divergences (except for CMF, apparently? (though it's close)) and traps bulls.
-fixed formula for OBV - previous formula using rate of change instead of just change, was so it could be smoothed, but smoothing obv doesn't work out that great (at least by using rate of change). Consequently it screwed up the Chaikin Osc. OBV because it was double smoothing that. Chaikin OBV works much better now, and changing lookback periods produces results that make much more visual sense.
-added colors for center line cross, so the oscillator and candles are highlighted only if they are above or below the center line
-improved the reading of some menu items
--added a couple moving averages
Specific to + Breadth and Volume I've added Accumulation-Distribution, Price Volume Trend, and the Chaikin Oscillator of PVT as indicators to choose from.
User Non-Visible Updates (basically backend stuff that makes:
- changes in code legibility and consistency across all indicators (basically standardizing the coding across as many indicators as possible)
- implementation of libraries into my indicators; which helps significantly in doing what I typed above; which in turn will make creating any new indicators, if they are of the type to use these libraries, much simpler
- updated descriptions for all indicators, which should (it's possible I've forgotten things) reflect changes I've made recently and any I may have made in the past after first publication (this is very minor, but as I was changing so much I thought I may as well--I don't intend to update these much, if at all, in the future)
User Visible Updates:
- as I mentioned everything now uses my moving averages library and volatility bands library--this cuts down the total amount of code significantly, and has made it easier for me to add moving averages, or volatility bands to these indicators because I only had to/have to add it one time (to the library) rather than multiple times across all indicators*
- since creating these libraries I've added several new moving averages (Kaufman Adaptive, Laguerre Filter, McGinley Dynamic (doesn't work for all), and Zero-lag) to them while retaining all the previous with the exception of the UMA, which wasn't implemented consistently across all indicators anyway
- eliminated having two Bollinger Bands with different standard deviations and a fill between them in exchange for one with the band fill implementation that I use on my Donchian Channels Bands
- part of my code consistency across all indicators resulted in a much needed organization of the 'style' tab
*(affects all but the Wavetrend Oscillator, Wavetrend Oscillator Overlay, Jurik KDJ, Average Candle Bodies Range, Bollinger Bands Width, ALMA Trend Detector, Ultimate Moving Average, Donchian Channels, and Dynamic Donchian Channels)
- updated to pine v6
- brought code more in alignment with TradingView recommendations
- updated to switch operations for selecting moving averages, donchian channel and bollinger bands. This cuts down on a lot of code and makes the code itself easier to read.
- like all but two indicators that have used it, I've eliminated color.gradient from the code, which means you don't get pretty gradient colors when using certain color references. My apologies to those who enjoyed that, but part of these updates is cleaning up the UI in the Inputs tab, and getting rid of color inputs was part of that, and due to the way pinescript works, the only way I could eliminate color inputs was to eliminate gradient colors.
- updated divergences code to the latest by TradingView. Hopefully this is an upgrade for those who use them.
- added color by timeframe. There is a tooltip for this, but basically if you're on a daily tf and you select weekly for a higher tf, whichever indicator you're using will be colored based on where that current indicator is (on the daily tf) relative to the levels and things on the weekly. So like if the money flow index is below the signal line (if you're using it) but above the centerline on the daily, but it is above both on the weekly the MFI color and bar color will reflect this (MFI being bullish on the weekly).
- added indicator smoothing, which was there before but just not obvious (you would have used a signal line as a smoothed version, but that's obviously not apparent in the indicator). Now it very much is obvious as there is a check box for it.
I think that's about all.
As always, enjoy responsibly. :)
Skrip sumber terbuka
Dalam semangat sebenar TradingView, pencipta skrip ini telah menjadikannya sumber terbuka supaya pedagang dapat menilai dan mengesahkan kefungsiannya. Terima kasih kepada penulis! Walaupun anda boleh menggunakannya secara percuma, ingat bahawa menerbitkan semula kod ini adalah tertakluk kepada Peraturan Dalaman kami.
Untuk akses pantas pada carta, tambah skrip ini kepada kegemaran anda — ketahui lebih lanjut di sini.
Penafian
Skrip sumber terbuka
Dalam semangat sebenar TradingView, pencipta skrip ini telah menjadikannya sumber terbuka supaya pedagang dapat menilai dan mengesahkan kefungsiannya. Terima kasih kepada penulis! Walaupun anda boleh menggunakannya secara percuma, ingat bahawa menerbitkan semula kod ini adalah tertakluk kepada Peraturan Dalaman kami.
Untuk akses pantas pada carta, tambah skrip ini kepada kegemaran anda — ketahui lebih lanjut di sini.