这是我的代码,用于下载现货价格并计算一堆指数的已实现波动率。
library(quantmod)
library(PerformanceAnalytics)
library(RQuantLib)
tickers.index = c("^RUT","^STOXX50E","^HSI")
myEnv <- new.env()
getSymbols(tickers.index, src='yahoo', from = "2004-03-26", to = "2012-10-10", env = myEnv, adjust=TRUE)
index <- do.call(merge, c(eapply(myEnv, Ad), all=TRUE))
index <-na.locf(index)
#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 vol for all the indices
index.realized <- xts(apply(index.ret,2,runSD,n=20), index(index.ret))*sqrt(252)
index.realized[1:19,] <- 1
我现在要做的是使用以下参数每天为每个指数计算一系列PutO价格函数:
我尝试使用apply等进行各种尝试来实现这一点,但无法使其工作。我没有必要使用RQuantLib - 如果计算欧洲期权价格的其他功能可以使这更容易,我很好。非常感谢任何帮助。
谢谢。
答案 0 :(得分:1)
好的,我搞定了
puts.unwind <- mapply(EuropeanOption,"put",index,na.locf(lag(index,1),fromLast=TRUE),0,0,29/365,index.realized)
puts.unwind <- xts(matrix(as.numeric(puts.unwind[1,]),nrow(index),ncol(index)),index(index))
第一行计算掉货币,第二行只提取价格并重新格式化为XTS。