私は次の関数を作成して、特定の株式の取引の最良/最悪の日を逃した場合の影響を自動的に評価します。残念ながら、関数の一部が失敗しているようです。
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")
エラーは、次の2行のコードで明らかに発生します。
d<-get(ls()[1])
x<-as.data.frame(periodReturn(Cl(d),period=period))
これは非常に奇妙です。関数ではなく直接実行すると、正常に機能するからです。d
xtsオブジェクトとして識別できないようです。
明らかなことを見逃してしまった場合は、お詫び申し上げます。
助けてくれてありがとう。