portfolio_toolkit.optimization package
Submodules
- portfolio_toolkit.optimization.compute_var module
- portfolio_toolkit.optimization.efficient_frontier module
- portfolio_toolkit.optimization.optimization module
Optimization
Optimization.name
Optimization.currency
Optimization.assets
Optimization.data_provider
Optimization.period
Optimization.returns
Optimization.covariance_matrix
Optimization.means
Optimization.weights
Optimization.expected_returns
Optimization.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:
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
- 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