random.portfolio.control {PortfolioProbe} | R Documentation

## Optimizer Controls for Random Portfolios

### Description

Sets parameters that control the optimization of `random.portfolio`.

### Usage

    random.portfolio.control(iterations.max = 20, miniter = 5,
            fail.iter = 5, gen.fail = 4, init.fail = 4,
            throw.error = TRUE,  lockcon = FALSE,
            enforce.max.weight = TRUE, doubleconst = FALSE,
            trace = FALSE, save.iterhistory = FALSE,
            safe.mode = TRUE, ...)

### Arguments

`iterations.max` | integer giving the maximum number of iterations to perform in a single try at a portfolio.
`miniter` | integer giving the minimum number of iterations to be tried in each go even if `fail.iter` says to give up.
`fail.iter` | integer giving the maximum number of consecutive iterations that fail to improve the solution without the algorithm stopping. For example, if `fail.iter` is 3, then the algorithm continues with 3 consecutive failures but stops upon the 4th consecutive failure.
`gen.fail` | integer limiting the total number of failures allowed in a call. The maximum number of failures allowed is `gen.fail` times `number.rand`.
`init.fail` | integer giving the number of failures allowed before the first success at finding a portfolio satisfying all the constraints. If the number of initial failures is violated, then it quits.
`throw.error` | logical value; if `TRUE`, then failing to create any portfolios that satisfy the constraints will cause an error. If `FALSE`, then no error happens and you can tell that no satisfactory portfolios were found because the length of the result is zero.
`lockcon` | logical value; if `TRUE`, then the constraint penalties are used as given. Otherwise the penalties for some constraints may be changed to try to find portfolios more efficiently.
`enforce.max.weight` | logical value; if `TRUE`, then forced trades are automatically created if any positions in the existing portfolio break their maximum weight constraint. This doesn't absolutely guarantee that the constraints will be met, but they generally will be unless the gross value is given a lot of latitude.
`doubleconst` | logical value; if `TRUE`, then any asset which goes from long to short or vice versa in a trade is subject to both intercepts of the trading costs. If `FALSE`, then the first intercept is used but the second is not. This is ignored if `cost.par` is given (or there are no costs).
`trace` | logical value. If `TRUE`, then information on the progress of the search is printed. This is often ignored under Windows.
`save.iterhistory` | logical value; if `TRUE`, then a vector will be returned containing the value of the objective at each iteration of the algorithm for the final random portfolio created.
`safe.mode` | logical value; if `FALSE` (not recommended), then some errors may be bypassed. The reason for this option is to allow possible workarounds for bugs if they appear.
`...` | there are additional arguments that make this compatible with `trade.optimizer.control`.

### Value

a list with the following components:

`icontrol` | vector of the integer-valued control parameters.
`dcontrol` | vector of the double precision control parameters.
`aux` | vector of the auxiliary control parameters.

### Details

ERRORS. Setting the `throw.error` argument to `FALSE` can be useful when doing series of random portfolios, as when imitating a backtest. It can be the case that the desired constraints are infeasible – you can relax some constraints if this proves to be true and try again.

### Revision

This help was last revised 2009 December 29.

### See Also

`random.portfolio`, `random.portfolio.utility`, `trade.optimizer.control`.

### Examples

    # it is unlikely to be useful to call this function directly

[Package PortfolioProbe version 1.03 Index]