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

Description Usage Arguments Details Value Author(s)

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

  • weights: vector of transformed weights meeting constraints.

  • min: vector of min box constraints that may have been modified if relax=TRUE.

  • max: vector of max box constraints that may have been modified if relax=TRUE.

  • cLO: vector of lower bound group constraints that may have been modified if relax=TRUE.

  • cUP: vector of upper bound group constraints that may have been modified if relax=TRUE.

Author(s)

Ross Bennett



Search within the PortfolioAnalytics package
Search all R packages, documentation and source code

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

Please suggest features or report bugs with the GitHub issue tracker.

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