WebCab Portfolio for COM v5.0 Demo

Markowitz.EfficientFrontierWithExpectedReturnsKnown Method 

Returns the (possibly constrained) weights of the assets of the portfolio which offers the least risk for a given expected return.

public double[] EfficientFrontierWithExpectedReturnsKnown(
   double expectedReturn,
   int numberOfAssets
);

Parameters

expectedReturn
The value of the expected return for which the Efficient Frontier is evaluate and the optimal portfolio (i.e. the portfolio with the lower risk) asset weights are returned. Please note that the units in which the expected return is given should correspond to the units used (i.e. relative or absolute) used in order to evaluate the Efficient Frontier.
numberOfAssets
The number of assets from which the (optimal) portfolio is constructed, or equivalently the number of assets from which portfolios on the Efficient Frontier can be constructed.

Return Value

An array of weights of the assets of the optimal portfolio with the given expected return. The first elements of the array corresponds to the weights of the first asset from which the portfolio can be constructed, the second terms corresponds to the weight of the second asset and so on.The asset weights of the portfolio at an arbitrary point of the Efficient Frontier via interpolation.

Remarks

The weights by definition are a set of positive real numbers which sum to unity, where the first element of the weights array corresponds to the weight of the first asset from which the (optimal) portfolio can be constructed within the optimal portfolio. The second term of the weights array corresponds to the weight of the second asset from which the (optimal) portfolio can be constructed within the optimal portfolio, and so on.

Stateful Nature of this method

This method is stateful because it requires that the interpolation points of the Efficient Frontier have already been evaluated by first called the method CalculateEfficientFrontier. Once the Efficient Frontier has been evaluated we are able to very efficiently evaluate the weights of the optimal portfolio for the range of expected returns considered. The reason being that the Efficient Frontier has already be constructed and here we are just `reading of' optimal portfolios within the range of expected returns consider which lie on the Efficient Frontier.

Setting Constraints on the weights of the Assets

By default the weights of the assets from which the portfolios on the Efficient Frontier can be constructed can take any value within the closed interval [0,1]. However you are able to set an upper and lower constraint on each on the weights by called the method SetConstraints behind constructing the Efficient Frontier by calling CalculateEfficientFrontier, after which this method may be called.

Suitable values of the Expected Return Parameter

For a given set of assets with possibly constrained asset weights there will correspond a range of values of the expected return over which the (constrained) Efficient Frontier exists. Naturally the value of the expected return about which the Efficient Frontier is evaluated must lie within this range. You are able to evaluate this continuous range of expected returns for which the Efficient Frontier exists by calling the methods MinFrontierReturn and MaxFrontierReturn, in order to evaluate the upper and lower bounds respectively. If you are considering the constrained case then the constraints should be set (by calling SetConstraints) before the range of the expected returns are evaluated.

Exceptions

Exception TypeCondition
EfficientFrontierNotCalculatedExceptionThrown if the Efficient Frontier is not calculated. In order to evaluate the Efficient Frontier please call the method CalculateEfficientFrontier and then call this method again.
NoSolutionExceptionThrown if there are no portfolios with the desired value of the expected return within the Efficient Frontier constructed. If there exists a portfolio which can be constructed from the given collection of assets for the given desired expected return. Which is equivalent to asking whether there exists an asset within the collection of assets from which the portfolios can be constructed which has an expected return which is greater than or equal to the expected return of the portfolio desired. If this is the case then the Efficient Frontier should be re-evaluated using CalculateEfficientFrontier which a range of expected returns including the desired point, after which this method should be reapplied. If this is not the case then you will need additional assets to be included within the collection of assets from which the portfolio can be constructed which have an expected return which is greater than or equal to the expected return desired. When these asset(s) have been made available then you will be able to evaluate the Efficient Frontier on a range of value of the expected return which includes the desired point using CalculateEfficientFrontier after which you will be able to reapply this method.

See Also

Markowitz Class | WebCab.COM.Finance.Portfolio Namespace | CalculateEfficientFrontier - this method must be called previously in order to evaluate the Efficient Frontier.