code: def annualised_portfolio_quantities(
      weights: ARRAY_OR_SERIES[FLOAT],
      means: ARRAY_OR_SERIES[FLOAT],
      cov_matrix: ARRAY_OR_DATAFRAME[FLOAT],
      risk_free_rate: FLOAT = 0.005,
      freq: INT = 252,
  ) -> Tuple[FLOAT, FLOAT, FLOAT]:
      """Computes and returns the expected annualised return, volatility
      and Sharpe Ratio of a portfolio.
  
      :param weights: An array of weights
      :type weights: :py:data:`~.finquant.data_types.ARRAY_OR_SERIES`
  
      :param means: An array of mean/average values
      :type means: :py:data:`~.finquant.data_types.ARRAY_OR_SERIES`
  
      :param cov_matrix: Covariance matrix
      :type cov_matrix: :py:data:`~.finquant.data_types.ARRAY_OR_DATAFRAME`
  
      :param risk_free_rate: Risk free rate
      :type risk_free_rate: :py:data:`~.finquant.data_types.FLOAT`, default: 0.005
  
      :param freq: Number of trading days in a year
      :type freq: :py:data:`~.finquant.data_types.INT`, default: 252
  
      :rtype: Tuple[:py:data:`~.finquant.data_types.FLOAT`,
          :py:data:`~.finquant.data_types.FLOAT`,
          :py:data:`~.finquant.data_types.FLOAT`]
      :return: Tuple of Expected Return, Volatility, Sharpe Ratio
      """
      # Type validations:
      type_validation(
          weights=weights,
          means=means,
          cov_matrix=cov_matrix,
          risk_free_rate=risk_free_rate,
          freq=freq,
      )
      expected_return = weighted_mean(means, weights) * freq
      volatility = weighted_std(cov_matrix, weights) * np.sqrt(freq)
      sharpe = sharpe_ratio(expected_return, volatility, risk_free_rate)
      return (expected_return, volatility, sharpe)
  
file_path: FinQuant/finquant/quants.py
imports: from typing import Optional, Tuple
  import numpy
  import pandas
  from scipy.stats import norm
  from finquant.data_types import ARRAY_OR_DATAFRAME, ARRAY_OR_SERIES, FLOAT, INT, NUMERIC
  from finquant.returns import weighted_mean_daily_returns
  from finquant.type_utilities import type_validation
label_desc: Use image node_id 8 for calling a global function with example usage: annualised_portfolio_quantities(weights, means, cov_matrix, risk_free_rate, freq) and returns: expected_return,  volatility,  sharpe