TTM Squeeze is a volatility and momentum indicator introduced by John Carter of Trade the Markets (now Simpler Trading), which capitalizes on the tendency for price to break out strongly after consolidating in a tight trading range.
The volatility component of the TTM Squeeze indicator measures price compression using Bollinger Bands and Keltner Channels. If the Bollinger Bands are completely enclosed within the Keltner Channels, that indicates a period of very low volatility. This state is known as the squeeze. When the Bollinger Bands expand and move back outside of the Keltner Channel, the squeeze is said to have “fired”: volatility increases and prices are likely to break out of that tight trading range in one direction or the other. The on/off state of the squeeze is shown with small dots on the zero line of the indicator: red dots indicate the squeeze is on, and green dots indicate the squeeze is off.
The TTM Squeeze indicator also uses a momentum oscillator to show the expected direction of the move when the squeeze fires. This histogram oscillates around the zero line; increasing momentum above the zero line indicates an opportunity to purchase long, while momentum falling below the zero line can indicate a shorting opportunity.
There are two components of the TTM Squeeze indicator to calculate: the squeeze on/off dots and the momentum histogram.
First, calculate Bollinger Bands for the security. Carter uses the standard Bollinger Band settings of 20 periods and 2 standard deviations, but these parameters can be adjusted to meet your trading needs.
Second, calculate Keltner Channels for the security. Carter uses 20 periods for the moving average and ATR, and 1.5 for the ATR multiplier, but these parameters can be adjusted as well.
Note: Carter uses the original Keltner Channels formula developed by Chester W. Keltner in 1960, so that is the formula StockCharts uses to calculate the Keltner Channels for the TTM Squeeze indicator. Elsewhere on the StockCharts website, the updated Keltner Channels formula developed by Linda Raschke in the 1980s is used.
Once the values for the upper and lower Bollinger Bands and Keltner Channels have been calculated, the formula for determining the state of the squeeze is simple. If both of the following conditions are true, then the squeeze is on for that period:
Upper Bollinger Band < Upper Keltner Channel Lower Bollinger Band > Lower Keltner Channel
If they are not both true (one or both Bollinger Bands fall outside of the Keltner Channel), then the squeeze is off for that period.
The TTM Squeeze indicator also includes a smoothed momentum oscillator to indicate the possible direction of the breakout. StockCharts' implementation of the TTM Squeeze uses the following steps to produce the momentum oscillator.
First, calculate the Donchian midline for the specified number of momentum periods (20 is used by default):
(Highest high in 20 periods + lowest low in 20 periods) / 2
Second, calculate the SMA of the close for the specified number of momentum periods (so by default, a 20-period SMA of price).
Third, calculate the delta between the close and the average of the Donchian midline and SMA values using the following formula:
Close - ( (Donchian midline + SMA) / 2 )
Finally, use linear regression on the delta values to smooth them. The formula for linear regression is beyond the scope of this article, but it essentially looks for the “line of best fit” given the available data. The momentum histogram values show how far above or below the average the price is expected to be.
The TTM Squeeze indicator has both volatility and momentum components. The Squeeze dots signal when volatility conditions are right to buy; the momentum histogram indicates the direction (long or short) in which to trade.
While volatility levels are low, the squeeze dots will be red. When volatility increases and the Bollinger Bands expand until they are outside of the Keltner Channels, the squeeze has “fired” and the squeeze dots will be green. Carter recommends buying on the first green dot after one or more red dots.
The momentum histogram helps to determine the direction in which to trade. If the momentum is above the zero line and rising (light blue bars), buy long; if the histogram is below the zero line and falling lower (dark red bars), that indicates a shorting opportunity.
The histogram bars are color coded for ease of interpretation. Bars above the zero line are blue and below the zero line are red. In addition, a bar that is lower than the previous bar will be a darker color (dark blue or dark red), and a bar that is higher than the previous bar will be a lighter color (light blue or light red).
Price moves after a squeeze fires tend to last for 8-10 bars. When the histogram changes direction and starts moving back towards the zero line, that is a signal to sell.
The momentum histogram can also be used to determine specific exit points. Carter recommends selling when you've had two bars in the new color. For example, if the squeeze fires and the bars are light blue (above the zero line and increasing), he recommends selling when you see two dark blue bars (above the zero line and decreasing) in a row.
The TTM Squeeze indicator can be used in many timeframes. Many chartists look at the same security in multiple timeframes for confirmation. For example, if a squeeze is firing on both a daily and an hourly chart at the same time, that is a stronger signal than a squeeze that is only firing in one timeframe.
The TTM Squeeze indicator measures both volatility and momentum to spot trading opportunities based on volatility changes in a security. The volatility component of the indicator (the squeeze dots) signals potential breakouts after periods of low volatility. The momentum histogram indicates the likely direction of the breakout and can help to determine exit points.
As with all indicators, traders should use the TTM Squeeze indicator in conjunction with other indicators and analysis techniques.
The TTM Squeeze indicator can be charted on StockChartsACP after installing our free Advanced Indicator Pack. Please see our StockChartsACP Plug-Ins article in the Support Center for more information on installing this plug-in.
Once the plug-in is installed, the TTM Squeeze indicator can be added from the Chart Settings panel for your StockChartsACP chart. The indicator can be positioned above, below, or behind the security's price plot.
By default, the indicator uses standard Bollinger Band and original Keltner Channel settings and a 20-period momentum histogram, but the number of periods and other settings can be adjusted to meet your technical analysis needs.
StockCharts members can screen for stocks based on TTM Squeeze values. Below are some example scans that can be used for TTM Squeeze-based signals. Simply copy the scan text and paste it into the Scan Criteria box in the Advanced Scan Workbench.
Members can also set up alerts to notify them when a TTM Squeeze-based signal is triggered for a stock. Alerts use the same syntax as scans, so the sample scans below can be used as a starting point for setting up alerts as well. Simply copy the scan text and paste it into the Alert Criteria box in the Technical Alert Workbench.
This scan reveals stocks where the TTM Squeeze has fired and the TTM Squeeze Histogram is above zero and rising. This is a signal to go long. This scan is just a starting point. Further refinement and analysis are required.
[type = stock] AND [country = US] AND [Daily SMA(20,Daily Volume) > 40000] AND [Daily SMA(60,Daily Close) > 20] AND [TTM Squeeze(20,2.0,20,1.5,20) is true] AND [yesterday's TTM Squeeze(20,2.0,20,1.5,20) is false] AND [TTM Squeeze Hist (20) > 0] AND [TTM Squeeze Hist (20) > yesterday's TTM Squeeze Hist (20)]
This scan reveals stocks where the TTM Squeeze has fired and the TTM Squeeze Histogram is below zero and falling. This is a signal to buy short. This scan is just a starting point. Further refinement and analysis are required.
[type = stock] AND [country = US] AND [Daily SMA(20,Daily Volume) > 40000] AND [Daily SMA(60,Daily Close) > 20] AND [TTM Squeeze(20,2.0,20,1.5,20) is true] AND [yesterday's TTM Squeeze(20,2.0,20,1.5,20) is false] AND [TTM Squeeze Hist (20) < 0] AND [TTM Squeeze Hist (20) < yesterday's TTM Squeeze Hist (20)]
For more details on the syntax to use for RVOL scans, please see our Scan Syntax Reference in the Support Center.