kingthies

Logarithmic Bollinger Bands

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

Summary
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)
//@version=5
//## !<----------------  © KINGTHIES --------------------->
indicator('Logarithmic [__tag__=bollingerbands]Bollinger Bands[/__tag__] (kingthies)',shorttitle='LogBands_KT',overlay=true)

// { BBANDS
[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)
// }

// { BBAND EXPANSIONS
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
// } 

// { INDICATOR PLOTTING
lowBB=plot(math.[symbol=exp]exp[/symbol](lowerBB),title='Low Band',color=color.aqua),plot(math.[symbol=exp]exp[/symbol](bbandBasis),title='BBand Basis',color=color.red),
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')
// } 
Release Notes: Adjusted Length title from
lenX = input(20,title='lenX')
to
 lenX = input(20,title='Length') 
in settings/menu.

Eric Thies
Skript med en öppen källkod

I sann TradingView-anda har författaren publicerat detta skript med öppen källkod så att andra handlare kan förstå och verifiera det. Hatten av för författaren! Du kan använda det gratis men återanvändning av den här koden i en publikation regleras av våra ordningsregler. You can favorite it to use it on a chart.

Frånsägelse av ansvar

Informationen och publikationerna är inte avsedda att vara, och utgör inte heller finansiella, investerings-, handels- eller andra typer av råd eller rekommendationer som tillhandahålls eller stöds av TradingView. Läs mer i Användarvillkoren.

Vill du använda det här skriptet i ett diagram?