parmasolve-methods: Portfolio Allocation Model Solver

parmasolve-methodsR Documentation

Portfolio Allocation Model Solver

Description

Solves for the optimal weights given parmaSpec defined model.

Usage

parmasolve(spec, type = NULL, solver = NULL, solver.control = list(), x0 = NULL, 
w0 = NULL, parma.control = list(ubounds = 1e4, mbounds = 1e5, 
penalty = 1e4, eqSlack = 1e-05), ...)

Arguments

spec

A parmaSpec object.

type

The problem type to use (the show method on parmaSpec will indicate the available options).

solver

For a GNLP type problem the choice of global solver, either “cmaes” or “crs” from the nloptr package. For LP type problems, only glpk ic currently supported.

solver.control

A list with optional control parameters passed to the nloptr or cmaes solver.

x0

Optional starting parameters for the NLP type problems. This may be of size greater than the number of assets depending on whether it takes extra optimization parameters (CVaR has VaR in position 1, whilst the fractional formulation has the multiplier in the last position).

w0

Optional starting parameters for only the asset weights.

parma.control

Internal NLP tuning parameters, where ‘ubounds’ represents the symmetric unconstrained parameter bounds in the fractional problem, ‘mbounds’ the multiplier upper bounds in the fractional formulation, ‘penalty’ the GNLP penalty parameter and ‘eqSlack’ the slack value to use for converting equalities to inequalities in the SOCP formulation.

...

Currently only the ‘verbose’ argument (logical) which is used and passed to the GLPK solver (similar to ‘trace’).

Details

In most of the cases, the intersection of objective and constraints will define whether a problem is LP, MILP, QP, MIQP, QCQP, NLP, MINLP or GNLP. However, there are cases when the problem can be solved by more than one type of solver so that the ‘type’ option allows the user to choose between the options. For the GNLP type, the ‘solver’ allows for a choice of “cmaes” or “crs”, while the LP type there is a choice of “glpk” or “symphony”. Future development will likely expand on these choices.

Value

A parmaPort object containing details of the PARMA optimized portfolio.

Author(s)

Alexios Galanos


parma documentation built on Oct. 29, 2022, 1:08 a.m.