Hi, I was wondering if someone could help me fix and understand why there is no data and why my algo is messed up. The backtest isnt working, so i have attached the code below.
class VirtualRedDogfish(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2010, 1, 1)
self.SetCash(100000)
self.AddEquity("TQQQ", Resolution.Daily)
self.AddEquity("TMF", Resolution.Daily)
self.AddEquity("UVXY", Resolution.Daily)
self.AddEquity("SPY", Resolution.Hour)
self.vix = 'CBOE/VIX'
self.vxv = 'CBOE/VXV'
self.AddData(QuandlVix, self.vix, Resolution.Daily)
self.AddData(Quandl, self.vxv, Resolution.Daily)
self.SetWarmUp(200)
self.vix_sma = self.SMA(self.vix, 1, Resolution.Daily)
self.vxv_sma = self.SMA(self.vxv, 1, Resolution.Daily)
self.ratio = IndicatorExtensions.Over(self.vxv_sma, self.vix_sma)
self.spySMA = self.SMA("SPY", 100, Resolution.Hour)
def OnData(self, data):
if not (self.vix_sma.IsReady and self.vxv_sma.IsReady and self.ratio.IsReady):
return
if self.spySMA.IsReady:
self.Debug("Ready!")
if self.spySMA is None or not self.spySMA.IsReady:
return
if self.spySMA.Current.Value < data["SPY"].Close:
if self.ratio.Current.Value < .923:
self.SetHoldings("UVXY", .6)
self.Liquidate("TMF")
self.Liquidate("TQQQ")
self.SetHoldings("SPY", .4)
else:
self.Liquidate("TQQQ")
self.Liquidate("TMF")
self.SetHoldings("TQQQ", .8)
self.SetHoldings("SPY", .2)
else:
if self.ratio.Current.Value < .923:
self.SetHoldings("UVXY", .6)
self.SetHoldings("TMF", .4)
self.Liquidate("TQQQ")
self.SetHoldings("SPY", 0)
else:
self.SetHoldings("TMF", .2)
self.SetHoldings("TQQQ", .4)
self.SetHoldings("SPY", .4)
self.Liquidate("UVXY")
class QuandlVix(PythonQuandl):
def __init__(self):
self.ValueColumnName = "Close"