Bollinger Bands are used widely in the trading community and are a key component of many trading strategies. By their nature, Bollinger bands offer a particular perspective of the market. But that perspective is not without its drawbacks.
This article will present a revised approach to the trading band concept with the aim of sharpening the focus of this class of indicator significantly. Both are valid and share a common heritage, but they are quite different under evaluation and in application. The derivation here is termed a volatility band. This article will explain why this derivation is necessary and how it is constructed and provide high-level preliminary test results.
Although the volatility bands are original in design and execution, they were inspired by Dennis McNicholl’s work to improve Bollinger bands in the late 1990s (“Better Bollinger Bands,” October 1998).
Houston, we have a problem
Popularized by John Bollinger, who gave them their name, Bollinger bands are simply a plot of a multiple of the standard deviation of price from its simple moving average (SMA), both above and below. By the use of standard deviation, we should reasonably expect that the distribution of price around the mean should conform to statistical normality, or get close to it.
Unfortunately, this is not the case for Bollinger bands and has led to a search to fix the problem. Based on observations of Bollinger bands, here are some of the issues:
• They are saddled with high lag, as virtually all SMA-based indicators are. Consequently, the user should be mindful of the delay in what the bands present.
• They do not envelope price in a manner consistent with a Gaussian distribution. That is, 68.2% of prices should be found within one standard deviation of the sample mean, 95.4% of prices should be found within two standard deviations of the mean, etc. This will be described as the price/band ratio. While it can be debated whether daily price changes are normally distributed, the Bollinger price/band ratio can be said to offer little or no information from a probabilistic perspective.
• The price/band ratio is not scale invariant. That is, the price/band ratio from a given standard deviation does not remain constant as timescales increase. For example, see the following based on S&P 500 prices with 2xSD banding:
160-bar Bollinger bands:
Price/band ratio = 83.7%
80-bar Bollinger bands:
Price/band ratio = 86.2%
20-bar Bollinger bands:
Price/band ratio = 88.5%
• The movement of the bands against the moving average does not correlate with historical volatility. Seeing as Bollinger bands are intended, in part, to reflect changes in volatility, this is an issue.
Thankfully, these issues can be resolved in a practical way. By systematically addressing each of these issues in turn, we can construct an indicator that complements rather than replaces Bollinger bands and provides a useful additional trading tool. The solution is also simpler than anticipated.
Let us see how these so-called volatility bands address some of these issues before explaining how the bands are constructed. Maybe the best way to demonstrate this is with a chart (see “Volatile solution,” left).
In this chart of the S&P 500, it’s clear how tightly the volatility bands hug price changes relative to the slow and sometimes wild and wide gyrations of the Bollinger bands. Volatility bands achieve this through the application of a low lag moving average and by calculating the standard deviation of price against that moving average. Note that the “standard” standard deviation function is an inappropriate tool for this.
The result is trading bands with low lag. Let’s see how effectively these bands encapsulate S&P 500 prices at 2xSD:
160-bar volatility bands:
Price/band ratio = 94.6%
80-bar volatility bands:
Price/band ratio = 95.3%
20-bar volatility bands:
Price/band ratio = 95.7%
To validate this point let’s take a peek at the numbers for 1xSD:
160-bar volatility bands:
Price/band ratio = 65.0%
80-bar volatility bands:
Price/band ratio = 66.9%
20-bar volatility bands:
Price/band ratio = 67.8%
These numbers verify that this implementation of standard deviation bands is achieving what it set out to do — that is, proportionally encapsulate price according to the configured standard deviation range. The numbers are not perfect, but are a big improvement on the baseline. So, we can hypothesize that these bands are conveying meaningful information that may be tradable. We’re also making good progress in tackling the issues highlighted earlier.
“Historical verification” (above) shows something just as interesting: how the oscillations in the width of the volatility bands, as a percentage of the mean, appear to correlate with historical volatility. To validate this assertion, we can review scatter charts of historical volatility against band width.
The requirements for calculating the volatility bands are simple:
• Any low-lag moving average
• A standard deviation calculation based on that moving average
The moving average used here is a lag-adjusted triple exponential moving average:
Function ZL_TEMA(TEMA1 As BarArray, Length, OffSet) As BarArray
Dim TEMA2 As BarArray
TEMA2 = TEMA(TEMA1, Length, OffSet)
Diff = TEMA1 - TEMA2
ZL_TEMA = MA_TEMA1 + Diff
Standard deviation is calculated using the following function:
Function StdDevPlus(Series As BarArray, SeriesMA As BarArray, Length As Integer) As Double
For i = 0 To Length -1
SumSquares = SumSquares + (Deviation(Series[i], SeriesMA[i])^2)
StdDevPlus = Sqr(SumSquares /(Length -1))
The next step is to see how these bands pan out in a hypothetical test.
Time for a test drive
So we have a seemingly interesting modification to the original Bollinger bands. Now we need to run some tests to see how it performs. Consider these proof-of-concept tests to see what the raw indicator can offer and how consistent it has been over time.
Based on the evidence from the earlier examination of the volatility bands there are two obvious approaches that could be used to apply this indicator:
1) Short or medium-term mean reversion: Buy or sell as price reaches extreme readings, as indicated by the bands.
2) Medium to long-term breakout: Buy or sell on breakouts from the price channel. (Codes and results for both strategies are online.)
These tests are conducted using the TradersStudio Portfolio backtester, a strong program in the domain of trading systems analysis and the development of integrated trade-management strategies. We’ll feed it with Pinnacle’s reverse-adjusted, continuously linked, historical futures data deducting $25 commission and $75 slippage for each trade to simulate transactional friction. Wide-ranging parameter optimization will not be performed.
Mean reverting strategy
Printouts of the distribution of price around the mean have shown a near normal distribution where the lowest probability price events occur as the tails of the bell curve narrow. Consequently, buying or selling at these extremes may be profitable. The simple strategy put together to test the idea buys or sells when the ratio of price to band width crosses above or below a fixed threshold with no stops. The absence of stops is sure to leave the strategy exposed to big losers when price trends instead of reversing. But this is not intended to be a tradable strategy, but rather to indicate whether further study is warranted.
We tested this on the major stock index futures (S&P 500, Dow, Nasdaq 100, Russell 2000), which are good benchmarks for mean reverting strategies. Testing runs from Jan. 2, 1997 to Jan. 12, 2010.
These results are encouraging (see “Reverting to profit,” above). A strategy of this type is not helped by being 100% invested, hence the high drawdown value. By applying coherent exit and risk controls, one should expect these results to improve.
The tight integration of price with bands might be utilized as a price channel for a breakout strategy. This test is intended to evaluate that concept. In this case, the strategy buys or sells as price breaks out above the highest or lowest band over a given channel length and is again 100% invested.
This time, we tested against a wider basket of commodities: crude oil, coffee, the euro, gold, copper, orange juice, natural gas, the Swiss franc, the 30-year Treasury bond and silver. The choice of data for this test has been an arbitrary selection of markets deemed conducive (or not) to channel breakout. Testing ran from Jan. 2, 1980 to Jan. 12, 2010 and produced a net profit of $953,311.45.
Based on this limited evidence, it would appear that breakouts are a good use case for the volatility bands (like Bollinger bands, but with different characteristics). However, sensitivity analysis would need to be undertaken to determine how robust the approach really is for this style of implementation. Again, this strategy should be supported by a solid exit and risk management framework.
Here we’ve highlighted a number of issues with classical Bollinger bands and shared one approach designed to address those problems. We have also seen how the technique could be used to signal reversion to the mean or to capture breakouts in price volatility. What we haven’t been able to do is construct a more complex strategy or combine the volatility bands with other complementary inputs. That may prove to be a fruitful line of further investigation.
David Rooke is an IT professional and independent trader and researcher based in Berkshire, United Kingdom. His primary focus is on modeling financial indexes and strategizing risk. Reach him at firstname.lastname@example.org