fn_map: mapping function to transform or penalize weights that violate constraints

Description

The purpose of the mapping function is to transform a weights vector that does not meet all the constraints into a weights vector that does meet the constraints, if one exists, hopefully with a minimum of transformation.

Usage

1
fn_map(weights, portfolio, relax = FALSE, verbose = FALSE, ...)

Arguments

weights

vector of weights

portfolio

object of class portfolio

relax

TRUE/FALSE, default FALSE. Enable constraints to be relaxed.

verbose

print error messages for debuggin purposes

...

any other passthru parameters

Details

The first step is to test for violation of the constraint. If the constraint is violated, we will apply a transformation such that the weights vector satisfies the constraints. The following constraint types are tested in the mapping function: leverage, box, group, and position limit. The transformation logic is based on code from the random portfolio sample method.

If relax=TRUE, we will attempt to relax the constraints if a feasible portfolio could not be formed with an initial call to rp_transform. We will attempt to relax the constraints up to 5 times. If we do not have a feasible portfolio after attempting to relax the constraints, then we will default to returning the weights vector that violates the constraints.

Value

Author(s)

Ross Bennett


Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.