qrmtools (version 0.0-6)

returns: Compute Log-Returns or the Inverse Transformation

Description

Compute log-returns or data from given log-returns (the inverse transformation).

Usage

log_returns(x, inverse = FALSE, start.value, drop = TRUE)

Arguments

x

A matrix of values to be turned into log-returns (if inverse = FALSE) or log-returns (if inverse = TRUE).

inverse

A logical indicating whether the inverse transformation (data from given log-returns) is to be computed (if TRUE, this requires start.value to be specified).

start.value

If inverse = TRUE, the last available value of the time series to be constructed from the given log-returns x.

drop

A logical indicating whether 1-column matrices (or vectors) are returned as vectors.

Value

A matrix with the same number of columns as x (if one, then a vector), just one row less (if inverse = FALSE) or one row more (if inverse = TRUE).

Details

For negative log-returns, use -log_returns(x) or log_returns(-x, inverse = TRUE, start.value = ...).

Examples

Run this code
## Generate some data
n <- 1000
set.seed(271)
S <- cumsum(sample(c(-1,1), size = n, replace = TRUE))
S <- if(any(S <= 0)) S <- 1 - min(S) + S

## Log-returns
X <- log_returns(S) # build log-returns
Y <- log_returns(X, inverse = TRUE, start.value = S[1]) # transform back (first date is lost)
stopifnot(all.equal(S, Y))

## -Log-returns
X <- -log_returns(S) # build -log-returns
Y <- log_returns(-X, inverse = TRUE, start.value = S[1]) # transform back
stopifnot(all.equal(S, Y))

Run the code above in your browser using DataLab