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
import datetime
class PrintOptionsContractsAddOption(QCAlgorithm):

    def Initialize(self):
        
        self.SetStartDate(2022, 1, 24)
        self.SetEndDate(2022, 1, 24)

        self.option = self.AddOption("GOOGL", Resolution.Minute)
        self.option.SetFilter(lambda universe: universe.IncludeWeeklys().Strikes(-1, +1).Expiration(20, 35)) 
        self.option.PriceModel = OptionPriceModels.BjerksundStensland()
        self.SetWarmUp(TimeSpan.FromDays(5))
        
        self.Counter = 1

    def OnData(self, slice):
        if self.IsWarmingUp: return
        if self.Counter > 10: return    
        self.Counter += 1

        optionchain = slice.OptionChains.GetValue(self.option.Symbol)
        optionchain = sorted(optionchain, key = lambda x: (x.Expiry, x.Right, x.Strike))
        optionchain = [x for x in optionchain if x.Expiry == datetime.datetime(2022, 2, 25)]
        self.PrintContracts(optionchain)
        
   
    def PrintContracts(self, contracts):
        self.Log("Underlying = " + str(contracts[0].UnderlyingSymbol) + " Underlying price = " + str(contracts[0].UnderlyingLastPrice))
        self.Log("Expiry                   Strike        Call/Put")
        for contract in contracts: self.Log(f"{contract.Expiry}        {contract.Strike}      {contract.Right}")