r语言 - 使用性能分析包计算风险价值



我试图计算列表auf股票回报的风险价值。有 1000 个观察结果,但我想像下面这样计算:

VaR for observation:
1 to 500
2 to 501
3 to 502
4 to 503 
and 500 to 999

如您所见,结果将是 500 次计算。

为了解决这个问题,我尝试使用带有for循环的if条件。

喜欢这个:

if(x < 501 & y < 1000){for(i in KO.Returns){VaR(KO.Returns[x: y], p = 0.95, method = "historical")}}

如果我使用提到的代码,我会得到以下错误代码:

VaR计算为色谱柱产生不可靠的结果(反向风险( 1:

我认为问题出在你的数据上。指定窗口时,历史 VaR 的计算会对数据进行排序并挑选出第 95 个百分位数。有时您的数据在该百分位数中不会有负值,因此历史 VaR 毫无意义(您的损失不能是正值,损失总是负值(。因此错误。

我一直在尝试使用以下代码重现类似的错误:

library(PerformanceAnalytics)
data("edhec")
data = edhec[, 5]
valat = rollapply(data = data, width = 20,
                  FUN = function(x) VaR(x, p = 0.95, method = "historical"),
                  by.column = TRUE)
valat 

但是当我将置信水平更改为 p = 0.99 时,我停止收到错误。所以,也许你可以尝试改变你的置信水平,看看。

另请参阅此和此。

相关内容

  • 没有找到相关文章

最新更新