SuanShu, a Java numerical and statistical library

com.numericalmethod.suanshu.model.corvalan2005

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 and Description
static interface  Corvalan2005.WeightsConstraint
Constraints on weights which are defined by a set of less-than constraints.
• Constructor Summary

Constructors
Constructor and 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 and 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