code: def summary(self, St=None):
          
  
          St = self.St if St is None else St
          if self.options:
              payoffs = [op.payoff(St=St) for op in self.options]
              profits = [op.profit(St=St) for op in self.options]
              strikes = [op.K for op in self.options]
              prices = [op.price for op in self.options]
              exprs = [St] * len(self.options)
              kinds = [op.kind for op in self.options]
              poss = [op.pos for op in self.options]
              res = OrderedDict(
                  [
                      ("kind", kinds),
                      ("position", poss),
                      ("strike", strikes),
                      ("price", prices),
                      ("St", exprs),
                      ("payoff", payoffs),
                      ("profit", profits),
                  ]
              )
  
              return DataFrame(res)
          else:
              return None
docs: Tabular summary of strategy composition, broken out by option.
  
          Returns
          -------
          pd.DataFrame
              Columns: kind, position, strike, price, St, payoff, profit.