def grid(self, start=None, stop=None, St=None, **kwargs):
        """Grid-like representation of payoff & profit structure.

        Returns
        -------
        tuple
            Tuple of `St` (price at expiry), `payoffs`, `profits`.
        """

        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
Grid-like representation of payoff & profit structure.

        Returns
        -------
        tuple
            Tuple of `St` (price at expiry), `payoffs`, `profits`.