Overall Statistics |
Total Trades 658 Average Win 5.02% Average Loss -0.21% Compounding Annual Return -1.993% Drawdown 54.700% Expectancy -0.247 Net Profit -22.393% Sharpe Ratio -0.019 Probabilistic Sharpe Ratio 0.001% Loss Rate 97% Win Rate 3% Profit-Loss Ratio 23.39 Alpha -0.044 Beta 0.556 Annual Standard Deviation 0.149 Annual Variance 0.022 Information Ratio -0.544 Tracking Error 0.14 Treynor Ratio -0.005 Total Fees $871.56 Estimated Strategy Capacity $6500000.00 Lowest Capacity Asset OEF RZ8CR0XXNOF9 |
# region imports from AlgorithmImports import * # endregion class VIXPredictsStockIndexReturns(QCAlgorithm): def Initialize(self): self.SetStartDate(2006, 1, 1) self.SetEndDate(2018, 8, 1) self.SetCash(100000) self.AddEquity("OEF", Resolution.Daily) self.vix = self.AddData(CBOE, "VIX", Resolution.Daily).Symbol self.window = RollingWindow[float](252*2) hist = self.History([self.vix], 1000, Resolution.Daily) for close in hist.loc[self.vix]['close']: self.window.Add(close) def OnData(self, data): if not data.ContainsKey(self.vix): return self.window.Add(self.Securities[self.vix].Price) if not self.window.IsReady: return history_close = [i for i in self.window] if self.Securities[self.vix].Price > np.percentile(history_close, 90): self.SetHoldings("OEF", 1) elif self.Securities[self.vix].Price < np.percentile(history_close, 10): self.SetHoldings("OEF", -1)