Learn R Programming

rportfolios (version 1.0-1)

random.active: Random actively managed portfolio

Description

This function generates an actively managed random portfolio relative to a given benchmark portfolio. The active portfolio is the sum of the benchmark portfolio and a notional neutral long short portfolio with given gross notional exposure. The number of non zero positions in the long short portfolio is k.

Usage

random.active(x.b, x.g, k = length( x.b ), segments = NULL, max.iter = 2000, eps = 0.001)

Arguments

x.b
A numeric vector with the investment weights in the benchmark portfolio
x.g
A positive numeric value for the gross notional exposure in the long short portfolio
k
A positive integer value for the number of non zero positions in the long short portfolio
segments
A vector or list of vectors that defines the portfolio segments
max.iter
A positive integer value for the maximum iterations for the long short portfolio
eps
A small positive real value for the convergence criteria for the gross notional exposure

Value

An $n \times 1$ numeric vector with the investment weights.

Details

The algorithm uses the function random.longshort to generate long portfolios that have identical total long and short exposures equal to one half the given gross notional exposure x.g. The resultant portfolio x.ls is algebraically added to the benchmark portfolio x.b.

References

Jacobs, B. I. and K. N. Levy, 1997. The Long and Short of Long-Short Investing, Journal of Investing, Spring 1997, 73-86.

Jacobs, B. I., K. N. Levy and H. M. Markowitz, 2005. Portfolio Optimization with Factors, Scenarios and Realist Short Positions, Operations Research, July/August 2005, 586-599.

See Also

random.longshort

Examples

Run this code
###
### the benchmark portfolios consists of 30 equally weighted investments
###
x.b <- rep( 1, 30 ) / 30
###
### the gross notional exposure of the long short portfolio is a benchmark weight
###
x.g <- 1 / 30
###
### generate 100 active portfolios with 30 non zero positions in the long short portolios
###
x <- random.active( x.b, x.g )
###
### generate 100 active portfolios with 10 non zero positions in the long short portolios
###
y <- random.active( x.b, x.g, 10 )

Run the code above in your browser using DataLab