原文链接:http://tecdat.cn/?p=24480

此示例说明如何使用三种方法估计风险价值 (VaR) 并执行 VaR 回测分析。这三种方法是:点击文末“阅读原文”获取完整代码数据)。

  • 正态分布

  • 历史模拟

  • 指数加权移动平均线 (EWMA)

风险价值是一种量化与投资组合相关的风险水平的统计方法。VaR 衡量指定时间范围内和给定置信水平的最大损失量。

回测衡量 VaR 计算的准确性。使用 VaR 方法,计算损失预测,然后与第二天结束时的实际损失进行比较。预测损失和实际损失之间的差异程度表明 VaR 模型是低估还是高估了风险。因此,回测回顾数据并有助于评估 VaR 模型。

本示例中使用的三种估计方法在 95% 和 99% 的置信水平下估计 VaR。

加载数据并定义测试窗口

加载数据。本例中使用的数据来自标准普尔指数从 1993 年到 2003 年的时间序列收益率。

tik2rt(sp);

将估计窗口定义为 250 个交易日。测试窗口从 1996 年的第一天开始,一直持续到样本结束。

WinSze = 250;

对于 95% 和 99% 的 VaR 置信水平。

p = \[0.05 0.01\];

这些值意味着分别有至多 5% 和 1% 的概率发生的损失将大于最大阈值(即大于 VaR)。

使用正态分布方法计算 VaR

对于正态分布法,假设投资组合的损益呈正态分布。使用此假设,通过将每个置信水平的_z_分数乘以收益率的标准差来计算 VaR  。由于 VaR 回溯测试对数据进行追溯,因此“今天”的 VaR 是根据过去_N_  = 250 天(但不包括“今天”)的收益率值计算得出的 。

for t = TtWnowi = t - TsWidoSrt + 1;Esationdw = t-EtiWinwSze:t-1;gma = std(Returns(tmWinow));Noa95(i) = -Zscre(1)*Sima;Nrml99(i) = -Zsore(2)*Sigma;
endplot(DaeRtuns(TsWidw),\[Nrm95 oma99\])

正态分布方法也称为参数 VaR,因为它的估计涉及计算收益率标准差的参数。正态分布方法的优点是简单。然而,正态分布方法的弱点是假设收益率是正态分布的。正态分布方法的另一个名称是方差-协方差方法。

使用历史模拟方法计算 VaR

与正态分布方法不同,历史模拟 (HS) 是一种非参数方法。它不假设资产收益的特定分布。历史模拟通过假设过去的损益可以作为下一个收益期的损益分配来预测风险。“今天”的 VaR 计算为“今天” 之前 最后_N 次_收益率的 _第 p_个分位数 。

for t = Tstidowi = t - Tsidwtt + 1;Htrl95(i) = -qate(X,pVR(1));Hii99(i) = -qatie(X,pVaR(2));fiure;
plot(Dtr(Ttow),\[Hic95 Hstrl99\])

从上图可以看出,历史模拟曲线具有分段不变的轮廓。其原因是,在极端事件发生之前,量值在几天内不会发生变化。因此,历史模拟方法对波动率的变化反应缓慢。


点击标题查阅往期内容

Python蒙特卡罗(Monte Carlo)模拟计算投资组合的风险价值(VaR)

左右滑动查看更多

01

02

03

04

使用指数加权移动平均法 (EWMA) 计算 VaR

前两个 VaR 方法假设所有过去的收益率都具有相同的权重。指数加权移动平均 (EWMA) 方法分配不相等的权重,尤其是指数递减的权重。最近的收益率具有更高的权重,因为它们对“今天”收益率的影响比过去更远的收益率更大。大小估计窗口上的 EWMA 方差公式  是:

 是归一化常数:

为方便起见,我们假设一个无限大的估计窗口来近似方差:

实践中经常使用的衰减因子的值为0.94。这是本示例中使用的值。

启动 EWMA 设置标准偏差。

Laa = 0.94;for i = 2 : (Tsart-1)Sm2(i) = (1-Labda) * Rts(i-1)^2 + Lama * m2(i-1);

