CBOE

VIX Daily Price

Introduction

The VIX Daily Price dataset by CBOE covers 14 US volatility indices. The data starts in January 1990 and is delivered on a daily frequency. The dataset is cached daily from the CBOE website. The volatility index measures the stock market's expectation of volatility on the market index (e.g.: S&P500) using implied volatility from its Options for a fixed time horizon.

For more information about the VIX Daily Price dataset, including CLI commands and pricing, see the dataset listing.

About the Provider

The Chicago Board Options Exchange (CBOE) is the largest U.S. options exchange with annual trading volume that hovered around 1.27 billion contracts at the end of 2014. CBOE offers Options on over 2,200 companies, 22 Equity indices, and 140 exchange-traded funds (ETFs).

Getting Started

The following snippet demonstrates how to request data from the VIX Daily Price dataset:

using QuantConnect.DataSource;

_datasetSymbol = AddData<CBOE>("VIX", Resolution.Daily).Symbol;
from QuantConnect.DataSource import *

self.dataset_symbol = self.add_data(CBOE, "VIX", Resolution.DAILY).symbol

Data Summary

The following table describes the dataset properties:

PropertyValue
Start DateJanuary 1990
Asset Coverage14 US Volatility Indices
Data DensityRegular
ResolutionDaily
TimezoneNew York

Example Applications

The VIX Daily Price enables you to incorporate popular US volatility indices in your strategies. Examples include the following strategies:

  • Understanding the stock market's level of expected forward-looking volatility, also known as the "fear index". When the VIX starts moving higher, it is telling you that traders are getting nervous. When the VIX starts moving lower, it is telling you that traders are gaining confidence.
  • Determining forward-looking volatility by comparing the VIX against volatility indices with other volatility. By comparing the value of the VIX to the value of the VIX3M, you can identify periods when trader sentiment has turned extremely bearish and when it has normalized.

Data Point Attributes

The VIX Daily Price dataset provides CBOE objects, which have the following attributes:

Supported Indicies

The following table shows the volatility indices in the VIX Daily Price dataset:

TickerIndexExpiryStart DateData Points
VIXS&P50030 DaysJan 1990OHLC
VIX9DS&P5009 DaysApr 2011OHLC
VIX3MS&P5003 MonthsSep 2009OHLC
VIX6MS&P5006 MonthsJan 2008OHLC
VIX1YS&P5001 YearJan 2007OHLC
VXOS&P10030 DaysFeb 1993OHLC
VXNNasdaq 10030 DaysSep 2009OHLC
RVXRussell 200030 DaysSep 2009OHLC
VVIXVIX30 DaysMar 2006Close
TYVIX10-year US Treasury Note30 DaysJan 2003OHLC
VXTLT20-year US Treasury Bond30 DaysJan 2004Close
VXEEMMSCI Emerging Markets30 DaysMar 2011OHLC
OVXUnited States Oil Fund (USO)30 DaysSep 2009Close
GVZSPDR Gold Shares ETF (GLD)30 DaysSep 2009Close
FVX5 Year Treasury Yield Index30 DaysDec 1993Close
VXEFAEFA VIX Index30 DaysJan 2008OHLC
VXAPLApple VIX Index30 DaysJan 2011OHLC
VXAZNAmazon VIX Index30 DaysJan 2011OHLC
VXGOGGoogle VIX Index30 DaysJan 2011OHLC
VXGSGoldman Sachs VIX Index30 DaysJan 2011OHLC
VXIBMIBM VIX Index30 DaysJan 2011OHLC
VXDDJIA VIX Index30 DaysSep 2009OHLC

Requesting Data

To add VIX Daily Price data to your algorithm, call the AddDataadd_data method. Save a reference to the dataset Symbol so you can access the data later in your algorithm.

class CboeDataAlgorithm(QCAlgorithm):
 
    def initialize(self) -> None:
        self.set_start_date(2003, 1, 1)
        self.set_end_date(2019, 10, 11)
        self.set_cash(100000)
 
        self.dataset_symbol = self.add_data(CBOE, "VIX", Resolution.DAILY).symbol
namespace QuantConnect
{
    public class CboeDataAlgorithm : QCAlgorithm
    {
        private Symbol _datasetSymbol;
 
        public override void Initialize()
        {
            SetStartDate(2003, 1, 1);
            SetEndDate(2019, 10, 11);
            SetCash(100000);
 
            _datasetSymbol = AddData<CBOE>("VIX", Resolution.Daily).Symbol;
        }
    }
}

Accessing Data

To get the current VIX Daily Price data, index the current Slice with the dataset Symbol. Slice objects deliver unique events to your algorithm as they happen, but the Slice may not contain data for your dataset at every time step. To avoid issues, check if the Slice contains the data you want before you index it.

def on_data(self, slice: Slice) -> None:
    if slice.contains_key(self.dataset_symbol):
        data_point = slice[self.dataset_symbol]
        self.log(f"{self.dataset_symbol} close at {slice.time}: {data_point.close}")
public override void OnData(Slice slice)
{
    if (slice.ContainsKey(_datasetSymbol))
    {
        var dataPoint = slice[_datasetSymbol];
        Log($"{_datasetSymbol} close at {slice.Time}: {dataPoint.Close}");
    }
}

Historical Data

To get historical VIX Daily Price data, call the Historyhistory method with the dataset Symbol. If there is no data in the period you request, the history result is empty.

# DataFrame
history_df = self.history(self.dataset_symbol, 100, Resolution.DAILY)

# Dataset objects
history_bars = self.history[CBOE](self.dataset_symbol, 100, Resolution.DAILY)
var history = History<CBOE>(_datasetSymbol, 100, Resolution.Daily);

For more information about historical data, see History Requests.

Remove Subscriptions

To remove your subscription to VIX Daily Price data, call the RemoveSecurityremove_security method.

self.remove_security(self.dataset_symbol)
RemoveSecurity(_datasetSymbol);

Example Applications

The VIX Daily Price enables you to incorporate popular US volatility indices in your strategies. Examples include the following strategies:

  • Understanding the stock market's level of expected forward-looking volatility, also known as the "fear index". When the VIX starts moving higher, it is telling you that traders are getting nervous. When the VIX starts moving lower, it is telling you that traders are gaining confidence.
  • Determining forward-looking volatility by comparing the VIX against volatility indices with other volatility. By comparing the value of the VIX to the value of the VIX3M, you can identify periods when trader sentiment has turned extremely bearish and when it has normalized.

You can also see our Videos. You can also get in touch with us via Discord.

Did you find this page helpful?

Contribute to the documentation: