VaR回测流程
这个例子展示了一个风险值(VaR)回溯测试工作流和VaR回溯测试工具的使用。有关VaR回测的更全面示例,请参见风险价值估计和回测.
步骤1。加载VaR回测数据。
使用VaRBacktestData.mat
文件将VaR数据加载到工作区中。这个例子使用EquityIndex
,Normal95
,Normal99
数字数组。这些数组是股权回报,对应的VaR数据在95%和99%的置信水平是由正态分布(方差-协方差方法)产生的。看到风险价值估计和回测关于如何生成此VaR数据的示例。
负载(“VaRBacktestData”) disp([股票指数(1:5)Normal95(1:5) Normal99(1:5)]
-0.0043 0.0196 0.0277 -0.0036 0.0195 0.0276 -0.0000 0.0195 0.0275 0.0298 0.0194 0.0275 0.0023 0.0197 0.0278
第一列显示了前三天的三次损失,但这些损失都没有超过相应的VaR(第2列和第3列)。当损失(收益的负数)超过VaR时,VaR模型就失效了。
步骤2。生成VaR回测图。
使用情节
函数可视化VaR回测数据。这种类型的可视化是执行VaR回测分析时常见的第一步。
plot(日期,[EquityIndex -Normal95 -Normal99])“VaR val”)包含(“日期”) ylabel (“返回”)传说(“返回”,“VaR 95%”,“VaR 99%”)
步骤3。创建一个varbacktest
对象。
创建一个varbacktest
在95%和99%置信水平下的股权回报和var的目标。
vbt = varbacktest(股票指数,[Normal95 Normal99],...“PortfolioID”,“标普”,...“VaRID”, {“Normal95”“Normal99”},...“VaRLevel”[0.95 - 0.99]);disp (vbt)
varbacktest with properties: PortfolioData: [1043x1 double] VaRData: [1043x2 double] PortfolioID: "S&P" VaRID: ["Normal95" "Normal99"] VaRLevel: [0.9500 0.9900]
步骤4。运行总结报告。
使用总结
函数获取观察次数、失败次数和其他简单指标的摘要。
总结(vbt)
ans =表2×10PortfolioID VaRID VaRLevel ObservedLevel观察故障预计比FirstFailure失踪 ___________ __________ ________ _____________ ____________ ________ ________ ______ ____________ _______ " 标普”“Normal95”57 52.15 - 1.093 0.95 - 0.94535 1043 58 0”标普Normal99”17 10.43 - 1.6299 0.99 - 0.9837 1043 173 0
第5步。运行所有测试。
使用runtests
函数一次性显示最终测试结果。
runtests (vbt)
ans =2×11表PortfolioID VaRID VaRLevel TL Bin POF TUFF CC CCI TBF TBFI ___________ __________ ________ ______ ______ ______ ______ ______ ______ ______ ______ "S&P" "Normal95" 0.95绿色接受接受接受接受接受拒绝拒绝"S&P" "Normal99" 0.99黄色拒绝接受接受接受接受接受接受接受接受接受接受
步骤6。运行单独的测试。
运行所有测试后,您可以研究特定测试的详细信息。例如,使用tl
函数运行交通灯测试。
tl (vbt)
ans =2×9表PortfolioID VaRID VaRLevel TL TypeI增加观测概率失败 ___________ __________ ________ ______ ___________ _______ ________ ____________ ________ " 标普”“Normal95”0.95绿色0.77913 - 0.26396 0 1043 57“标普”“Normal99黄色“0.99 0.97991 0.03686 0.26582 1043年17
步骤7。为多个投资组合创建VaR回溯测试。
您可以为不同的投资组合创建VaR回溯测试,或者在不同的时间窗口上创建相同的投资组合。在原始测试窗口的两个不同子窗口上运行测试。
Ind1 =年份(日期)<=2000;Ind2 =年(日期)>2000;vbt1 = varbacktest(EquityIndex(Ind1),[Normal95(Ind1,:) Normal99(Ind1,:)],...“PortfolioID”,“标准普尔,1999 - 2000”,...“VaRID”, {“Normal95”“Normal99”},...“VaRLevel”[0.95 - 0.99]);vbt2 = varbacktest(EquityIndex(Ind2),[Normal95(Ind2,:) Normal99(Ind2,:)],...“PortfolioID”,“标准普尔,2001 - 2002”,...“VaRID”, {“Normal95”“Normal99”},...“VaRLevel”[0.95 - 0.99]);
步骤8。显示两个投资组合的摘要报告。
使用总结
函数显示两个组合的摘要。
Summary = [Summary (vbt1);总结(vbt2)];disp(总结)
PortfolioID VaRID VaRLevel ObservedLevel观察故障预计比FirstFailure失踪 ________________ __________ ________ _____________ ____________ ________ ________ ______ ____________ _______ " 标准普尔,1999 - 2000”“Normal95“0.95 0.94626 521年28日26.05 - 1.0749 58 0”标准普尔,1999 - 2000”“Normal99“0.99 - 0.98464 521 173 5.21 - 1.5355 0”标准普尔,2001 - 2002”“Normal95“0.95 0.94444 522年29日26.1 - 1.1111 35 0”标准普尔,2001 - 2002年“Normal99 0.99 - 0.98276 5.22 - 1.7241 522 9 45 0
第9步。为两个投资组合运行所有测试。
使用runtests
函数显示两个组合的最终测试结果。
结果=[运行测试(vbt1);运行测试(vbt2)];disp(结果)
PortfolioID VaRID VaRLevel TL Bin POF TUFF CC CCI TBF TBFI ________________ __________ ______________ ____________ ____________ ____________ ______ "S&P, 1999-2000" "Normal95" 0.95绿色接受接受接受接受接受接受接受接受拒绝拒绝"S&P, 1999-2000" "Normal99" 0.99绿色接受接受接受接受接受接受接受接受接受接受"S&P, 2001-2002" "Normal95" 0.95绿色接受接受2001-2002" "Normal99" 0.99黄色收收收收收收收收收
另请参阅
varbacktest
|tl
|箱子
|pof
|凝灰岩
|cc
|cci
|tbf
|tbfi
|总结
|runtests