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
import pandas as pd
import numpy as np

class FuturesOptionsStrategyAlgorithm(QCAlgorithm):

    def Initialize(self):
        
        self.SetTimeZone("America/Chicago")
        
        self.SetStartDate(2020, 12, 1)
        self.SetEndDate(2020, 12, 1)
        self.SetCash(1000000)

        futuresInstrument = self.AddFuture('GC', Resolution.Minute)
        futuresInstrument.SetFilter(1, 1000)
        
        self.checkExpiries = True

    def OnData(self, data):
        
        if self.checkExpiries:
        
            for chain in data.FutureChains:
                allFuturesContracts = [x for x in chain.Value]
                if len(allFuturesContracts) == 0:
                    return None
                    
            allFuturesOptionsChains = []
            for contract in allFuturesContracts:
                allFuturesOptionsChains.extend(self.OptionChainProvider.GetOptionContractList(contract.Symbol, self.Time.date()))
                
            expiries = list(set([x.ID.Date.date() for x in allFuturesOptionsChains]))
            self.Log(sorted(expiries, reverse = True))
            
            self.checkExpiries = False