Provides a number of custom constraints and their jacobians for use with the NLP representation (both minimum risk and the fractional problem).
1 2 3 4 5 6 7 8 9 10 11 12
ineqfun.turnover.min(w, optvars, uservars) ineqjac.turnover.min(w, optvars, uservars) ineqfun.bsturnover.min(w, optvars, uservars) ineqjac.bsturnover.min(w, optvars, uservars) ineqfun.turnover.opt(w, optvars, uservars) ineqjac.turnover.opt(w, optvars, uservars) ineqfun.bsturnover.opt(w, optvars, uservars) ineqjac.bsturnover.opt(w, optvars, uservars) ineqfun.variance.opt(w, optvars, uservars) ineqjac.variance.opt(w, optvars, uservars) ineqfun.variance.min(w, optvars, uservars) ineqjac.variance.min(w, optvars, uservars)
The decision weight vector.
Problem specific list (not for use by user).
User specific list with some required parameters to be set (see details).
Functions preceded be “ineqfun” denote the functions which may be
passed to the ineqfun option in the
parmaspec function, while
“eqfun” to the eqfun option. Functions which include “jac” in the
first part of the name denote the jacobians of the equivalent constraints and
should be passed to the ineqgrad or eqgrad options in
ending with “min” denote formulations for use with the minrisk type problems
while functions ending with “opt” denote the fractional risk formulation.
For the simple turnover constraint, the uservars list must contain an entry called ‘wold’ denoting the previous vector of weights with which the comparison will be made. Additionally, an entry called ‘turnover’ is required which denotes the (positive) value for the maximum turnover.
For the buy and sell turnover constraint (bsturnover), there should instead be (positive) ‘buyturnover’ and ‘sellturnover’ entries in the uservars list. Finally note that when using this type of constraints in a fractional programming setup, care should be taken that the combination of bounds, turnover limits and the forecast return vector do not result in a negative expected return in which case the problem is not solvable.
The variance constraint allows the targeting of a maximum acceptable variance. The extra arguments which must be passed to the uservars list are ‘Cov’ for the asset covariance matrix and ‘varbound’ representing the maximum acceptable upper variance.
Used internally by the NLP solver. The fun return a scalar, while the jac return a matrix with n.cols equal to the length of the decision vector (which may be greater than the length of the weights as in the fractional problem which contains the fractional multiplier as well as other formulations which have additional decision variables).
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.