1

我正在尝试使用 R 中的 TTR 包和波动率()函数来计算两个标的之间价差的滚动 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

非常感谢任何帮助或指导。

4

1 回答 1

5

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 )
于 2013-05-22T08:00:39.213 回答