WebCab Portfolio for .NET v5.0 Demo

SolveFrontier.FindReturn Method (Double[], Double[], Double[], Double[], Double)

Evaluates a value of the expected return of the portfolio on the Efficient Frontier which is optimal with respect to the investors (Return) Utility function which is a function of the expected return.

public double FindReturn(
   double[] riskUtility,
   double[] returnUtility,
   double[] riskAtPoints,
   double[] returnAtPoints,
   double precision
);

Parameters

riskUtility
An array of double where the first term is the lowest value of the risk from the set of points at which the investors risk/reward utility function is given, the second term is the next lowest value of the risk and so on.
returnUtility
An array of double where the first term is the lowest value of the expected return from the set of points at which the investors risk/reward utility function is given, the second term is the next lowest value of the expected return and so on.
riskAtPoints
returnAtPoints
precision
The precision for which the value of the risk of an optimal portfolio will be returned. Since there may be more than one optimal portfolio we used the term `an optimal'. In particular, if the precision is set to 0.001 then the risk will be returned to within 0.001 etc, of the `exact' solution.

Remarks

Once the expected return is known the corresponding value of the risk of the portfolio can be evaluated using the method FindRisk.

Notes on the Efficient Frontier input parameters

A set of points on the Efficient Frontier should be evaluated using methods from the Markowitz class, in particular:

  1. riskPoints - the values of the (known) risk points on the Efficient Frontier are evaluated using the method GetEfficientFrontierPortfolioRisks
  2. returnPoints - the values of the (known) return points on the Efficient Frontier are evaluated using the method GetEfficientFrontierExpectedReturns

Note: Alternatively you may choose to use the complex type PointsOnEfficientFrontier, and the related methods from the portfolio class in order to find the set of points on the efficient frontier for which it is evaluated.

The parameters of the Investors Utility Function

The (Return) Utility function is given by a set of points which lie on the utility curve. The (Return) utility function is assumed to take the same range of values of the expected return parameter as the range of the expected return over which the Efficient Frontier is defined. It is essential within the formation of this approach that the (Return) Utility function is a function of the expected return. In particular, if we are given a value of the return then there corresponds a unique value of the risk. In practice, since we are applying a Cubic spline method in order to interpolate the (Return) Utility function from the finite set of points it is enough to ensure that from this set of points there does not exist two distinct points with have the same value of the return.

Advantages of a General Utility Function

A more general Utility function allows the investor to express the likely fact that as the expected return increase they may except a higher level of risk. In the case when the (Return) Utility function returns a constant value of the risk this methods reduced to the case considered in FindReturn.

Exceptions

Exception TypeCondition
SolveFrontierExceptionThrown if no value is found for the given input parameters.
InterpolationExceptionThrown when there does not correspond a points on the interpolation function corresponding to the parameters given.

See Also

SolveFrontier Class | WebCab.Libraries.Finance.Portfolio Namespace | SolveFrontier.FindReturn Overload List | FindReturn(double, double[], double[]) - this is a special case of this method which corresponds to the case where the (Return) Utility function is a constant function which states that the investor will accept of given maximum risk and is not influence by the corresponding level of expected return.