Created with Highcharts 12.1.2Equity2015201620172018201920202021202220232024202520261,000,000
Overall Statistics
Total Orders
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Start Equity
1000000
End Equity
1000000
Net Profit
0%
Sharpe Ratio
0
Sortino 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.681
Tracking Error
0.146
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
Portfolio Turnover
0%
#region imports
from AlgorithmImports import *
#endregion

class OpenInterestDataMappingModeFuturesAlgorithm(QCAlgorithm):

    def initialize(self) -> None: 
        self.set_start_date(2015, 1, 1)
        self.set_end_date(2025, 3, 1) 
        self.set_cash(1_000_000)
        self._vix_future = self.add_future(
            ticker=Futures.Indices.VIX, 
            resolution=Resolution.MINUTE, 
            data_mapping_mode=DataMappingMode.OPEN_INTEREST_ANNUAL, 
            data_normalization_mode=DataNormalizationMode.BACKWARDS_RATIO, 
            contract_depth_offset=0) 
        self._vix_future.set_filter(1, 100)
        self.flag_open_interest_data_found = False 
    

    def on_data(self, data: Slice) -> None:
        chain = data.future_chains.get(self._vix_future.symbol)  
        if not chain:
            return 
        for symbol, contract in chain.contracts.items(): 
            if contract.open_interest > 0:
                self.flag_open_interest_data_found = True 
                break 
        if self.flag_open_interest_data_found:
            self.quit() 


    def on_end_of_algorithm(self) -> None: 
        self.log(f"Open interest data found? --> {self.flag_open_interest_data_found}.")