[R-SIG-Finance] Quantstrat problem

Robert Schien robsch at robsch.eu
Fri Mar 8 20:21:33 CET 2013


Hello,

I am trying to get familiar with the quantstrat package. Therefore
I am following the documentation file quantstrat_I.pdf available at
r-programming.org.

I am trying the following code:


library(blotter)
library(quantstrat)
currency("USD")
stock("AMZN",currency="USD",multiplier=1)
getSymbols('AMZN', from='2005-01-01', to='2012-08-31', adjust=T)
qs.strategy <- "qsAMZN"
initPortf(qs.strategy,'AMZN', initDate='2004-12-31')
initAcct(qs.strategy,portfolios=qs.strategy, initDate='2004-12-31', initEq=1e6)
initOrders(portfolio=qs.strategy,initDate='2004-12-31')
strat<- strategy(qs.strategy)
strat <- add.indicator(strategy = strat, name = "SMA",
arguments = list(x = quote(Cl(mktdata)), n=7), label="SMA7")
strat <- add.indicator(strategy = strat, name = "SMA",
arguments = list(x = quote(Cl(mktdata)), n=30), label="SMA30")
strat <- add.signal(strat,name="sigCrossover",
arguments = list(columns=c("SMA7","SMA30"),relationship="gt"),
label="SMA7.gt.SMA30")
strat <- add.signal(strat,name="sigCrossover",
arguments = list(columns=c("Close","SMA7"),relationship="gt"),
label="cl.gt.SMA7")
strat <- add.signal(strat,name="sigCrossover",
arguments = list(columns=c("Close","SMA7"),relationship="lt"),
label="Cl.lt.SMA7")
strat <- add.rule(strat, name='sigFormula',
arguments = list(formula=" (SMA7 > SMA30) & (AMZN.Close > SMA30) ", orderqty=1000,
ordertype='market', orderside='long', pricemethod='market'),
type='enter', path.dep=TRUE)
out <- applyStrategy(strategy=strat , portfolios=qs.strategy)
updatePortf(Portfolio=qs.strategy,Dates=paste('::',as.Date(Sys.time()),sep=''))
updateAcct(name=qs.strategy,Dates=index(AMZN))
dummy <- sapply(X=index(AMZN),FUN=updateEndEq,Account=qs.strategy)

The last command produces an error:

Error in if (!all(i <= 0)) stop("only zeros may be mixed with negative subscripts") : 
  missing value where TRUE/FALSE needed


Did I overlook something?

Thanks in advance.

Robert



More information about the R-SIG-Finance mailing list