code: def grid(self, start=None, stop=None, St=None, **kwargs):
          
  
          lb = 0.75
          rb = 1.25
          if not any((start, stop, St)) and self.St is None:
              St = np.mean([op.K for op in self.options], axis=0)
              start = St * lb
              stop = St * rb
          elif not any((start, stop)):
              St = self.St if St is None else St
              start = np.max(St) * lb
              stop = np.max(St) * rb
          St = np.linspace(start, stop, **kwargs)
          payoffs = self.payoff(St=St)
          profits = self.profit(St=St)
          return St, payoffs, profits
docs: Grid-like representation of payoff & profit structure.
  
          Returns
          -------
          tuple
              Tuple of `St` (price at expiry), `payoffs`, `profits`.