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.
true
or false
. Defaults to true
. By setting to false
, the API will ensure that there are no candles missing. This often happens on lower timeframes in thin markets. Gaps will be filled by a new candle with 0 volume, and OHLC set the the close price of the latest candle with volume.
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.