计算R中差价(具有正值和负值)的波动率

时间:2013-05-22 03:45:39

标签: r quantmod volatility

我正在尝试使用R中的TTR包和volatility()函数来计算两个底层证券之间价差的滚动30天波动率。

到目前为止,这是我的代码的剥离版本(已经提取/清理数据,日期匹配等):

asset1 <-c(rnorm(100, mean=50))
asset2 <-c(rnorm(100, mean=50))
spread <-c(asset1-asset2)
vClose.spread <-volatility(spread, n=30, calc="close", N=252)

现在我得到的错误是:

Error in runCov(x, x, n, use = "all.obs", sample = sample, cumulative) : 
  Series contain non-leading NAs
In addition: Warning message:
In log(x) : NaNs produced

非常感谢任何协助或指示。

1 个答案:

答案 0 :(得分:3)

volatility计算价格时间序列的波动率: 它只适用于正数量。 您可以直接使用runSD

# Standard deviation of the spread
sqrt(252) * runSD( spread, 30 )
# Standard deviation of the change in spread
sqrt(252) * runSD( diff(spread), 30 )