portfolio-Constraints: Portfolio Constraints

portfolio-constraintsR Documentation

Portfolio Constraints


Computes portfolio constraints given constraints strings.


portfolioConstraints(data, spec=portfolioSpec(), constraints="LongOnly", ...)

minWConstraints(data, spec=portfolioSpec(), constraints="LongOnly")
maxWConstraints(data, spec=portfolioSpec(), constraints="LongOnly")

eqsumWConstraints(data, spec=portfolioSpec(), constraints="LongOnly")
minsumWConstraints(data, spec=portfolioSpec(), constraints="LongOnly")
maxsumWConstraints(data, spec=portfolioSpec(), constraints="LongOnly")

minBConstraints(data, spec=portfolioSpec(), constraints="LongOnly")
maxBConstraints(data, spec=portfolioSpec(), constraints="LongOnly")

listFConstraints(data, spec=portfolioSpec(), constraints="LongOnly")
minFConstraints(data, spec=portfolioSpec(), constraints="LongOnly")
maxFConstraints(data, spec=portfolioSpec(), constraints="LongOnly")

minBuyinConstraints(data, spec=portfolioSpec(), constraints="LongOnly")
maxBuyinConstraints(data, spec=portfolioSpec(), constraints="LongOnly")

nCardConstraints(data, spec=portfolioSpec(), constraints="LongOnly")
minCardConstraints(data, spec=portfolioSpec(), constraints="LongOnly")
maxCardConstraints(data, spec=portfolioSpec(), constraints="LongOnly")



a character value or character vector, containing the constraint strings. Setting constraints is described in the details section


a list, having a statistics named list, having named entries 'mu' and 'Sigma', containing the information of the statistics


an S4 object of class fPFOLIOSPEC as returned by the function portfolioSpec.


For internal use only.


How to define constraints?

Constraints are defined by a character string or a vector of character strings.

Summary Constraints: NULL, "LongOnly", "Short"

There are three special cases, the settings constraints=NULL, constraints="Short", and constraints="LongOnly". Note, that these three constraint settings are not allowed to be combined with more general constraint definitions.

NULL: This selection defines the default value and is equivalent to the "LongOnly" case, see below.

"Short": This selection defines the case of unlimited short selling. i.e. each weight may range between -Inf and Inf. Consequently, there are no group constraints. Risk budget constraints are not included in the portfolio optimization.

"LongOnly": This selection is the same as the default setting. Each weight may range between 0 ans 1. No group constraints and risk budget constraints will be included in the portfolio optimization.

Lower and Upper Bounds: minW and maxW

Group Constraints: eqsumW, minsumW and maxsumW

Lower and upper bounded portfolios may be specified by a vector of character strings which describe executable code, setting values to to vectors minW, maxW, minsumW, and maxsumW. The individual string elements of the vector have the following form:

box constraints

"minW[Asset(s)]=Value(s)", and/or

sector constraints

"minsumW[Asset(s)]=Value(s)", and/or

Asset(s) is an index of one or more assets, and value a numeric value or vector assigning the desired value. Note, if the values range between zero and one, then we have a long only portfolio allowing for box and group constraints of the weights. If the values are set to negative values, and values larger than one, then (constrained) short selling will be allowed.

Risk Budget Constrained Portfolios:

By default, risk budgets are not included in the portfolio optimization. Covariance risk budgets have to be added explicitely, and have the following form:

box constraints

"minB[Asset(s)]=Value(s)", and/or

Again, Asset(s) is an index of one or more assets, and value a numeric value or vector with numbers ranging between zero and one, assigning the desired risk budgets.

Note, risk budget constraints will enforce diversification at the expense of return generation. The resulting portfolios will thus lie below the unconstrained efficient frontier.

Non-Linear Constraints: listF, minF, maxF


an object of class S4.


Wuertz, D., Chalabi, Y., Chen W., Ellis A. (2009); Portfolio Optimization with R/Rmetrics, Rmetrics eBook, Rmetrics Association and Finance Online, Zurich.

fPortfolio documentation built on April 25, 2023, 9:11 a.m.