# RollingAnalysis: Rolling Analysis In fTrading: Rmetrics - Trading and Rebalancing Financial Instruments

## Description

A collection and description of functions to perform a rolling analysis. A rolling analysis is often required in building trading models.

The functions are:

 `rollFun` Rolling or moving sample statistics, `rollVar` Rolling or moving sample variance.

## Usage

 ```1 2 3 4 5``` ```rollFun(x, n, trim = TRUE, na.rm = FALSE, FUN, ...) rollVar(x, n = 9, trim = TRUE, unbiased = TRUE, na.rm = FALSE) ```

## Arguments

 `FUN` the rolling function, arguments to this function can be passed through the `...` argument. `n` an integer specifying the number of periods or terms to use in each rolling/moving sample. `na.rm` a logical flag: if TRUE, missing values in x will be removed before computation. The default is FALSE. `trim` a logical flag: if TRUE, the first n-1 missing values in the returned object will be removed; if FALSE, they will be saved in the returned object. The default is TRUE. `unbiased` a logical flag. If TRUE, the unbiased sample variance will be returned. The default is TRUE. `x` an univariate `timeSeries` object or a numeric vector. `...` additional arguments to be passed.

## Value

The functions return a `timeSeries` object or a numeric vector, depending on the argument `x`.

`rollMax` returns the rolling sample maximum,
`rollMin` returns the rolling sample minimum,
`rollMean` returns the rolling sample mean, and
`rollVar` returns the biased/unbiased rolling sample variance.

Note, that the function `rollFun` always returns a numeric vector, independent of the argument `x`.

If you like to operate for `x` with rectangular objects, you have to call the functions columnwise within a loop.

## Author(s)

Diethelm Wuertz for the Rmetrics R-port.

`var`.
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13``` ```## Rolling Analysis: x = (1:10)^2 x trim = c(TRUE, TRUE, FALSE, FALSE) na.rm = c(TRUE, FALSE, TRUE, FALSE) for (i in 1:4) rollFun(x, 5, trim[i], na.rm[i], FUN = min) for (i in 1:4) rollFun(x, 5, trim[i], na.rm[i], FUN = max) for (i in 1:4) rollVar(x, 5, trim[i], unbiased = TRUE, na.rm[i]) for (i in 1:4) rollVar(x, 5, trim[i], unbiased = FALSE, na.rm[i]) ```