portfolio_toolkit.optimization package

Submodules

Module contents

class portfolio_toolkit.optimization.Optimization(name: str, currency: str, assets: List[OptimizationAsset], data_provider: DataProvider, period: str = '1y', returns: DataFrame | None = None, covariance_matrix: DataFrame | None = None, means: Series | None = None, weights: Series | None = None, expected_returns: Series | None = None)[source]

Bases: object

Class to represent and manage an asset optimization.

__init__(name: str, currency: str, assets: List[OptimizationAsset], data_provider: DataProvider, period: str = '1y', returns: DataFrame | None = None, covariance_matrix: DataFrame | None = None, means: Series | None = None, weights: Series | None = None, expected_returns: Series | None = None) None
covariance_matrix: DataFrame | None = None
expected_returns: Series | None = None
classmethod from_dict(data: dict, data_provider: DataProvider) Optimization[source]
get_efficient_frontier(num_points: int)[source]
get_var() float[source]
means: Series | None = None
period: str = '1y'
returns: DataFrame | None = None
weights: Series | None = None
name: str
currency: str
assets: List[OptimizationAsset]
data_provider: DataProvider
portfolio_toolkit.optimization.find_maximum_sharpe_portfolio(expected_returns: Series, covariance_matrix: DataFrame, risk_free_rate: float = 0.0) Dict[str, ndarray | float][source]

Find the portfolio with maximum Sharpe ratio (tangency portfolio).

Parameters:

expected_returnspd.Series

Expected returns for each asset

covariance_matrixpd.DataFrame

Covariance matrix of asset returns

risk_free_ratefloat, default=0.0

Risk-free rate

Returns:

Dict[str, Union[np.ndarray, float]]

Dictionary containing: - ‘weights’: Optimal weights - ‘return’: Expected portfolio return - ‘volatility’: Portfolio volatility - ‘sharpe_ratio’: Sharpe ratio

portfolio_toolkit.optimization.calculate_portfolio_metrics(weights: List[float] | ndarray, expected_returns: Series, covariance_matrix: DataFrame, risk_free_rate: float = 0.0) Dict[str, float][source]

Calculate key portfolio metrics for given weights.

Parameters:

weightsList[float] or np.ndarray

Portfolio weights

expected_returnspd.Series

Expected returns for each asset

covariance_matrixpd.DataFrame

Covariance matrix of asset returns

risk_free_ratefloat, default=0.0

Risk-free rate for Sharpe ratio calculation

Returns:

Dict[str, float]

Dictionary containing portfolio metrics: - ‘return’: Expected portfolio return - ‘volatility’: Portfolio volatility (standard deviation) - ‘sharpe_ratio’: Sharpe ratio