Squeeze Momentum Indicator (SMI)
The Squeeze Momentum Indicator (SMI) helps traders identify periods of low volatility that are likely to be followed by high volatility and potential breakouts. It combines aspects of Bollinger Bands and Keltner Channels to detect “squeeze” conditions, and adds a momentum histogram to gauge directional bias.
When Bollinger Bands are within the Keltner Channels, the market is in a “squeeze”, indicating consolidation and low volatility — often a precursor to large price moves. Once the squeeze is released (i.e., Bollinger Bands move outside the Keltner Channels), momentum is used to determine the likely direction of the breakout.
Get SMI values via API
We provide API access to the Squeeze Momentum Values values for all of the most popular assets like stocks, crypto (try one of the popular exchanges like Binance) and forex, on all commonly used timeframes – from the weekly and daily all the way down to one minute intervals. You can also calculate the values on your own data using our manual method.
Customize the Squeeze Momentum Indicator
You can fine-tune the Squeeze Momentum Indicator (SMI) using several optional parameters to better suit your trading style and market conditions. The lengthBB and lengthKC parameters control the lookback periods for the Bollinger Bands and Keltner Channels, respectively — both default to 20 but can be adjusted for shorter or longer-term analysis. The multBB defines how many standard deviations are used to plot the Bollinger Bands (default: 2.0), affecting their width and sensitivity to price movements. Similarly, multKC sets the ATR multiplier for the Keltner Channels (default: 1.5), which influences when a squeeze is detected. By customizing these inputs, you can make the indicator more reactive for short-term strategies or smoother for longer-term setups.
Get started with the squeeze
Simply make an HTTPS [GET] request or call in your browser:
[GET] https://api.taapi.io/squeeze?secret=MY_SECRET&exchange=binance&symbol=BTC/USDT&interval=1h
API response
The squeeze endpoint returns a JSON response like this:
{
"value": -626.0485785714322,
"squeeze": true
}
Example response from TAAPI.IO when querying squeeze endpoint.
API parameters
binance, binancefutures or one of our supported exchanges. For other crypto / stock exchanges, please refer to our Client or Manual integration methods.
BTC/USDT Bitcoin to Tether, or LTC/BTC Litecoin to Bitcoin...
1m, 5m, 15m, 30m, 1h, 2h, 4h, 12h, 1d, 1w. So if you're interested in values on hourly candles, use interval=1h, for daily values use interval=1d, etc.
backtrack parameter removes candles from the data set and calculates the squeeze value X amount of candles back. So, if you are fetching the squeeze on the hourly and you want to know what the squeeze was 5 hours ago, set backtrack=5. The default is 0.
chart parameter accepts one of two values: candles or heikinashi. candles is the default, but if you set this to heikinashi, the indicator values will be calculated using Heikin Ashi candles. Note: Pro & Expert Plans only.
true or false. Defaults to false. By setting to true the API will return a timestamp with every result (real-time and backtracked) to which candle the value corresponds. This is especially helpful when requesting a series of historical values using the results parameter.
1685577600
1731456000 If you only use fromTimestamp, the API will return all results from that time until present.
number or max. Use this parameter to access historical values on the past X candles until the most recent candle. Use max to return all available historical values. Returns an array with the oldest value on top and most recent value returned the last.
Period for Bollinger Bands
Default: 20
Period for Keltner Channels
Default: 20
Standard deviation multiplier for Bollinger Bands
Default: 2.0
ATR multiplier for Keltner Channels
Default: 1.5
More examples
Let's say you want to know the squeeze value on the last closed candle on the 30m timeframe. You are not interest in the real-time value, so you use the backtrack=1 optional parameter to go back 1 candle in history to the last closed candle.
[GET] https://api.taapi.io/squeeze?secret=MY_SECRET&exchange=binance&symbol=BTC/USDT&interval=30m&backtrack=1
Get squeeze values on each of the past X candles in one call
Let's say you want to know what the squeeze daily value was each day for the previous 10 days. You can get this returned by our API easily and efficiently in one call using the results=10 parameter:
[GET] https://api.taapi.io/squeeze?secret=MY_SECRET&exchange=binance&symbol=BTC/USDT&interval=1d&results=10
Looking for even more integration examples in different languages like NodeJS, PHP, Python, Curl or Ruby? Continue to [GET] REST - Direct documentation.