OPEN-SOURCE SCRIPT

Sentiment Oscillator

Actualizado
Price moves when there are more market takers than there are market makers at a certain price (i.e. price moves up when there are more market buys than limit sells and vice versa). The idea of this indicator is to show the ratio between market takers and market makers in a way that is intuitive to technical analysis methods, and hopefully revealing the overall sentiment of the market in doing so. You can use it in the same way you would other oscillators (histogram crossing zero, divergences, etc). The main difference between this and most volume-weighted indicators is that the price is divided by volume instead of multiplied by it, thus giving you a rough idea of how much "effort" it took to move the price. My hypothesis is that when more volume is needed to move the price, that means bulls and bears are not in agreement of what the "fair price" should be for an asset (e.g. if the candle closes only a bit higher than its open but there's a huge spike in volume, that tells you that a majority of the market are starting to think the price is too high and they've started selling).

Methods of Calculation
1. Price Change Per Volume
The main method this indicator uses to reveal market sentiment is by comparing price change to the volume of trades in a bar.
You will see this calculation plotted in its most basic form by ticking the "Show Bar per Bar Change/Volume" box in the inputs dialog. I personally found that the plots were too noisy and cannot be used in real time reliably due to the fact that there is not much volume at the open of a new bar. I decided to leave in the option to use this method, in case you'd like to experiment with it or get a better grasp of how the indicator works.

2. Exponential Moving Averages
In my quest to smooth out the plotted data, I experimented with exponential moving averages. Applying an EMA on the change per volume data did smooth it out a bit, but still left in a lot of noise. So I worked around it by applying the EMA to the price change first, and then dividing it by the EMA of the volume. The term I use for the result of this calculation is "Market Sentiment" (do let me know if you have a better-fitting term for it ;-)), and I have kept it as an option that you can use in the way you would use other oscillators like CMF, OBV, etc. This option is unticked by default.

3. MACD
I left "Market Sentiment" unchecked as the default option because I thought an easier way to use this indicator would be as a momentum indicator like the MACD . So that's what I turned it into! I applied another EMA on the Market Sentiment, added a slower EMA to subtract from the first, and now we have a MACD line. I added a signal line to subtract from the MACD , and the result is plotted as a histogram... ish . I used area instead of columns for plot style so you don't get confused when comparing with a regular MACD indicator, but you can always change it if an actual histogram is more your taste.
The "histogram" is the main gauge of sentiment change momentum and it is easiest to use, that is why it is the only calculation plotted by default.

Methods of Use
As I have mentioned before, you can use this as you would other oscillators.
-The easiest way to use this indicator is with the Momentum histogram, where crosses over 0 indicate increasing bullish sentiment, and crosses below 0 indicate increasing bearish sentiment. You may also spot occasional divergences with the histogram.
-For the Market Sentiment option, the easiest way to use it is to look for divergences.
-And if you use the "Price Change per Volume of Each Bar", well... I honestly don't know. I guess divergences would be apparent towards the close of a bar, but in realtime, I don't recommend you use this. Maybe if you'd like to study the market movement, looking at historical data and comparing price, volume , and Change per Volume of each bar would come in handy in a pseudo-tape-reading kind of way.

Anyway, that's my explanation of this indicator. The default values were tested on BTC/USDT (Binance) 4h with decent results. You'll have to adjust the parameters for different markets and timeframes.
I have published this as a strategy so you can test out how the indicator performs as you're tweaking the parameters.

I'm aware that the code might not be the cleanest as I have only started learning pine (and code in general) for about a month, so any suggestions to improve the script would be appreciated!
Good luck and happy trading :-)
Notas de prensa
I've added extra inputs so you can directly modify the strategy without opening the script. The original strategy was to buy when Histogram crosses over 0 and sell when Histogram crosses under 0. With this update, you can change it to the crossing (over or under) of other parameters (Histogram, MACD, EMAs, etc).
Notas de prensa
Fixed some errors in the strategy parameters, added an optional alternate calculation method and an optional alternate color scheme.
Centered OscillatorsMoving Average Convergence / Divergence (MACD)OscillatorsVolume

Script de código abierto

Siguiendo fielmente el espíritu de TradingView, el autor de este script lo ha publicado en código abierto, permitiendo que otros traders puedan entenderlo y verificarlo. ¡Olé por el autor! Puede utilizarlo de forma gratuita, pero tenga en cuenta que la reutilización de este código en la publicación se rige por las Normas internas. Puede añadir este script a sus favoritos y usarlo en un gráfico.

¿Quiere utilizar este script en un gráfico?

Exención de responsabilidad