MATLAB计算投资组合的cVaR和VaR

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

MATLAB代码如下:

Matlab 复制代码
clc;close all;clear all;warning off;%清除变量
rand('seed', 100);
randn('seed', 100);
format long g;

% 随机产生数据(例如,投资组合的日收益率)
nSamples = 1000; % 设置样本数量
returns = normrnd(0, 0.01, [nSamples, 1]); % 正态分布的随机收益率

% 定义置信水平
confidenceLevel = 0.95; % 95%的置信水平

% 对收益率进行排序
[sortedReturns, sortIndices] = sort(returns);

% 计算VaR(Value-at-Risk)
VaRIndex = round(confidenceLevel * nSamples);
VaR = sortedReturns(VaRIndex);

% 计算cVaR
% cVaR是损失超过VaR的期望值
cVaRIndexStart = VaRIndex + 1;
cVaR = mean(sortedReturns(cVaRIndexStart:end));

% 输出结果
fprintf('VaR at %d%% confidence level is: %.4f\n', round(confidenceLevel*100), VaR);
fprintf('cVaR at %d%% confidence level is: %.4f\n', round(confidenceLevel*100), cVaR);

% 数据可视化
figure;
histogram(returns, 'Normalization', 'pdf', 'BinMethod', 'auto');
hold on;
% 绘制VaR和cVaR线
xlimits = xlim;
plot([VaR, VaR], ylim, 'r--', 'LineWidth', 2);
% text(VaR, ylim(2)*0.7, sprintf('VaR: %.4f', VaR), 'Color', 'r');

% cVaR是一个期望值,所以我们用一个点来表示它在直方图上的位置
plot(cVaR, 0, 'bo', 'MarkerSize', 10, 'MarkerFaceColor', 'b');
% text(cVaR, ylim(2)*0.6, sprintf('cVaR: %.4f', cVaR), 'Color', 'b');

% 设置图表标题和坐标轴标签
title('投资组合收益率分布与VaR、cVaR');
xlabel('收益率');
ylabel('概率密度');

% 释放hold状态
hold off;

程序结果如下:

相关推荐
计算机编程-吉哥20 小时前
大数据毕业设计 基于大数据的计算机岗位招聘数据可视化分析系统 计算机毕业设计【项目+论文+安装调试】
大数据·机器学习·信息可视化·数据分析·毕业设计·计算机毕业设计选题·大数据毕业设计选题推荐
babe小鑫2 天前
企业客户数据分级防护发展指南
大数据·信息可视化·数据分析
愚公搬代码2 天前
【愚公系列】《数据可视化分析与实践》005-数据采集(常用数据集的获取)
信息可视化
jiayong232 天前
Excel 核心功能详解
信息可视化·excel
babe小鑫2 天前
大专市场调查与统计分析专业学习指南
大数据·学习·信息可视化·数据挖掘
-To be number.wan2 天前
Python数据分析:pyecharts可视化
python·信息可视化·数据分析
电商API_180079052472 天前
电商评论数据爬虫:情感分析与数据可视化实战
大数据·人工智能·爬虫·信息可视化·数据分析
eWidget2 天前
数据可视化进阶:Seaborn 柱状图、散点图与相关性分析
数据库·python·信息可视化·kingbase·数据库平替用金仓·金仓数据库
拓端研究室3 天前
2026AI医疗行业专题报告:智能医疗器械、手术机器人、脑机接口、可穿戴设备|附240+份报告PDF、数据、可视化模板汇总下载
信息可视化
谁不学习揍谁!4 天前
大数据可视化看板:基于电子竞技行业数据大数据可视化分析(详细源码文档等资料)
人工智能·python·信息可视化·stylus