quantmod (version 0.4.17)

tradeModel: Simulate Trading of Fitted quantmod Object

Description

Simulated trading of fitted quantmod object. Given a fitted model, tradeModel calculates the signal generated over a given historical period, then applies specified trade.rule to calculate and return a tradeLog object. Additional methods can then be called to evaluate the performance of the model's strategy.

Usage

tradeModel(x,
           signal.threshold = c(0, 0),
           leverage = 1,
           return.model = TRUE, 
           plot.model = FALSE,
           trade.dates = NULL,
           exclude.training = TRUE,
           ret.type = c("weeks", "months", "quarters", "years"),
           ...)

Arguments

x

a quantmod object from buildModel

signal.threshold

a numeric vector describing simple lower and upper thresholds before trade occurs

leverage

amount of leverage to apply - currently a constant

return.model

should the full model be returned?

plot.model

plot the model?

trade.dates

specific trade interval - defaults to full dataset

exclude.training

exclude the period trained on?

ret.type

a table of period returns

additional parameters needed by the underlying modelling function, if any

Value

A quantmodResults object

Details

Still highly experimental and changing. The purpose is to apply a newly contructed model from buildModel to a new dataset to investigate the model's trading potential.

At present all parameters are very basic. The near term changes include allowing for a trade.rule argument to allow for a dynamic trade rule given a set of signals. Additional the application of variable leverage and costs will become part of the final structure.

Any suggestions as to inclusions or alterations are appreciated and should be directed to the maintainer of the package.

See Also

specifyModel buildModel

Examples

Run this code
# NOT RUN {
m <- specifyModel(Next(OpCl(QQQQ)) ~ Lag(OpHi(QQQQ)))
m.built <- buildModel(m,method='rpart',training.per=c('2007-01-01','2007-04-01'))

tradeModel(m.built)
tradeModel(m.built,leverage=2)
# }

Run the code above in your browser using DataCamp Workspace