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 thein.var
values for this backtest.ret.var
:Object of class
"character"
containing theret.var
values for this backtest.by.var
:Object of class
"character"
containing theby.var
, if specified, for this backtest.date.var
:Object of class
"character"
containing thedate.var
, if specified, for this backtest.buckets
:Object of class
"numeric"
containing the number(s) of buckets used create quantiles from thein.var
andby.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 bydate.var
, and returns, as specified byret.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 thesummary
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. Ifoverlaps
is the default of 1, backtest behaves as usual and only uses a periods own data to determine its portfolio. Ifoverlaps
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 eachdate.var
value and eachin.var
.- means
signature(object = "backtest")
: Returns a list of matrices, with one matrix for eachin.var
, where the value of each cell is the mean of the returns for thatin.var
andby.var
combination.- counts
signature(object = "backtest")
: Returns a list of matrices, with one matrix for eachin.var
, where the value of each cell is the number of observations for thatin.var
andby.var
combination.- totalCounts
signature(object = "backtest")
: Returns a data frame in the same format as the speads data frame returned bysummaryStats
: contains the sum of counts for all buckets (or high and low buckets if argumentlow.high.only
is set to TRUE) of non-NAin.var
values that went into the spread calculations.- marginals
signature(object = "backtest")
: Returns a list of matrices, one matrix for eachin.var
, where the value of each cell is the number of observations for thatin.var
andby.var
combination. Different fromcounts
because the marginal sums have been appended to the matrices.- naCounts
signature(object = "backtest")
: Returns a list of matrices, with one matrix for eachin.var
, where the value of each cell is the number of NA observations for thatin.var
andby.var
combination.- ci
signature(object = "backtest")
: Returns a matrix of confidence intervals for spreads.- turnover
signature(object = "backtest")
: Returns adata.frame
of the turnovers if thebacktest
isnatural
.- plot
signature(x = "backtest", y = "missing")
: Plots returns, cumulative returns, or turnover, when passed atype
argument ofreturn
,cumreturn
, orturnover
, respectively.
Author(s)
Kyle Campbell kyle.w.campbell@williams.edu
See Also
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")