在测试窗口中使用 EWMA 来估计 VaR。

for t = TeWioEWMA95 (k) = -Zscre(1)*Sima;EWMA99(k) = -Zsoe(2)*Siga;
endplot(DR,\[EWMA95 EWMA99\])

在上图中,EWMA 对大(或小)收益率时期的反应非常迅速。

VaR回测

在本示例的第一部分中,使用三种不同的方法和两种不同的 VaR 置信水平在测试窗口上估计了 VaR。VaR 回测的目标是评估 VaR 模型的性能。95% 置信度的 VaR 估计值仅在大约 5% 的时间内被违反。VaR 失败的集群表明缺乏跨时间的独立性,因为 VaR 模型对不断变化的市场条件反应缓慢。

VaR 回测分析中常见的第一步是将收益率和 VaR 估计值绘制在一起。在 95% 的置信水平上绘制所有三种方法,并将它们与收益率进行比较。

Rtnet = Rrns(Tstnow);
DesTst   = Das(TsWnow);
fige;
plot

为了突出不同的方法如何对不断变化的市场条件做出不同的反应,您可以放大收益率值发生巨大和突然变化的时间序列。例如,大约在 1998 年 8 月:

Zm   = (Da >= da(1998,8,5)) & (D <= da(1998,10,31);br(D,);for i = 1 : sze(Vata,2)sts(D-0.5,VaRData(:,i),VaFt{i});plot(D(IN95),-N(nN95)

当收益为负 VaR 时,就会发生 VaR 失败。仔细观察 8 月 27 日至 8 月 31 日,会发现收益率显着下降。从 8 月 27 日起,EWMA 更密切、更准确地跟踪收益率趋势。因此,与正态分布方法(7次失败,蓝色)或历史模拟方法(8次失败,红色)相比,EWMA 的 VaR 失败(2)次失败,紫色)较少。

除了可视化工具,您还可以使用统计测试进行 VaR 回测。在此示例中,首先比较正态分布方法在 95% 和 99% VaR 水平下的不同测试结果。

bctet(etet,\[Nrml95 Noml99\]);
summary

摘要报告显示观察到的水平与定义的 VaR 水平足够接近。95% 和 99% VaR 水平至多具有期望失败,其中 N 是观察次数。失败率表明  VaR 水平在范围内,而  VaR 水平不精确并且低估了风险。运行所有支持的测试 (1-VaR_level) x _N_

test(vt)

95%的VaR通过了测试,如二项式和失败比例测试(TL、BIN和POF列)。99%的VaR没有通过这些相同的测试,如拒绝结果所示。在条件覆盖率独立性和间隔时间独立性(ci和tbfi列)中,两个置信度都被拒绝。这个结果表明,VaR的违反不是独立的,可能在短时间内有多次失败的时期。另外,一次失败可能会使其他失败在随后的日子里更有可能发生。

在两个 VaR 置信水平下对三种方法的投资组合运行相同的测试。

rbackest

结果和之前的结果差不多,在95%的水平上,结果基本可以接受。然而,在 99% 水平的结果通常是拒绝。关于独立性,大多数测试通过了条件覆盖独立性测试,连续几天测试独立性。请注意,所有测试都失败了独立性测试之间的时间间隔,它考虑了所有失败之间的时间。这个结果表明所有方法都存在独立性假设的问题。

为了更好地了解这些结果如何在市场条件下发生变化,请查看 2000 年和 2002 年的 95% VaR 置信水平。

n00 = yar(aet) == 2000);

