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

    def Initialize(self):
        self.SetStartDate(2019, 8, 1)  # Set Start Date
        self.SetCash(100000)  # Set Strategy Cash

        option = self.AddOption("GOOG")
        option.SetFilter(-2, 2, timedelta(0), timedelta(182))


    def OnData(self, data):
        '''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
            Arguments:
                data: Slice object keyed by symbol containing the stock data
        '''

        for chain in data.OptionChains.Values:
            lowerBound = chain.Underlying.Price * 0.95
            upperBound = chain.Underlying.Price * 1.05
            # Option contracts sorted by their strikes
            contracts = sorted(chain, key=lambda x: x.Strike)
            # The contracts from -5% to 5%
            selectedContracts = [x for x in contracts if x.Strike > lowerBound and x.Strike < upperBound]
            
            # For validation we get the strikes of the selected contracts
            strikes = [x.Strike for x in contracts if x.Strike > lowerBound and x.Strike < upperBound]
            self.Log(f"Lower Bound: {lowerBound} \n Upper Bound: {upperBound} \n Strikes: {strikes}")