Overall Statistics
Total Trades
9
Average Win
0%
Average Loss
-9.65%
Compounding Annual Return
-55.279%
Drawdown
52.800%
Expectancy
-1
Net Profit
-33.500%
Sharpe Ratio
-0.252
Probabilistic Sharpe Ratio
14.682%
Loss Rate
100%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
-0.233
Beta
0.062
Annual Standard Deviation
0.85
Annual Variance
0.723
Information Ratio
-0.598
Tracking Error
0.864
Treynor Ratio
-3.453
Total Fees
$0.00
class ModulatedResistanceShield(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2020, 5, 30)  # Set Start Date
        self.SetCash(100000)  # Set Strategy Cash
        
        self.AddFuture(Futures.Indices.VIX).SetFilter(timedelta(0), timedelta(90))
        
        
        self.vx1 = self.AddData(QuandlFutures, "CHRIS/CBOE_VX1", Resolution.Daily).Symbol

    def OnData(self, data):
        if not data.ContainsKey(self.vx1):
            return
        
        for chain in data.FuturesChains.Values:
            chain = [c for c in chain.Contracts.Values]
            chain = sorted(chain, key=lambda c: c.Expiry)
            if len(chain) < 2:
                return
            vx1 = chain[0]
            vx1_symbol = vx1.Symbol # use this to buy/sell contracts
            vx2 = chain[1]
            vx2_symbol = vx2.Symbol
            
            self.Plot('VIX', 'VX1', vx1.LastPrice)
            self.Plot('VIX', 'VX2', vx2.LastPrice)
            
        
        if data[self.vx1].Value > 25:
            self.SetHoldings(self.vx1, 1)
        else:
            self.Liquidate(self.vx1)
            
class QuandlFutures(PythonQuandl):
    def __init__(self):
        self.ValueColumnName = "Settle"