1

スポット価格をダウンロードし、一連のインデックスの実現ボラティリティを計算するための私のコードは次のとおりです。

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

私が今やりたいのは、次のパラメーターを使用して、すべてのインデックスに対して関数EuropeanOptionを使用して一連のプット価格を計算することです。

  • 原資産価格-インデックスXTSからの今日の終値
  • 行使価格-昨日の指数XTSからの終値
  • インプライドボラティリティ-インデックスからの昨日の実現ボリューム。実現XTS
  • 他のすべてのパラメータは定数になります

applyなどを使用してさまざまな試みでこれを実装しようとしましたが、機能させることができませんでした。RQuantLibを使用する必要はありません。ヨーロッパのオプションの価格を計算する他の関数でこれが簡単にできる場合は、問題ありません。助けていただければ幸いです。

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

4

1 に答える 1

1

OK私はそれを動かしました

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)) 

最初の行はプットを計算し、2番目の行は価格のみを抽出してXTSに再フォーマットします。

于 2012-10-22T03:00:37.650 に答える