I had a closer look again at the RSqueeze and discovered that the Bollinger Band squeeze is not optimal. Actually it triggers too many signals and I will try to explain what is the problem.

Original Definition of Bollinger Band Squeeze:

The Bollinger Band Squeeze occurs, when the Bollinger Bands are contracting and thereby indicating that directional volatility has decreased. It is possible to study the bandwith of the Bollinger Bands over a longer period, and then calculate some confidence intervals. However, a simpler method is to compare Bollinger Bands to Keltner Channels. Bollinger Bands indicate directional volatility, whereas Keltner Channel show the non-directional volatility (friction). When the Bollinger Band stay inside the Keltner Channel, the volatility has not moved price thus indicating a congestion. The Bollinger Squeeze typically relies on this definition.

The RSqueeze does not correctly compare Bollinger Bands and Keltner Channels

The original Keltner Channels use a SMA calculated from the typical price and add/subtract a multiple of the SMA of the simple range of the bars. The crime committed by the RSqueeze indicator is that the average true range is used. This leads to 3 differences

(a) the range is replaced with the true range
(b) the true range is smoothed with an EMA instead of a SMA
(c) the smoothing period used is too large

(c) is not easy to understand, but I will give an example. If you have a Keltner Channel with a period of 20, then the offset used for the bands is a multiple of SMA(Range(), 20). However, if you use the average true range ATR(20), then the average is calculated by using Wilder's smoothing, the smoothing factor for Wilder's smoothing is 1/20 = 2/(39+1), which is the equivalent of an EMA(TrueRange(),39). Even if there is not much difference between the range and the true range, there is a difference between a lookback period of 20 and a lookback period of 39. The RSqueeze effectively uses a larger lookback period, and typically this results in too large values for the offset, as the recent low volatility period is now underweighted. A larger offset results in too many signal dots, and the indicator becomes unusable.

Sample Chart for 6E: RSqueeze fires too many signals.

Squeeze Exposed as BoolSeries for Access via Strategy or Market Analyzer

The Squeeze version, which is attached does use the original Keltner Channels, except that for the sake of simplicity I have not used the typical price for calculating the center line of the Keltner Channel. Otherwise it is a genuine application of the original idea, and as explained by John Carter in his book "Mastering The Trade".

I have added a BoolSeries to the indicator, which can be accessed via a strategy or the market analyzer of NinjaTrader. This would allow you to display for which instruments the squeeze is on, indicating a favourable condition to enter a trade, as directional volatility has been low.

Edit: I could not access the BoolSeries from the market analyzer. I have now used the SqueezeDots to detect the squeeze. If the Squeeze Dots have a value of 0, then the squeeze is on. If the value is > 0 , then there is no squeeze. You can check the Squeeze Dots for equality with 0 to detect the squeeze. Indicator file replaced. The BoolSeries is still there, as it can be used by a strategy to detect low volatility conditions.

Last edited by Fat Tails; August 16th, 2012 at 05:26 PM.
Reason: indicator file replaced

The following 31 users say Thank You to Fat Tails for this post:

is gonna explode. I want to review this as well. I use the "PBFSqueeze" as an element in a primary method...it is quite different from the typical John Carter Squeeze. Love the roll you are on Fat Tails

The PBF squeeze has nothing to do with the Bollinger Squeeze, it is just a MACD type indicator based on Gaussian filters. My comment above ONLY applies to the Bollinger Band Squeeze, which is in fact one of the simplest indicators.

What I would really enjoy is a discussion with you about the Gaussian filter and the PBFSqueeze, how it is derived and how it works. On many things, I've learned that I'd benefit from sitting at the feet of a master. Some of the talents you share here are right into my biggest weaknesses. I really appreciate the contribution. DB

I recently 'found' this RSqueeze indiator. I am ok with the "squeeze" part. My problem is that I don't UNDERSTAND how the momentum bar is calculated. Can someone either point me to a description about how this momentum indicator works.

The histogram is calculated as follows, where period = 20 refers to the momentum period shown in the indicator dialogue box

(1) calculate the midline of a Donchian Channel (20)
(2) calculate an EMA(20)
(3) calculate the arithmetic mean of (1) and (2)
(4) subtract the arithmetic mean (3) from price
(5) calculate the linear regression(20) from the result (4)

To summarize: It is a modified raw MACD(1,20), which is then smoothed with a linear regression indicator.

The following 3 users say Thank You to Fat Tails for this post:

Thanks for this Squeeze indicator. The Squeeze Dots work great. I'm trying to understand how to read the momentum histogram. Is seems to me it sometimes goes against the price action. This seems to happen more with downtrends as oppose to uptrends.

Last edited by john2000; February 23rd, 2013 at 07:23 PM.