Implied Volatility Indices
Get the implied volatility the option markets price, by market and time to expiry: the volatility indices of Cboe, STOXX and ICE. Implied volatility is the market’s expectation of how much prices will move, and its term structure (how it rises or falls with the time to expiry) is the market-consistent target for calibrating the volatility of equity, rate and commodity models.
The markets and their maturities:
- “US Equity”: S&P 500 options, the Cboe VIX family: 9 days (VIX9D, from 2011), 1 month (VIX, from 1990), 3 months (VIX3M), 6 months (VIX6M) and 1 year (VIX1Y, from 2007).
- “Euro Area Equity”: EURO STOXX 50 options, the VSTOXX sub-indices from 1 to 24 months, from 1999.
- “Emerging Markets Equity”: options on the MSCI Emerging Markets ETF (Cboe VXEEM), 1 month, from 2011.
- “US Equity Volatility”: the volatility of the VIX itself (Cboe VVIX), 1 month, from 2006.
- “US Treasury Bonds”: options on the 20+ year Treasury bond ETF (Cboe VXTLT), the price volatility of long Treasuries, 1 month, from 2004.
- “Crude Oil” and “Gold”: options on the oil and gold ETFs (Cboe OVX and GVZ), 1 month, from 2009.
- “US Treasury Rates”: the ICE BofA MOVE index, the normal (basis point) volatility of Treasury yields implied by 1-month options on 2, 5, 10 and 30-year Treasuries, from
- Requires a FinancialModelingPrep API key (the api_key of the Economics class).
- “Japan Government Bonds”: the S&P/JPX JGB VIX, from options on JGB futures, 1 month, from 2015. Requires a FinancialModelingPrep API key.
The volatility is returned as a decimal fraction per annum (0.155 for a VIX of 15.5), and the MOVE as a decimal yield change per annum (0.0105 for a MOVE of 105 basis points), with one column per market and maturity. Weekly and monthly periods take the value on the last trading day of each period. The Cboe SKEW index is not included since it is not a volatility.
See definition: https://www.cboe.com/tradable_products/vix/
Also known as: VIX, VSTOXX, MOVE index, volatility term structure, implied volatility index, fear index.
Implied Volatility Indices in Python
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_implied_volatility as shown below.
from financetoolkit import Economics
economics = Economics(start_date='2026-04-01', end_date='2026-09-30')
implied_volatility = economics.get_implied_volatility(
markets=['US Equity', 'Euro Area Equity'], period='monthly'
)
implied_volatility['US Equity']
Which returns:
| 9D | 1M | 3M | 6M | 1Y | |
|---|---|---|---|---|---|
| 2026-04 | 0.1437 | 0.1689 | 0.2008 | 0.2261 | 0.2365 |
| 2026-05 | 0.1259 | 0.1532 | 0.1866 | 0.216 | 0.2306 |
| 2026-06 | 0.1373 | 0.1645 | 0.19 | 0.215 | 0.2303 |
| 2026-07 | 0.1305 | 0.1599 | 0.1902 | 0.2134 | 0.2294 |
| 2026-08 | 0.1234 | 0.1492 | 0.1753 | 0.2017 | 0.2187 |
| 2026-09 | 0.142 | 0.1634 | 0.1837 | 0.2035 | 0.218 |
Parameters
The function accepts the following parameters:
- markets (list[str] | str | None, optional): The markets to retrieve, from “US Equity”, “Euro Area Equity”, “Emerging Markets Equity”, “US Equity Volatility”, “US Treasury Bonds”, “Crude Oil”, “Gold”, “US Treasury Rates” and “Japan Government Bonds”. Defaults to None, which retrieves every market that needs no API key, and the MOVE and JGB VIX as well when an API key is set.
- period (str, optional): Whether to return the daily, weekly or monthly data. Defaults to “daily”.
- rolling (int, optional): The rolling window size to use for smoothing the data (simple moving average). Defaults to None.
- trailing (int, optional): The trailing window size to use for summing the data over trailing periods. Defaults to None.
- growth (bool, optional): Whether to return the growth data or the actual data.
- lag (int, optional): The number of periods to lag the data by.
- standardize (bool, optional): Whether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False.
- rounding (int | None, optional): The number of decimals to round the results to. Defaults to None.