gpt4 book ai didi

r - R 中计算滚动实现波动率的更快方法

转载 作者:行者123 更新时间:2023-12-02 05:20:57 24 4
gpt4 key购买 nike

我想计算一组指数的滚动 20 天已实现波动率。这是我用来下载指数价格、计算每日 yield 和 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)

一切都进展得很快,直到最后一行。我没有计时,但它是以分钟为单位的,而我预计它只需要几秒钟。有没有更快的方法来计算已实现的波动率?

谢谢。

最佳答案

您可以在TTR包(由quantmod加载)中使用runSD,但您需要将runSD应用于每一列,转换的结果>应用回到xts对象,并手动对结果进行年度化。

realized.vol <- xts(apply(index.ret,2,runSD,n=20), index(index.ret))*sqrt(252)

关于r - R 中计算滚动实现波动率的更快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12823445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com