我编写了以下函数来自动评估错过给定股票交易的最佳/最差日子的影响。不幸的是,该功能的一部分似乎失败了:
library(quantmod)
missingDays<- function(ticker,dmiss=10,type="best",period="days",fdate="2000-01-01",tdate=Sys.Date()) {
getSymbols(ticker,from=fdate,to=tdate) #quantmod to pull ticker info
d<-get(ls()[1])
x<-as.data.frame(periodReturn(Cl(d),period=period))
x<- x[order(x[1]),]
if(type=="best") {
(((mean(x[1:(length(x)-dmiss)],na.rm=TRUE)+1)^(251))-1)*100 #average daily return, annualized
} else {
(((mean(x[dmiss:(length(x))],na.rm=TRUE)+1)^(251))-1)*100 #average daily return, annualized
}
}
missingDays("^GSPC",10,type="best",period="daily",fdate="2000-01-01")
错误显然发生在这两行代码中:
d<-get(ls()[1])
x<-as.data.frame(periodReturn(Cl(d),period=period))
这很奇怪,因为当我直接运行它而不是在函数中运行时,它可以正常工作。它似乎无法识别d
为 xts 对象。
如果我错过了一些明显的事情,我深表歉意——我已经有一段时间了。
非常感谢您的帮助。