Overall Statistics
Total Trades
6
Average Win
0%
Average Loss
-9.91%
Compounding Annual Return
-40.167%
Drawdown
28.400%
Expectancy
-1
Net Profit
-27.339%
Sharpe Ratio
-1.443
Probabilistic Sharpe Ratio
0.241%
Loss Rate
100%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
-0.245
Beta
0.497
Annual Standard Deviation
0.198
Annual Variance
0.039
Information Ratio
-1.024
Tracking Error
0.198
Treynor Ratio
-0.574
Total Fees
$6.00
Estimated Strategy Capacity
$840000000.00
Lowest Capacity Asset
SPY R735QTJ8XC9X
# region imports
from AlgorithmImports import *
# endregion


class VixCentralContangoAlgorithm (QCAlgorithm):

    def Initialize(self) -> None:

        self.SetStartDate(2022,1,1) 
        self.SetCash(25000)

        self.spy = self.AddEquity("SPY", Resolution.Daily).Symbol
        self.contango = self.AddData(VIXCentralContango, "VX", Resolution.Daily).Symbol
        df = self.History(VIXCentralContango, self.contango, 100)
        self.Debug(f'{df}')

    def OnData(self, slice: Slice) -> None:

        if self.contango not in slice: return
        contangoData = slice.Get(VIXCentralContango, self.contango)
        ratio = contangoData.Contango_F2_Minus_F1 if contangoData else 0
        self.Debug(f'{self.Time} :: {ratio}')

        if not self.Portfolio.Invested and ratio > 0:
            self.MarketOrder(self.spy, 100)
        elif ratio < 0:
            self.Liquidate()