About VIX Daily Price

The VIX Daily Price dataset by CBOE covers 8 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.

About CBOE

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).

About QuantConnect

QuantConnect was founded in 2012 to serve quants everywhere with the best possible algorithmic trading technology. Seeking to disrupt a notoriously closed-source industry, QuantConnect takes a radically open-source approach to algorithmic trading. Through the QuantConnect web platform, more than 50,000 quants are served every month.

Algorithm Example

class CBOEDataAlgorithmAlgorithm(QCAlgorithm):

    def Initialize(self):

        self.spy = self.AddEquity("SPY", Resolution.Daily).Symbol

        # Define the symbol and "type" of our generic data
        self.vix = self.AddData(CBOE, 'VIX', Resolution.Daily).Symbol
        self.vxv = self.AddData(CBOE, 'VIX3M', Resolution.Daily).Symbol
        # Set up default Indicators, these are just 'identities' of the closing price
        self.vix_sma = self.SMA(self.vix, 1, Resolution.Daily)
        self.vxv_sma = self.SMA(self.vxv, 1, Resolution.Daily)
        # This will create a new indicator whose value is smaVXV / smaVIX
        self.ratio = IndicatorExtensions.Over(self.vxv_sma, self.vix_sma)
        # Plot indicators each time they update using the PlotIndicator function
        self.PlotIndicator("Ratio", self.ratio)
        self.PlotIndicator("Data", self.vix_sma, self.vxv_sma)

        history = self.History(CBOE, self.vix, 60, Resolution.Daily)
        self.Debug(f"We got {len(history.index)} items from our history request");
    def OnData(self, data):
        # Wait for all indicators to fully initialize
        if not (self.vix_sma.IsReady and self.vxv_sma.IsReady and self.ratio.IsReady): return
        if not self.Portfolio.Invested and self.ratio.Current.Value > 1:
            self.MarketOrder(self.spy, 100)
        elif self.ratio.Current.Value < 1:

Example Applications