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;

程序结果如下:

相关推荐
会周易的程序员7 小时前
多模态AI 基于工业级编译技术的PLC数据结构解析与映射工具
数据结构·c++·人工智能·单例模式·信息可视化·架构
零售ERP菜鸟8 小时前
当业务战略摇摆不定:在变化中锚定不变的IT架构之道
信息可视化·职场和发展·架构·创业创新·学习方法·业界资讯
AC赳赳老秦17 小时前
前端可视化组件开发:DeepSeek辅助Vue/React图表组件编写实战
前端·vue.js·人工智能·react.js·信息可视化·数据分析·deepseek
kong790692818 小时前
Pandas简介
信息可视化·数据分析·pandas
爱喝可乐的老王19 小时前
数据分析实践--数据解析购房关键
信息可视化·数据分析·pandas·matplotlib
叫我:松哥19 小时前
基于 Flask 的音乐推荐与可视化分析系统,包含用户、创作者、管理员三种角色,集成 ECharts 进行数据可视化,采用混合推荐算法
开发语言·python·信息可视化·flask·echarts·pandas·推荐算法
qq_124987075320 小时前
基于Hadoop的黑龙江旅游景点推荐系统的设计与实现(源码+论文+部署+安装)
大数据·hadoop·分布式·python·信息可视化
ComputerInBook2 天前
伪彩图像处理原理
图像处理·人工智能·信息可视化·伪彩同像处理
叫我:松哥2 天前
基于Flask的智能服装搭配推荐系统,采用协同过滤和内容过滤的混合推荐算法,支持虚拟试穿和个性化建议
人工智能·python·算法·信息可视化·flask·scikit-learn·推荐算法