Overall Statistics
Total Trades
49
Average Win
0.90%
Average Loss
-0.52%
Compounding Annual Return
2.972%
Drawdown
4.400%
Expectancy
1.053
Net Profit
12.420%
Sharpe Ratio
0.482
Loss Rate
25%
Win Rate
75%
Profit-Loss Ratio
1.74
Alpha
-0.094
Beta
6.269
Annual Standard Deviation
0.065
Annual Variance
0.004
Information Ratio
0.175
Tracking Error
0.065
Treynor Ratio
0.005
Total Fees
$0.00
from QuantConnect.Python import PythonQuandl

class RollingWindowAlgorithm(QCAlgorithm):

    def Initialize(self):

        self.SetStartDate(2014,1,1) 
        self.SetEndDate(2018,1,1)  
        self.SetCash(25000)
        vix = 'CBOE/VIX'
        vxv = 'CBOE/VXV'
        self.AddData(QuandlVix, vix, Resolution.Daily)
        self.AddData[Quandl](vxv, Resolution.Daily)
        self.vix_sma = self.SMA(vix, 1, Resolution.Daily)
        self.vxv_sma = self.SMA(vxv, 1, Resolution.Daily)
        self.ratio = IndicatorExtensions.Over(self.vxv_sma, self.vix_sma)
        self.PlotIndicator("Ratio", self.ratio)
        self.PlotIndicator("Data", self.vix_sma, self.vxv_sma)

    def OnData(self, data):
 
        if not (self.vix_sma.IsReady and self.vxv_sma.IsReady and self.ratio.IsReady): return
        self.Log("VIX "+ str(self.vix_sma.Current.Value) + " VXV " + str(self.vxv_sma.Current.Value)+" ratio " + str(self.ratio.Current.Value))
        if not self.Portfolio.Invested and self.ratio.Current.Value > 1:
            self.MarketOrder('CBOE/VIX', 100)
        elif self.ratio.Current.Value < 1:
                self.Liquidate()


class QuandlVix(PythonQuandl):
    def __init__(self):
        self.ValueColumnName = "VIX Close"
        self.close = "VIX Close"
        pass