I22 = (ea) == 2002);
v202 = rbks(RtrTt(n202

2000年,这三种方法都通过了所有的测试。但是,2002 年的测试结果大多是所有方法都被拒绝。EWMA 方法似乎在 2002 年表现更好,但所有方法都未能通过独立性测试。

要更深入地了解独立性测试,请查看条件覆盖独立性和失败间隔时间独立性2002 年的测试详细信息。运行各个测试功能。

cci

在 CCI 测试中,知道在时间_t_ -1没有失败的情况下,  在时间_t_发生失败 的概率 p 由下式给出01

在时间_t_发生失败 的概率 p ,知道在时间_t_ -1发生失败, 由下式给出11

从 测试结果中的N00N10,  N01N11列来看 ,  三种方法的_p_ 值 01都在 5% 左右,而_p_ 值 11 都在 20% 以上。因为有证据表明一个失败之后出现另一个失败的频率远高于 5%,所以这个 CCI 测试失败了。

在失败间隔时间独立性测试中,查看失败间隔时间分布的最小值、最大值和四分位数,在TBFMin、  TBFQ1、  TBFQ2、  TBFQ3、 列中 TBFMax

tbfi

对于 95% 的 VaR 水平,您预计失败之间的平均时间为 20 天,或每 20 天发生一次失败。但是,对于这三种方法,2002 年的失败间隔时间的中位数介于 5 到 7.5 之间。该结果表明,在一半的情况下,连续两次失败发生在 5 到 7 天内,比期望的 20 天要频繁得多。因此,会发生更多的测试失败。对于正态方法,第一个四分位数是 1,这意味着 25% 的失败发生在连续几天。

参考

Danielsson, J. _金融风险预测:预测市场风险的理论和实践_。威利财经,2012 年。


点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Matlab正态分布、历史模拟法、加权移动平均线 EWMA估计风险价值VaR和回测标准普尔指数 S&P500时间序列》。

点击标题查阅往期内容

R语言极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析

R语言GARCH-DCC模型和DCC(MVT)建模估计

Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言ARIMA-GARCH波动率模型预测股票市场苹果公司日收益率时间序列

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

R语言时间序列GARCH模型分析股市波动率

R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略

R语言用多元ARMA,GARCH ,EWMA, ETS,随机波动率SV模型对金融时间序列数据建模

R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析

R语言多元Copula GARCH 模型时间序列预测

R语言使用多元AR-GARCH模型衡量市场风险

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言用Garch模型和回归模型对股票价格分析

GARCH(1,1),MA以及历史模拟法的VaR比较

matlab估计arma garch 条件均值和方差模型

R语言POT超阈值模型和极值理论EVT分析

R语言极值推断:广义帕累托分布GPD使用极大似然估计、轮廓似然估计、Delta法

R语言极值理论EVT:基于GPD模型的火灾损失分布分析

R语言有极值(EVT)依赖结构的马尔可夫链(MC)对洪水极值分析

R语言POT超阈值模型和极值理论EVT分析

R语言混合正态分布极大似然估计和EM算法

R语言多项式线性模型:最大似然估计二次曲线

R语言Wald检验 vs 似然比检验

R语言GARCH-DCC模型和DCC(MVT)建模估计

R语言非参数方法:使用核回归平滑估计和K-NN(K近邻算法)分类预测心脏病数据

matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计

R语言基于Bootstrap的线性回归预测置信区间估计方法

R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型

Matlab马尔可夫区制转换动态回归模型估计GDP增长率

R语言极值推断:广义帕累托分布GPD使用极大似然估计、轮廓似然估计、Delta法

Matlab正态分布、历史模拟法、加权移动平均线 EWMA估计风险价值VaR和回测标准普尔指数 SP500时间序列...相关推荐

  1. 3.过滤——简单移动平均线概念(SMA)、SMA的假设、加权移动平均线概念(WMA)_1

    目录 移动平均线的概念(SMA) SMA的假设 噪音能消除吗? 加权移动平均线的概念(WMA) 移动平均线的概念(SMA) 上次我们谈到,在图像函数中添加了一个噪声函数,所以这里我们得到的噪声,定义为 ...

  2. matlab算sma,如何计算简单移动平均线(SMA)

    简洁明了移动平均线是外汇分析中应用的非常简单的最基础的一种移动平均线.一条简洁明了移动平均线是根据对以往数个阶段的收盘价的加总再除于阶段数而得到的一条较光滑的曲线图.咋听起来有点儿丈二和尚摸不着头脑的 ...

  3. Python 金融量化 均线系统交易策略专题(简单移动平均,加权移动平均,指数加权移动平均,异同移动平均MACD等解读与绘图)

    捕捉趋势最普遍的方法为移动平均线,根据求平均的方式不同,移动平均数又可分为简单移动平均数(Simple Moving Average, SMA),加权移动平均数(Weighted Moving Ave ...

  4. 股票技术指标详解--移动平均线(MA)

          移动平均线(MA) 移动平均线是应用非常广泛的一种技术指标.它构造简单,客观公正,不易人为操作骗线,受到很多股票投资者的青睐. 一.指数平均数的计算 所谓"移动平均线" ...

  5. matlab计算macd_[转载]4.K线图以及常用技术指标的Matlab实现-基于Matlab的量化投资...

    本次主要讲解用Matlab来实现K线图以及常用的技术指标. 相关前导帖子浏览: 系列帖子目录 Matlab的Bar图中Bar颜色灵活设置的一点总结[by faruto] [原创]坐标轴刻度标签旋转升级 ...

  6. 打造属于自己的量化投资系统2——利用backtrader创建简单移动平均线策略

    1.移动平均线定义 移动平均线(Moving Average,简称MA)是利用统计分析的方法,将一定时期内的价格加以平均并将不同时间的平均值连接起来,便得到了移动平均线.移动平均线是用来观察价格波动趋 ...

  7. matlab的技术指标,[转载]4.K线图以及常用技术指标的Matlab实现-基于Matl

    本次主要讲解用Matlab来实现K线图以及常用的技术指标. 相关前导帖子浏览: 系列帖子目录 Matlab的Bar图中Bar颜色灵活设置的一点总结[by faruto] [原创]坐标轴刻度标签旋转升级 ...

  8. 【vn.py】量化策略历史回测(基于本地csv数据)

    文章目录 写在前面 获取数据 csv数据导入 历史回测 写在后面 REF 写在前面 策略研发之后,为了检测我们策略的效果,不可能一上来就接入实盘,所以需要的就是通过历史数据对我们的策略进行检验,也就是 ...

  9. EWMA之——EWMA指数加权移动平均模型的Java实现

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79141435 具体代码如下: package com.lyz.storm.ewma ...

最新文章

  1. 深度学习面试必备的25个问题
  2. 分享一套超棒的iOS “空状态” (empty state) 界面UI设计
  3. chrome插件开发记录(1)——解决问题“清单文件缺失或不可读”
  4. urb数据结构【转】
  5. Thymeleaf选择器引用公共片段
  6. MGW——美团点评高性能四层负载均衡
  7. 目标检测算法图解:一文看懂RCNN系列算法
  8. qt实现点击出现窗口,点击其他任何地方窗口消失
  9. Strategy模式的一点思考
  10. 研究云计算与大数据分析处理领域建议看的学术论文列表
  11. php 微信 token 刷新,自动更新微信access token
  12. 详解 ManualResetEvent(转)
  13. 如何用C语言实现原码一位乘法器?这里可能有你想要的答案....
  14. 2021年电工(初级)考试试卷及电工(初级)考试平台
  15. [PTA]7-24 约分最简分式
  16. Bada学习-bada测试服务器
  17. 银行IT系统-整体架构
  18. (FPGA)verilog驱动RGB接口TFT液晶屏
  19. 亲测有效——C#制作图片Button
  20. 小程序源码:经典语录大全微信小程序下载多种分类语录

热门文章

  1. 力扣每日打卡8月24日打卡(459. 重复的子字符串,简单)
  2. 机器学习数据科学包(三)——Pandas实例:MovieLens电影数据分析
  3. oracle连接错误20,连接数据库时报错ORA-12520和ORA-12516错误
  4. linux修改网卡频率,Linux 设置网卡速率
  5. Ubuntu 20.04的SSH安装及启用root用户权限
  6. 【进阶必看】代码整洁之道
  7. [linux] 5 更改文件属性
  8. 二建建筑工程继续教育考试答案、二建房建继续教育题库从哪找?
  9. Boost Your Day with Helpful Emails: W5100S-EVB-Pico and ChatGPT API in Action
  10. 上拉电阻和下拉电阻选取经验大合集