Logarithmic Bollinger Bands

kingthies Premium 已更新   
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')
// } 
發布通知: Adjusted Length title from
lenX = input(20,title='lenX')
 lenX = input(20,title='Length') 
in settings/menu.

Eric Thies

本著真正的TradingView精神,該腳本的作者將其開源發布,以便交易者可以理解和驗證它。為作者喝彩吧!您可以免費使用它,但在出版物中重複使用此代碼受網站規則的約束。 您可以收藏它以在圖表上使用。