backtest-class {backtest}R Documentation

Class "backtest"

Description

Contains results from the backtest function.

Details

The primary method for accessing the backtest results is through the summary method. summary provides different displays depending on the type of backtest object. These displays are shown in the examples section. Accessor methods such as means, counts, marginals, naCounts, turnover, and ci may be used to extract other types of information from the object.

A backtest object with a natural value of TRUE may be graphed by calling the plot method. The default plot method graphs return. The other plots, turnover and cumulative return, must be explicitly specified as plot(object, type = "turnover") or plot(object, type = "cumreturn").

The backtest object does not store the data frame used to create the backtest. It only stores the results and the names of the vectors used in calculating these results.

The results of a backtest are stored in a 5-dimensional array, results. The 1st dimension contains one value for every element of ret.var. The 2nd dimension contains one value for every element of in.var. The 3rd dimension contains one value for every element in 1:buckets[1], a vector from 1 through the number of by.var buckets. The 4th dimension contains one value for every element in 1:buckets[2], a vector from 1 through the number of in.var buckets. The 5th dimension contains 4 elements: means, counts, trim.means, and NAs.

Objects from the Class

Objects can be created by calls to the function backtest(data, in.var, ret.var, ...).

Slots

in.var:

Object of class "character" specifying the in.var values for this backtest.

ret.var:

Object of class "character" containing the ret.var values for this backtest.

by.var:

Object of class "character" containing the by.var, if specified, for this backtest.

date.var:

Object of class "character" containing the date.var, if specified, for this backtest.

buckets:

Object of class "numeric" containing the number(s) of buckets used create quantiles from the in.var and by.var values.

results:

A 5-dimensional "array" containing the results of the backtest.

ret.stats:

Object of class "array" containing return statistics for the backtest.

turnover:

Object of class "array" containing turnover statistics for the backtest.

natural:

Object of class "logical" expressing whether or not the intervals between observations, as specified by date.var, and returns, as specified by ret.var, match. If the interval between dates is one month, the interval between returns should also be one month.

do.spread:

Object of class "logical". If TRUE the summary method displays information about the spread between the extreme quantiles. If FALSE this information is suppressed. Defaults to TRUE.

by.period:

Object of class "logical". If TRUE the quantiles are recalculated within each date period. If FALSE the quantiles are calculated all at once. Defaults to TRUE.

overlaps:

An object of class "numeric" which specifies the number of prior periods to include in the current period's portfolio weights calculation. If overlaps is the default of 1, backtest behaves as usual and only uses a periods own data to determine its portfolio. If overlaps is set to n > 1, a period's portfolio comprises the weighted mean of portfolio weights from the previous n periods, with period n having a weight of 1/n.

Methods

show

signature(object = "backtest"): Prints the variables used in this backtest.

summary

signature(object = "backtest"): Prints the results of the backtest.

summaryStats

signature(object = "backtest"): Returns a data frame with spreads for each date.var value and each in.var.

means

signature(object = "backtest"): Returns a list of matrices, with one matrix for each in.var, where the value of each cell is the mean of the returns for that in.var and by.var combination.

counts

signature(object = "backtest"): Returns a list of matrices, with one matrix for each in.var, where the value of each cell is the number of observations for that in.var and by.var combination.

totalCounts

signature(object = "backtest"): Returns a data frame in the same format as the speads data frame returned by summaryStats: contains the sum of counts for all buckets (or high and low buckets if argument low.high.only is set to TRUE) of non-NA in.var values that went into the spread calculations.

marginals

signature(object = "backtest"): Returns a list of matrices, one matrix for each in.var, where the value of each cell is the number of observations for that in.var and by.var combination. Different from counts because the marginal sums have been appended to the matrices.

naCounts

signature(object = "backtest"): Returns a list of matrices, with one matrix for each in.var, where the value of each cell is the number of NA observations for that in.var and by.var combination.

ci

signature(object = "backtest"): Returns a matrix of confidence intervals for spreads.

turnover

signature(object = "backtest"): Returns a data.frame of the turnovers if the backtest is natural.

plot

signature(x = "backtest", y = "missing"): Plots returns, cumulative returns, or turnover, when passed a type argument of return, cumreturn, or turnover, respectively.

Author(s)

Kyle Campbell kyle.w.campbell@williams.edu

See Also

backtest

Examples


data(starmine)
bt <- backtest(starmine, in.var = "smi", ret.var = "ret.0.1.m", by.period = FALSE)

## Summary for a pooled backtest

summary(bt)

## A natural backtest

bt <- backtest(starmine, in.var = "smi", ret.var = "ret.0.1.m",
               date.var = "date", id.var = "id", natural = TRUE, by.period = FALSE)

## Summary for a natural backtest

summary(bt)

## Other access methods

means(bt)
counts(bt)
marginals(bt)
naCounts(bt)

## Plotting methods

plot(bt, type = "turnover")
plot(bt, type = "return")
plot(bt, type = "cumreturn")


[Package backtest version 0.3-4 Index]