Models

This section describes the optimization models that are planned to be shipped with the platform. The models to be implemented are defined in their mathematical notation.

\mathbf{1} & vector of all ones
n & number of assets in the Asset_Group
k & number of scenarios
\Sigma\in\mathbb{R}^{n\times n} & covariance matrix of the Asset_Group
\mu\in\mathbb{R}^n & vector of expected returns of the Asset_Group
r\in\mathbb{R} & target return
w\in\mathbb{R}^n & weights vector to be found
\Theta\in\mathbb{R}^{n\times n} & ellipsoidal uncertainty set of true expected returns
\epsilon\in\mathbb{R} & square of a size of uncertainty set
L\in\mathbb{R}^{n\times k} & matrix of assets’ losses where each row corresponds to the Monte-Carlo scenario
\alpha\in (0,\, 0.5) & area of the right tale of the losses distribution at which CVaR is computed
\mathcal{F}\subseteq \mathbb{R}^n & feasible space defined by inputs constraints and short_sale
y\in\mathbb{R}^k,\; q\in\mathbb{R} & auxiliary decision variables

Minimum-Variance Optimization

Minimum Variance Optimization

\min w^\top\Sigma w
subject to \mathbf{1}^\top w = 1
w\in\mathcal{F}

MinVarO(Asset_Group(\Sigma, \mu), constraints, short_sale)

mvar = MinVarO(Asset_Group, constraints, short_sale)
optimize(mvar, parameters)
Variable Name Description
Asset Group Set of Asset returns and covarianced inputtedf or analysis
Constraints Any non-model specific constraints to be used in optimization
Short_Sale A boolean indicating whether or not short selling will be allowed

Simple Mean Variance Optimization

Simple MVO

\min w^\top\Sigma w
subject to \mu^\top w \geq r
\mathbf{1}^\top w = 1
w\in\mathcal{F}

SimpleMVO(Asset_Group(\Sigma, \mu), r, constraints, short_sale)}

mvo = SimpleMVO(Asset_Group, target_return, constraints, short_sale)
optimize(mvo, parameters)
Variable Name Description
Asset Group Set of Asset returns and covarianced inputtedf or analysis
Target_Return Expected target return of portfolio post optimization
Constraints Any non-model specific constraints to be used in optimization
Short_Sale A boolean indicating whether or not short selling will be allowed

Robust Mean Variance Optimization

Robust MVO

\min w^\top\Sigma w
subject to \lVert{\Theta^{\frac{1}{2}}w}\rVert \leq \sqrt{\epsilon} or equivalently w^\top\Theta w \leq\epsilon
\mu^\top w \geq r
\mathbf{1}^\top w = 1
w\in\mathcal{F}

RobustMVO(Asset_Group(\Sigma, \mu), r, constraints, \Theta, \epsilon, short_sale)

rmvo = RobustMVO(Asset_Group, target_return, constraints, uncertainty_set, uncertainty_set_size, short_sale)
optimize(rmvo, parameters)
Variable Name Description
Asset Group Set of Asset returns and covarianced inputtedf or analysis
Target_Return Expected target return of portfolio post optimization
Constraints Any non-model specific constraints to be used in optimization
Uncertainty_Set Uncertainties in the parameter estimates (\Sigma and \mu) associated with each asset in the asset group. Typically taken to be an individual variance of each asset
Uncertainty_Set_Size maximum allowable exposure of the whole portfolio to the uncertainty associated with the parameter estimates (\Sigma and \mu)
Short_Sale A boolean indicating whether or not short selling will be allowed

Conditional Value at Risk (CVaR) Optimization

CVaR Optimization

\min q + \frac{\mathbf{1}^\top y}{N(1 - \alpha)}
subject to L^\top w - q \mathbf{1} - y \preceq 0
y \succeq 0
w\in\mathcal{F}

CVaRO(Asset_Group(\Sigma, \mu), L, constraints, \alpha, short_sale)

cvar = CVaRO(Asset_Group, losses, constraints, alpha, short_sale)
optimize(cvar, parameters)
Variable Name Description
Asset Group Set of Asset returns and covarianced inputtedf or analysis
Losses Matrix of samples of the portfolio losses, where each row represents a sample. Typically obtained by Monte-Carlo sampling
Constraints Any non-model specific constraints to be used in optimization
Alpha Confidence level at which CVaR is optimized. This corresponds to the area of the left tale of the losses distribution
Short_Sale A boolean indicating whether or not short selling will be allowed

Function Descriptions

Function Description
optimize(M, parameters; solver=Default) Will optimize the model M with the parameters given using a solver
getDefaultConstraints(M) Return the default constraints of model M .
getConstraints(M) Return the constraints as an array of expressions for model M .
getObjective(M) Return the objective function of model M as an Expr type.
getSense(M) Return the Sense of the model M , Min or Max.
getVariables(M) Return the list of variables in the model M .

To change solvers, refer to the solver select tutorial.