ChaosTrader

ZoneBars

Bill Williams Zone and Squat Bars. See New Trading Dimensions by Bill Williams , PhD .
Bars are green (green zone) when the Awesome Oscillator and Accelerator/Decelerator are both positive.
Bars are red (red zone) when the Awesome Oscillator and Accelerator/Decelerator are both negative.
Bars are blue when a squat bar is formed, these indicate a battle between bulls and bears and often happen near trend continuation or trend changes.
Caution: Assumes chart is a bar chart - not a candle chart.
Caution: Squat bars are accurate only with official exchange volume data - BATS data will give false squat bars.
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?
//Bill Williams Zone and Squat Bars.  See New Trading Dimensions by Bill Williams, PhD.
//Bars are green (green zone) when the Awesome Oscillator and Accelerater/Decelerator are both positive.
//Bars are red (red zone) when the Awesome Oscillator and Accelerater/Decelerator are both negative.
//Bars are blue when a squat bar is formed, these indicate a battle between bulls and bears and often happen near trend continuation or trend changes.
//Caution: Assumes chart is a bar chart - not a candle chart.
//Caution: Squat bars are accurate only with official exchange volume data - BATS data will give false squat bars.
study(title="ZoneBars", overlay = true)
ao = sma(hl2,5) - sma(hl2,34)
ac = ao - sma( ao, 5 )
isGreen() => ao > ao[1] and ac > ac[1]
isRed() => ao < ao[1] and ac < ac[1]
mfi = (high-low)/volume
rm = roc(mfi,1)
rv = roc(volume,1)
isSquat() => rm < rm[1] and rv > rv[1] 
barcolor(isSquat() ? blue : isGreen() ? green : isRed() ? red : black)