Logarithmic Bollinger Bands

Logarithmic Bollinger Bands
Published by Eric Thies on January 14, 2022

In this script I have taken the standard Bollinger band pinescript and made efforts to eliminate the behavior experienced in periods of high volatility in which we see the bands disappear completely off the chart by adding exponential plotting and logarithmic sourcing to the tool.

This tool will also show periods of Bearish and Bullish Expansion for users to see when volatility is running high in the market.

More On Bollinger Bands
​Bollinger Bands consist of a center line representing the moving average of a security’s price over a certain period, and two additional parallel lines (called the upper and lower trading bands) one of which is just the moving average plus k-times the standard deviation over the selected time frame, and the other being the moving average minus k-times the standard deviation over that same timeframe. This technique has been developed in the 1980’s by John Bollinger , who lately registered the terms “Bollinger Bands” as a U.S. trademark in 2011. Technical analysts typically use 20 periods and k = 2 as default settings to build Bollinger Bands , while they can choose a simple or exponential moving average . Bollinger Bands provide a relative definition of high and low prices of a security. When the security is trading within the upper band, the price is considered high, while it is considered low when the security is trading within the lower band.

​There is no general consensus on the use of Bollinger Bands among traders. Some traders see a buy signal when the price hits the lower Bollinger Band and close their position when the price hits the moving average. Some others buy when the price crosses over the upper band and sell when the price crosses below the lower band. We can see here two opposing interpretations based on different rationales, depending whether we are in a reversal or continuation pattern. Another interesting feature of the Bollinger Bands is that they give an indication of the volatility levels; a widening gap between the upper and lower bands indicates an increasing volatility , while a narrowing band indicates a decreasing volatility . Moreover, when the bands have an almost flat slope (parallel to the x-axis) the price will generally oscillate between the bands as if trading through a channel.

 //  © 2022 KINGTHIES THIS SOURCE CODE IS SUBJECT TO TERMS OF MOZILLA PUBLIC LICENSE 2.0 (MOZILLA.[symbol=org]ORG[/symbol]/[symbol=mpl]MPL[/symbol]/2.0)
//## !<----------------  © KINGTHIES --------------------->
indicator('Logarithmic [__tag__=bollingerbands]Bollinger Bands[/__tag__] (kingthies)',shorttitle='LogBands_KT',overlay=true)

[symbol=src]src[/symbol] = math.log(input(close,title="Source"))
lenX = input(20,title='lenX')
highlights = input(false,title="Highlight Bear and Bull Expansions?")
[symbol=mult]mult[/symbol] = 2
bbandBasis = ta.[__tag__=simplemovingaverage]sma[/__tag__]([symbol=src]src[/symbol],lenX)
dev = 2 * ta.stdev([symbol=src]src[/symbol], 20)
upperBB = bbandBasis + dev
lowerBB = bbandBasis - dev
[__tag__=bollingerbandswidth]bbw[/__tag__] = (upperBB-lowerBB)/bbandBasis
[symbol=bbr]bbr[/symbol] = ([symbol=src]src[/symbol] - lowerBB)/(upperBB - lowerBB)
// }

bullExp= ta.rising(upperBB,1) and ta.falling(lowerBB,1) and ta.rising(bbandBasis,1) and ta.rising([__tag__=bollingerbandswidth]bbw[/__tag__],1) and ta.rising([symbol=bbr]bbr[/symbol],1) 
bearExp= ta.rising(upperBB,1) and ta.falling(lowerBB,1) and ta.falling(bbandBasis,1) and ta.rising([__tag__=bollingerbandswidth]bbw[/__tag__],1) and ta.falling([symbol=bbr]bbr[/symbol],1) 
// } 

// { COLORS 
greenBG = color.[symbol=rgb]rgb[/symbol](9,121,105,75), redBG = color.[symbol=rgb]rgb[/symbol](136,8,8,75)
bullCol = highlights and bullExp ? greenBG : na, bearCol = highlights and bearExp ? redBG : na
// } 

lowBB=plot(math.[symbol=exp]exp[/symbol](lowerBB),title='Low Band',color=color.aqua),plot(math.[symbol=exp]exp[/symbol](bbandBasis),title='BBand Basis',,
highBB=plot(math.[symbol=exp]exp[/symbol](upperBB),title='High Band',color=color.aqua),fill(lowBB,highBB,title='Band Fill Color',color=color.[symbol=rgb]rgb[/symbol](0,128,128,75)) 
bgcolor(bullCol,title='Bullish Expansion Highlights'),bgcolor(bearCol,title='Bearish Expansion Highlights')
// } 
Notas de Lançamento: Adjusted Length title from
lenX = input(20,title='lenX')
 lenX = input(20,title='Length') 
in settings/menu.

Eric Thies
Script de código aberto

Dentro do verdadeiro espírito TradingView, o autor deste script publicou ele como um script de código aberto, para que os traders possam compreender e checar ele. Um viva ao autor! Você pode usá-lo gratuitamente, mas a reutilização deste código em uma publicação é regida pelas Regras da Casa. Você pode favoritá-lo para usá-lo em um gráfico.

Aviso legal

As informações e publicações não devem ser e não constituem conselhos ou recomendações financeiras, de investimento, de negociação ou de qualquer outro tipo, fornecidas ou endossadas pela TradingView. Leia mais em Termos de uso.

Quer usar esse script no gráfico?