当前位置:   article > 正文

MATLAB计算投资组合的cVaR和VaR

MATLAB计算投资组合的cVaR和VaR

计算条件风险价值 (Conditional Value-at-Risk, cVaR) 是一种衡量投资组合风险的方法,它关注的是损失分布的尾部风险。

MATLAB代码如下:

  1. clc;close all;clear all;warning off;%清除变量
  2. rand('seed', 100);
  3. randn('seed', 100);
  4. format long g;
  5. % 随机产生数据(例如,投资组合的日收益率)
  6. nSamples = 1000; % 设置样本数量
  7. returns = normrnd(0, 0.01, [nSamples, 1]); % 正态分布的随机收益率
  8. % 定义置信水平
  9. confidenceLevel = 0.95; % 95%的置信水平
  10. % 对收益率进行排序
  11. [sortedReturns, sortIndices] = sort(returns);
  12. % 计算VaR(Value-at-Risk)
  13. VaRIndex = round(confidenceLevel * nSamples);
  14. VaR = sortedReturns(VaRIndex);
  15. % 计算cVaR
  16. % cVaR是损失超过VaR的期望值
  17. cVaRIndexStart = VaRIndex + 1;
  18. cVaR = mean(sortedReturns(cVaRIndexStart:end));
  19. % 输出结果
  20. fprintf('VaR at %d%% confidence level is: %.4f\n', round(confidenceLevel*100), VaR);
  21. fprintf('cVaR at %d%% confidence level is: %.4f\n', round(confidenceLevel*100), cVaR);
  22. % 数据可视化
  23. figure;
  24. histogram(returns, 'Normalization', 'pdf', 'BinMethod', 'auto');
  25. hold on;
  26. % 绘制VaR和cVaR线
  27. xlimits = xlim;
  28. plot([VaR, VaR], ylim, 'r--', 'LineWidth', 2);
  29. % text(VaR, ylim(2)*0.7, sprintf('VaR: %.4f', VaR), 'Color', 'r');
  30. % cVaR是一个期望值,所以我们用一个点来表示它在直方图上的位置
  31. plot(cVaR, 0, 'bo', 'MarkerSize', 10, 'MarkerFaceColor', 'b');
  32. % text(cVaR, ylim(2)*0.6, sprintf('cVaR: %.4f', cVaR), 'Color', 'b');
  33. % 设置图表标题和坐标轴标签
  34. title('投资组合收益率分布与VaR、cVaR');
  35. xlabel('收益率');
  36. ylabel('概率密度');
  37. % 释放hold状态
  38. hold off;

程序结果如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/438403
推荐阅读
相关标签
  

闽ICP备14008679号