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).
    See Also:
    Well Diversified Efficient Portfolios
    • 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