garpar.optimize package¶
Optimize subpackage of Garpar project.
This subpackage offers foundational classes for developing mean-variance optimization models tailored for StocksSets, featuring various implementations leveraging PyPortfolioOpt.
- Key Features:
Portfolio optimization
Mean-variance models
Markowitz model
See also
PyPortfolioOpt
Submodules¶
garpar.optimize.mean_variance module¶
Mean variance optimizers.
Implementations of different mean-variance models. There is a more general class that can be used to apply a wider range of mean-variance models. And a concrete class for the Markowitz model.
- Key Features:
Portfolio optimization
Mean-variance models
Markowitz model
Examples
>>> import garpar
>>> prices_df = [[...], [...]] # Your price data
>>> ss = garpar.mkss(
... prices=prices_df,
... weights=[0.4, 0.3, 0.3],
... window_size=5
... )
>>> from garpar.optimize.mean_variance import MVOptimizer
>>> modl = MVOptimizer(model="max_sharpe", risk_free_rate=0.11)
>>> modl.optimize(ss)
or
>>> from garpar import mkss
>>> from garpar.optimize.mean_variance import Markowitz
>>> prices_df = [[...], [...]] # Your price data
>>> ss = mkss(prices=prices_df, weights=[0.4, 0.3, 0.3], window_size=5)
>>> modl = Markowitz(model="efficient_risk", target_return=0.07)
>>> modl.optimize(ss)
See also
PyPortfolioOpt
- class garpar.optimize.mean_variance.MVOptimizer(returns_kw=NOTHING, covariance_kw=NOTHING, *, model='max_sharpe', weight_bounds=(0, 1), market_neutral=False, returns='mah', covariance='sample_cov', target_return=None, target_risk=None, risk_free_rate=None, risk_aversion=None)¶
Bases:
MeanVarianceFamilyMixin,OptimizerABCFlexible Mean Variance Optimizer.
An instance of this class represents a mean-variance optimization model. This class also provides different coercion methods for each model parameter. The parameter model indicates the optimization model to use.
- class garpar.optimize.mean_variance.Markowitz(returns_kw=NOTHING, covariance_kw=NOTHING, *, target_return=None, target_risk=None, weight_bounds=(0, 1), market_neutral=False, returns='mah', covariance='sample_cov')¶
Bases:
MeanVarianceFamilyMixin,OptimizerABCClassic Markowitz model.
An instance of this class represents the Markowitz optimization model with specific parameters. This class also provides different coercion methods for either the target return or target risk.
garpar.optimize.opt_base module¶
Optimizer base classes module.
This module provides an abstract base class for optimization models and a mixin class for defining mean-variance optimization models classes.
- class garpar.optimize.opt_base.MeanVarianceFamilyMixin¶
Bases:
objectMixin class for mean-variance like models.
- family = 'mean-variance'¶
- class garpar.optimize.opt_base.OptimizerABC¶
Bases:
ModelABCAbstract base class for stocks set optimization models.
This class is the basic representation of an optimization model, In this context, the subclasses of this class that are not abstract are called optimizers.
- family = <object object>¶
- classmethod get_optimizer_family()¶
Get the family of the optimizer.
- Returns:
The family of the optimizer.
- Return type:
str
- optimize(ss)¶
Optimize the given stocks set.
- Parameters:
ss (garpar.core.stocks_set.StocksSet) – The stocks set to optimize.
- Returns:
A new stocks set with optimized weights.
- Return type: