Overall Statistics
Total Trades
45
Average Win
2.52%
Average Loss
-2.15%
Compounding Annual Return
3.801%
Drawdown
15.100%
Expectancy
0.184
Net Profit
16.119%
Sharpe Ratio
0.462
Probabilistic Sharpe Ratio
9.944%
Loss Rate
45%
Win Rate
55%
Profit-Loss Ratio
1.17
Alpha
-0.014
Beta
0.488
Annual Standard Deviation
0.061
Annual Variance
0.004
Information Ratio
-0.925
Tracking Error
0.063
Treynor Ratio
0.057
Total Fees
$45.00
Estimated Strategy Capacity
$440000000.00
Lowest Capacity Asset
SPY R735QTJ8XC9X
from AlgorithmImports import *

class VixCentralContangoAlgorithm (QCAlgorithm):

    def Initialize(self):

        self.SetStartDate(2014,1,1) 
        self.SetEndDate(2018,1,1)  
        self.SetCash(25000)

        self.spy = self.AddEquity("SPY", Resolution.Daily).Symbol
        self.contango = self.AddData(VIXCentralContango, "VX", Resolution.Daily).Symbol

    def OnData(self, data):

        contangoData = data.Get(VIXCentralContango, self.contango)
        ratio = contangoData.Contango_F2_Minus_F1 if contangoData else 0
            
        if not self.Portfolio.Invested and ratio > 0:
            self.MarketOrder(self.spy, 100)
        elif ratio < 0:
            self.Liquidate()