[R] inbuilt crossover function for backtesting

boredstoog boredstoog at mailinator.com
Mon Aug 10 18:02:24 CEST 2015


Thanks Joshua for the quick reply to the mail and once more sorry for
bothering with another doubt. So i have modified your code :) for
backtesting and this is the code

*
library(quantmod)
library(tseries)
require(quantstrat)
library(PerformanceAnalytics)
sym <- get(getSymbols('SPY'))["2013::"]
sym$sma10 <- SMA(Cl(sym),10) 
sym$sma30 <- SMA(Cl(sym),30)
buy <- sigCrossover("buy", SPY, c("sma10","sma30"), "gt") 
sell <- sigCrossover("sell", SPY, c("sma30","sma10"), "lt") 
if (buy==TRUE){
    sym$pos<-1
} else if (sell==TRUE){
   sym$pos<--1
} 
myReturn <- lag(sym$pos) * dailyReturn(sym)
charts.PerformanceSummary(cbind(dailyReturn(sym),myReturn))*


But the above code is returing this error

*Error in if (buy == TRUE) { : missing value where TRUE/FALSE needed
In addition: Warning message:
In if (buy == TRUE) { :
  the condition has length > 1 and only the first element will be used
> myReturn <- lag(sym$pos) * dailyReturn(sym)
Error in hasTsp(x) : attempt to set an attribute on NULL
> charts.PerformanceSummary(cbind(dailyReturn(sym),myReturn))
Warning message:
In to_period(xx, period = on.opts[[period]], ...) :
  missing values removed from data*

Any idea what is hapennning



--
View this message in context: http://r.789695.n4.nabble.com/inbuilt-crossover-function-for-backtesting-tp4710918p4710949.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list