code: def plot_prob_profit_trade(round_trips, ax=None):
      
  
      x = np.linspace(0, 1., 500)
  
      round_trips['profitable'] = round_trips.pnl > 0
  
      dist = sp.stats.beta(round_trips.profitable.sum(),
                           (~round_trips.profitable).sum())
      y = dist.pdf(x)
      lower_perc = dist.ppf(.025)
      upper_perc = dist.ppf(.975)
  
      lower_plot = dist.ppf(.001)
      upper_plot = dist.ppf(.999)
  
      if ax is None:
          ax = plt.subplot()
  
      ax.plot(x, y)
      ax.axvline(lower_perc, color='0.5')
      ax.axvline(upper_perc, color='0.5')
  
      ax.set_xlabel('Probability of making a profitable decision')
      ax.set_ylabel('Belief')
      ax.set_xlim(lower_plot, upper_plot)
      ax.set_ylim((0, y.max() + 1.))
  
      return ax
docs: Plots a probability distribution for the event of making
      a profitable trade.
  
      Parameters
      ----------
      round_trips : pd.DataFrame
          DataFrame with one row per round trip trade.
          - See full explanation in round_trips.extract_round_trips
      ax : matplotlib.Axes, optional
          Axes upon which to plot.
  
      Returns
      -------
      ax : matplotlib.Axes
          The axes that were plotted on.