def portfolio_performance(self, verbose=False, risk_free_rate=<NUM_LIT>):
return base_optimizer.portfolio_performance(<EOL>self.expected_returns,<EOL>self.cov_matrix,<EOL>self.weights,<EOL>verbose,<EOL>risk_free_rate,<EOL>)<EOL>
After optimising, calculate (and optionally print) the performance of the optimal
portfolio. Currently calculates expected return, volatility, and the Sharpe ratio.

:param verbose: whether performance should be printed, defaults to False
:type verbose: bool, optional
:param risk_free_rate: risk-free rate of borrowing/lending, defaults to 0.02
:type risk_free_rate: float, optional
:raises ValueError: if weights have not been calcualted yet
:return: expected return, volatility, Sharpe ratio.
:rtype: (float, float, float)