R: Portfolio Optimization

portfolio.optim {tseries} | R Documentation

## Portfolio Optimization

### Description

Computes an efficient portfolio from the given return series `x` in the mean-variance sense.

### Usage

    ## Default S3 method:
    portfolio.optim(x, pm = mean(x), riskless = FALSE,
                    shorts = FALSE, rf = 0.0, reslow = NULL, reshigh = NULL,
                    covmat = cov(x), ...)

### Arguments

`x` | a numeric matrix or multivariate time series consisting of a series of returns.
`pm` | the desired mean portfolio return.
`riskless` | a logical indicating whether there is a riskless lending and borrowing rate.
`shorts` | a logical indicating whether shortsales on the risky securities are allowed.
`rf` | the riskfree interest rate.
`reslow` | a vector specifying the (optional) lower bound on allowed portfolio weights.
`reshigh` | a vector specifying the (optional) upper bound on allowed portfolio weights.
`covmat` | the covariance matrix of asset returns.
`...` | further arguments to be passed from or to methods.

### Details

The computed portfolio has the desired expected return `pm` and no other portfolio exists, which has the same mean return, but a smaller variance. Inequality restrictions of the form w_l <= w <= w_h can be imposed using the `reslow` and `reshigh` vectors. An alternative covariance matrix estimate can be supplied via the `covmat` argument. To solve the quadratic program, `solve.QP` is used.

`portfolio.optim` is a generic function with methods for multivariate `"ts"` and `default` for matrix.

Missing values are not allowed.

### Value

A list containing the following components:

`pw` | the portfolio weights.
`px` | the returns of the overall portfolio.
`pm` | the expected portfolio return.
`ps` | the standard deviation of the portfolio returns.

### Author(s)

A. Trapletti

### References

E. J. Elton and M. J. Gruber (1991): Modern Portfolio Theory and Investment Analysis, 4th Edition, Wiley, NY, pp. 65-93.

C. Huang and R. H. Litzenberger (1988): Foundations for Financial Economics, Elsevier, NY, pp. 59-82.

### See Also

`solve.QP`

### Examples

    x <- rnorm(1000)
    dim(x) <- c(500,2)
    res <- portfolio.optim(x)
    res$pw

    require("zoo")			# For diff() method.
    X <- diff(log(as.zoo(EuStockMarkets)))
    res <- portfolio.optim(X)                 ## Long only
    res$pw
    res <- portfolio.optim(X, shorts=TRUE)    ## Long/Short
    res$pw

[Package tseries version 0.10-47 Index]