## Class Corvalan2005

• public class Corvalan2005
extends Object
This paper tackles the corner solution problem of many portfolio optimizers, by optimizing the portfolio diversification with some relaxation on the volatility σ and the expected return R of a given optimized (but non-diversified) portfolio. This implementation generalizes this framework as the following optimization problem: \max_{w} D(w) \quad \text{s.t.} \\ \begin{aligned} \sqrt{w' \Sigma w} & \le \sigma^* (1 + \Delta \sigma) \\ R^* (1 - \Delta R) & \le w'r \\ w' 1 & = 1 \\ ... & \text{some extra constraints} \end{aligned} where $$( \sigma^* , R^* ) = ( \sqrt{w^{*'} \Sigma w^*} , w^{*'} r )$$, $$w^*$$ is the original optimal weights, $$\Delta \sigma, \Delta R$$ are the relaxation tolerance parameters, and $$D(w)$$ is a defined measure for portfolio diversification (DiversificationMeasure).
Well Diversified Efficient Portfolios
• ### Nested Class Summary

Nested Classes
Modifier and Type Class Description
static interface  Corvalan2005.WeightsConstraint
Constraints on weights which are defined by a set of less-than constraints.
• ### Constructor Summary

Constructors
Constructor Description
Corvalan2005​(double deltaSigma, double deltaR)
Constructs an instance of the Corvalan model.
Corvalan2005​(Minimizer<? super ConstrainedOptimProblem,​IterativeSolution<Vector>> minimizer, DiversificationMeasure diversificationMeasure, double deltaSigma, double deltaR)
Constructs an instance of the Corvalan model.
• ### Method Summary

All Methods
Modifier and Type Method Description
Vector getDiversifiedWeights​(Corvalan2005.WeightsConstraint constraint, Vector weights0, Matrix sigma, Vector r)
Finds the optimal weights for a diversified portfolio.
Vector getDiversifiedWeights​(Corvalan2005.WeightsConstraint constraint, Vector weights0, Matrix sigma, Vector r, EqualityConstraints extraEqualityConstraints, LessThanConstraints extraLessThanConstraints)
Finds the optimal weights for a diversified portfolio.
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Constructor Detail

• #### Corvalan2005

public Corvalan2005​(double deltaSigma,
double deltaR)
Constructs an instance of the Corvalan model.
Parameters:
deltaSigma - the relaxation of portfolio volatility
deltaR - the relaxation of portfolio return
• #### Corvalan2005

public Corvalan2005​(Minimizer<? super ConstrainedOptimProblem,​IterativeSolution<Vector>> minimizer,
DiversificationMeasure diversificationMeasure,
double deltaSigma,
double deltaR)
Constructs an instance of the Corvalan model.
Parameters:
minimizer - the optimizer
diversificationMeasure - the diversification measure
deltaSigma - the relaxation of portfolio volatility
deltaR - the relaxation of portfolio return
• ### Method Detail

• #### getDiversifiedWeights

public Vector getDiversifiedWeights​(Corvalan2005.WeightsConstraint constraint,
Vector weights0,
Matrix sigma,
Vector r)
throws Exception
Finds the optimal weights for a diversified portfolio.
Parameters:
constraint - the weight constraints
weights0 - the original optimal weights
sigma - the covariance matrix of asset returns
r - the expected asset returns
Returns:
the diversified weights
Throws:
Exception - when the optimizer fails to find a solution
• #### getDiversifiedWeights

public Vector getDiversifiedWeights​(Corvalan2005.WeightsConstraint constraint,
Vector weights0,
Matrix sigma,
Vector r,
EqualityConstraints extraEqualityConstraints,
LessThanConstraints extraLessThanConstraints)
throws Exception
Finds the optimal weights for a diversified portfolio.
Parameters:
constraint - the weight constraints
weights0 - the original optimal weights
sigma - the covariance matrix of asset returns
r - the expected asset returns
extraEqualityConstraints - the additional equality constraints
extraLessThanConstraints - the additional less-than constraints
Returns:
the diversified weights
Throws:
Exception - when the optimizer fails to find a solution