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