parmafrontier-methods {parma} | R Documentation |
Efficient Frontier Generator
Description
Solves for the portfolios on the efficient frontier given a specification object.
Usage
parmafrontier(spec, n.points = 100, miny = NULL, maxy = NULL, type = NULL,
solver = NULL, solver.control = list(), parma.control = list(ubounds = 10000,
mbounds = 1e+05, penalty = 10000), cluster = NULL)
Arguments
spec |
A |
n.points |
The number of portfolios to solve for along the frontier. |
miny |
(Optional) Minimum return from which to calculate the frontier. If not provided, will be calculated by a first pass optimization. |
maxy |
(Optional) Maximum return for which to calculate the frontier. If not provided, will be based on the maximum forecast. |
type |
The problem type to use (the show method on |
solver |
For a GNLP type problem the choice of global solver, either
“cmaes” or “crs” from the |
solver.control |
A list with optional control parameters passed to the
|
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. |
cluster |
A precreated cluster object from the parallel package for the parallel evaluation of the frontier portfolios (see note). |
Details
If using a cluster object, care should be taken since some of the LP based problems are quite memory intensive. Though some care some gone into using slam matrices and forcing garbage collection in intermediate setup steps of these problems, there is no guarantee that memory will not be quickly depleted for large problems using many cores/sockets.
Value
A matrix
object with columns for the weights, risk, reward and
termination status of the solver (not available for the QP solver), and
n.points rows. The user should investigate the non-converged solutions as well
as remove any NA based rows (non-converged with error).
Author(s)
Alexios Galanos