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 PrintOptionsContracts(QCAlgorithm):

    def Initialize(self):
        
        self.SetStartDate(2022, 1, 24)
        self.SetEndDate(2022, 1, 24)
        self.Ticker = "SPY"
        self.equity = self.AddEquity(self.Ticker, Resolution.Minute)
        self.equity.SetDataNormalizationMode(DataNormalizationMode.Raw)
        
        self.Counter = 1
        
    
    def OnData(self, slice):
        if self.Counter > 1: return    
        self.Counter += 1
        
        underlyingprice = slice[self.Ticker].Close
        optionchain = self.OptionChainProvider.GetOptionContractList(self.Ticker, self.Time)
        optionchain = [x for x in optionchain if x.ID.Date == datetime.datetime(2022, 2, 25)]
        calls = [x for x in optionchain if x.ID.OptionRight == OptionRight.Call]
        calls = sorted(calls, key = lambda x: x.ID.StrikePrice)
        
        self.Log(f"Underlying price = {underlyingprice}")

        for c in calls: self.Log(f"{c.ID.Date}       {c.ID.StrikePrice}       {c.ID.OptionRight}")