fn_map: mapping function to transform or penalize weights that...

Description Usage Arguments Details Value Author(s)

View source: R/constraint_fn_map.R


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.


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



vector of weights


object of class portfolio


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


print error messages for debuggin purposes


any other passthru parameters


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.



Ross Bennett

PortfolioAnalytics documentation built on May 18, 2018, 1:04 a.m.