从 ARMA(1,1) - MCsGARCH(1,1) 模型模拟 returns

Simulating returns from ARMA(1,1) - MCsGARCH(1,1) model

如何在 R 中找到预期的日内 return ARMA(1,1) - MCsGARCH(1,1) 模型?

模型的示例代码在http://www.unstarched.net/2013/03/20/high-frequency-garch-the-multiplicative-component-garch-mcsgarch-model/

我认为你在这里混淆了一些东西。没有 "expected intraday return",对于 ARMA(1,1) - MCsGARCH(1,1),只有以下 period/day(sigma,正如您已经在评论)。

假设 你指的是你提供的网站上的最后一个图,这意味着你想知道 VaR (风险值),它是用估计过程中的波动率计算出来的。

如果您查看用于提供情节的代码:

D = as.POSIXct(rownames(roll@forecast$VaR))
VaRplot(0.01, actual = xts(roll@forecast$VaR[, 3], D), VaR = xts(roll@forecast$VaR[,1], D))

您可以看到从对象 roll 中获取的 VaR(和 returns)。在你完成 运行 模拟之后(不更改示例中的任何变量名称),你可以将它们存储在一个变量中供以后使用,如下所示:

my_VaR = roll@forecast$VaR[, 1]
my_act = roll@forecast$VaR[, 3]

其中 VaR, 1] 是 VaR 的第一个列表元素。如果你检查 str(roll) 你会在最后看到很多,那就是:

  • 元素1:代表alpha(1%) VaR
  • 元素 2:代表 alpha(5%) VaR 和
  • 元素3:代表实现return.

针对您在评论中所说的内容:
查看变量 df(从 as.data.frame(roll) 生成,可能包含您要查找的内容。


I want to compare the expected return and the actual return.

这似乎更倾向于 Cross Validated 的方向,但我会尽量给出一个简要的概述。

GARCH 模型主要用于波动率预测和了解时间序列的波动率动态(and/or 多元模型中的相关动态)。现在由于方差是 of the second moment,转换为平方,它总是正的。但是 return 总是积极的吗?当然不是。这意味着波动率预测让我们了解下一时期 return 的大小,但那时我们不知道它是正值 return 还是负值 return。这就是风险价值 (VaR) 发挥作用的时候。

取e。 G。拥有一项资产的投资组合经理。使用 GARCH 模型,他可以预测下一时期的波动性(假设他使用每日 return 系列,那么明天就是)。交易者关注他们投资组合的风险,它比潜在机会受到更密切的监控。因此,根据波动率预测,他可以很好地猜测明天资产贬值的风险。假设 95%-VaR 为 1,000 欧元意味着,明天的风险(或损失)有 95% 的概率不会超过 1,000 欧元。概率越高,确定性越低,因此 99%-VaR 会更高,例如。 G。 1,500 欧元。

总结一下: 没有 "expected" return,只有波动率预测对于明天,它给出了明天 return 会如何 的倾向(永远不确定)。通过 VaR,这可以用于风险管理。这就是您提供的文章最后一部分所做的工作。


what is the difference of ugarchsim and roll function?

您可以查看 rugarch package 的文档,其中对每个函数及其属性进行了更详细的解释。快速浏览一下,如果您想将模型拟合到完整的时间序列,我会使用 ugarchsim。最后的标准差就是下一期的预测。 ugarchroll 的文档说:

ugarchroll-methods {rugarch} function: Univariate GARCH Rolling Density Forecast and Backtesting

Description
Method for creating rolling density forecast from ARMA-GARCH models with option for refitting every n periods with parallel functionality. is used aswell for forecasting as for backtesting.

如果您想测试您的模型在过去的表现如何。只需要e。 G。提供的前 300 个数据点并给出数据点 301 的预测。然后将 VaR(95% 或 99%)与数据点 301 的实现 return 进行比较。然后重新拟合模型,给出数据点 302 的预测依此类推。


编辑:添加了评论中问题的答案。