randomReturns: Create a Random Returns

View source: R/randomReturns.R

randomReturnsR Documentation

Create a Random Returns

Description

Create a matrix of random returns.

Usage

randomReturns(na, ns, sd, mean = 0, rho = 0, exact = FALSE)

Arguments

na

number of assets

ns

number of return scenarios

sd

the standard deviation: either a single number or a vector of length na

mean

the mean return: either a single number or a vector of length na

rho

correlation: either a scalar (i.e. a constant pairwise correlation) or a correlation matrix

exact

logical: if TRUE, return a random matrix whose column means, standard deviations and correlations match the specified values exactly (up to numerical precision)

Details

The function corresponds to the function random_returns, described in the second edition of NMOF (the book).

Value

a numeric matrix of size na times ns

Note

The function corresponds to the function random_returns, described in the second edition of NMOF (the book).

Author(s)

Enrico Schumann

References

Gilli, M., Maringer, D. and Schumann, E. (2019) Numerical Methods and Optimization in Finance. 2nd edition. Elsevier. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1016/C2017-0-01621-X")}

Schumann, E. (2023) Financial Optimisation with R (NMOF Manual). http://enricoschumann.net/NMOF.htm#NMOFmanual

See Also

mc

Examples

if (requireNamespace("quadprog")) {
    ## a small experiment: when computing minimum-variance portfolios
    ## for correlated assets, how many large positions are in the portfolio?

    na <- 100  ## number of assets
    inc <-  5  ## minimum of assets to include

    n <- numeric(10)
    for (i in seq_along(n)) {
        R <- randomReturns(na = na,
                           ns = 500,
                           sd = seq(.2/.16, .5/.16, length.out = 100),
                           rho = 0.5)
        n[i] <- sum(minvar(cov(R), wmax = 1/inc)> 0.01)
    }
    summary(n)
}

enricoschumann/NMOF documentation built on April 13, 2024, 12:16 p.m.