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
-1.015
Tracking Error
0.095
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
class UglyLightBrownAntelope(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2021, 6, 1)
        self.SetCash(100000) 
        self.tickers = ["SPY","AAPL","GOOG"]
        self.AddUniverse(self.MyCoarseFilterFunction)
        
        self.day = 0

    def MyCoarseFilterFunction(self, coarse):
         symbols = []
         for ticker in self.tickers: # We loop through `self.tickers` here for demonstration. To search all securities, you could look through `coarse`
             symbol = Symbol.Create(ticker,SecurityType.Equity,Market.USA)
             contracts = self.OptionChainProvider.GetOptionContractList(symbol, self.Time)
             validContracts = [i for i in contracts if (i.ID.Date - self.Time).days < 7]
             if len(validContracts)==0:
               self.Debug("No contract for "+ticker)
               continue
             self.Debug("Contract found for "+ticker)
             self.AddOptionContract(validContracts[0])
             symbols.append(symbol)
         return symbols    

    def OnData(self, data):
        if data.OptionChains.Count == 0:
            return
        
        if self.day == data.Time.day:
            return
        self.day = data.Time.day
        
        for kvp in data.OptionChains:
            option_symbol = kvp.Key
            for contract in kvp.Value:
                self.Debug(f"Option: {option_symbol}; Contract: {contract}")