10

一連のインデックスの 20 日間の実現ボラティリティを計算したいと考えています。以下は、インデックス価格をダウンロードし、毎日のリターンと 20 日間の実現ボラティリティを計算するために使用するコードです。

library(quantmod)
library(PerformanceAnalytics)

tickers = c("^RUT","^STOXX50E","^HSI", "^N225", "^KS11")
myEnv <- new.env()
getSymbols(tickers, src='yahoo', from = "2003-01-01", env = myEnv)
index <- do.call(merge, c(eapply(myEnv, Ad), all=FALSE))

#Calculate daily returns for all indices and convert to arithmetic returns
index.ret <- exp(CalculateReturns(index,method="compound")) - 1
index.ret[1,] <- 0

#Calculate realized volatility
realizedvol <- rollapply(index.ret, width = 20, FUN=sd.annualized)

最後の行まで、すべてが非常に迅速に機能します。私はそれを計っていませんが、数秒しかかからないと予想しているのに対し、それは分単位です。実現ボラティリティを計算するより速い方法はありますか?

ありがとうございました。

4

1 に答える 1