Overall Statistics
Total Trades
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Net Profit
0%
Sharpe Ratio
0
Probabilistic Sharpe Ratio
0%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
0
Tracking Error
0
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
# region imports
from AlgorithmImports import *
# endregion

class UpgradedVioletSheep(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2021, 3, 11)  # Set Start Date
        self.SetCash(100000)  # Set Strategy Cash
        self.vx1 = self.AddFuture(Futures.Indices.VIX,
                                  dataNormalizationMode=DataNormalizationMode.BackwardsRatio,
                                  dataMappingMode=DataMappingMode.OpenInterest,
                                  contractDepthOffset=0)
        self.vx1.SetFilter(0, 182)
        self.AddAlpha(MyAlphaModel(self.vx1.Symbol))


class MyAlphaModel(AlphaModel):

    def __init__(self, symbol):
        self.symbol = symbol
        self.vx1 = None

    def Update(self, algorithm: QCAlgorithm, slice: Slice) -> List[Insight]:
        insights = []

        if self.vx1 is None or self.vx1 not in slice:
            return []
        continuous_price = slice[self.vx1].Price
        algorithm.Quit(f"Continous price: {continuous_price}")

        return insights

    def OnSecuritiesChanged(self, algorithm: QCAlgorithm, changes: SecurityChanges) -> None:
        for security in changes.AddedSecurities:
            if security.Symbol.IsCanonical():
                algorithm.Debug(f"{security.Symbol} is canonical!")
                self.vx1 = security.Symbol
            else:
                algorithm.Debug(f"{security.Symbol} is NOT canonical!")