portfolio_toolkit.optimization package
Submodules
- portfolio_toolkit.optimization.compute_var module
- portfolio_toolkit.optimization.efficient_frontier module
- portfolio_toolkit.optimization.optimization module
OptimizationOptimization.nameOptimization.currencyOptimization.assetsOptimization.data_providerOptimization.periodOptimization.returnsOptimization.covariance_matrixOptimization.meansOptimization.weightsOptimization.expected_returnsOptimization.from_dict()Optimization.get_var()Optimization.get_efficient_frontier()Optimization.__init__()
- portfolio_toolkit.optimization.optimization_from_dict module
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:
objectClass 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
- classmethod from_dict(data: dict, data_provider: DataProvider) Optimization[source]
- 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