matlab使用Copula仿真优化市场风险
使用Copula仿真优化市场风险
此示例演示了我们使用具有胖尾边缘分布的多变量copula模拟计算投资组合的风险价值和条件风险值(预期缺口)的项目过程。然后使用模拟来计算最优风险收益组合的有效前沿。
相关视频:Copula算法原理和R语言股市收益率相依性可视化分析
Copula算法原理和R语言股市收益率相依性可视化分析
,时长16:34
内容
- 导入支持历史数据集
- 可视化标准化价格
- 退货和边际分配
- Copula校准
- Copula模拟
- 计算单周期模拟VaR
- 组合优化
- 以给定的回报水平计算投资组合
导入支持历史数据集
使用Datafeed Toolbox的API导入我们将在本练习中建模的不同资产类别的市场数据
- SPY:标准普尔500指数
- EEM:新兴市场股票
- TLT:20年期国债(iShares Barclays)
- COY:美国高收益债券
- gsp:大宗商品(iPath S&P GSCI总回报指数)
- RWR:房地产(房地产投资信托指数)
names = { 'SPY','EEM','TLT','COY','GSP','RWR' };startPeriod = '2009-10-01' ;endPeriod = '2013-06-24' ;[date,prices,ds] = importFeedPrices(names,startPeriod,endPeriod);
可视化标准化价格
该图显示了每个指数的相对价格走势。每个指数的初始水平已经标准化为统一,以便于比较历史记录中的相对表现。
plot(date,normPrices),datetick('x'),xlabel('Date'),ylabel('Index Value');
title('Normalized Daily Index Closings');
边际分布
为准备copula建模,单独描述每个指数的回报分布。虽然每个回归序列的分布可以参数化地表征,但是使用具有广义Pareto尾部的分段分布来拟合半参数模型是有用的。这使用极值理论来更好地表征每个尾部的行为。
return = price2ret( );
tailFraction = 0.1;marginal {i} = paretotails(return(:,i),tailFraction,1 - tailFraction,'kernel');
SPY的边际分布:
分段分布有3个部分
-Inf <x <-0.0125822(0 <p <0.1):下尾,GPD(0.0380262,0.0084794)-0.0125822 <x <0.01286(0.1 <p <0.9):内插内核平滑cdf0.01286 <x <Inf(0.9 <p <1):上尾,GPD(0.0511828,0.00671413)
EEM的边际分布:
分段分布有3个部分
-Inf <x <-0.0186259(0 <p <0.1):下尾,GPD(-0.00289033,0.0126097)
-0.0186259 <x <0.0185703(0.1 <p <0.9):内插内核平滑cdf
0.0185703 <x <Inf(0.9 <p <1):上尾,GPD(0.0326916,0.00981892)
TLT的边际分布:
分段分布有3个部分
-Inf <x <-0.0132814(0 <p <0.1):下尾,GPD(0.137056,0.00414294)
-0.0132814 <x <0.0128738(0.1 <p <0.9):内插内核平滑cdf
0.0128738 <x <Inf(0.9 <p <1):上尾,GPD(0.027114,0.00583448)
COY的边际分布:
分段分布有3个部分
-Inf <x <-0.0105025(0 <p <0.1):下尾,GPD(0.47441,0.00485515)
-0.0105025 <x <0.011195(0.1 <p <0.9):内插内核平滑cdf
0.011195 <x <Inf(0.9 <p <1):上尾,GPD(0.177151,0.00500233)
GSP的边际分布:
分段分布有3个部分
-Inf <x <-0.0161561(0 <p <0.1):下尾,GPD(-0.0382412,0.0103328)
-0.0161561 <x <0.016506(0.1 <p <0.9):内插内核平滑cdf
0.016506 <x <Inf(0.9 <p <1):上尾,GPD(-0.134845,0.00778651)
RWR的边际分布:
分段分布有3个部分
-Inf <x <-0.0172097(0 <p <0.1):下尾,GPD(-0.00540337,0.0114245)
-0.0172097 <x <0.0168041(0.1 <p <0.9):内插内核平滑cdf
0.0168041 <x <Inf(0.9 <p <1):上尾,GPD(0.0302092,0.0117143)
得到的分段分布对象允许在CDF内部进行插值并在每个尾部进行外推(函数评估)。外推允许估计历史记录之外的分位数,这对于风险管理应用是非常宝贵的。在这里,我们将paretoTail分布产生的拟合与正态分布的拟合进行比较。
index = 1;dist = marginal {index};CLFh = probplot(gca,@ dist.cdf);set(h,'Color','r');title([ 'Semi-Parametric / Piecewise Probability Plot:' names {index}])
Copula拟合
我们使用统计工具箱功能来校准和模拟数据。
使用每日索引返回,使用函数copulafit估计高斯和t copula的参数。由于在标量自由度参数(DoF)变得无限大时,copula变为高斯copula,因此两个copula实际上属于同一族,因此共享线性相关矩阵作为基本参数。
统计工具箱软件提供了两种在copula校准的技术:以下代码段首先通过上面导出的分段半参数CDF将每日居中的回报转换为均匀变量。然后它将Gaussian和t copula拟合到转换后的数据:
[〜,ax] = plotmatrix(U); title('拟合Copula之前的转换回报');
估算copula的参数。注意从t copula校准获得的相对较低的自由度参数,表明明显偏离高斯情况。
[rho,DoF] = copulafit('t',U,'ApproximateML')rhoT =1 0.88229 -0.59693 0.40875 0.58027 0.814850.88229 1 -0.52371 0.38906 0.63175 0.73608-0.59693 -0.52371 1 -0.28404 -0.37285 -0.431140.40875 0.38906 -0.28404 1 0.2953 0.362070.58027 0.63175 -0.37285 0.2953 1 0.470970.81485 0.73608 -0.43114 0.36207 0.47097 1DoF =9.5014
估计的相关矩阵与线性相关矩阵相似但不相同
corrcoef(return) 每日收益的%线性相关矩阵ans =1 0.89745 -0.61065 0.4677 0.59174 0.837170.89745 1 -0.54167 0.45612 0.63322 0.76712-0.61065 -0.54167 1 -0.30377 -0.3918 -0.444290.4677 0.45612 -0.30377 1 0.33312 0.435250.59174 0.63322 -0.3918 0.33312 1 0.491610.83717 0.76712 -0.44429 0.43525 0.49161 1
Copula模拟
现在已经估计了copula参数,使用copularnd函数模拟联合依赖的均匀变量。
然后,通过外推Pareto尾部并对平滑后的内部进行插值,通过每个索引的逆CDF 将从copularnd导出的均匀变量转换为每日居中返回。这些模拟的居中回报与从历史数据集获得的回归一致。假设回报在时间上是独立的,但在任何时间点都具有由给定的copula引起的依赖性和等级相关性。
nPoints = 10000; %#模拟观测值
计算单周期模拟VaR
来自copula模型的多变量模拟可用于计算样本组合的风险值和预期不足(CVaR)。
视频:风险价值VaR原理与Python蒙特卡罗Monte Carlo模拟计算投资组合实例
风险价值VaR原理与Python蒙特卡罗Monte Carlo模拟计算投资组合实例
,时长10:03
%样本组合组件权重wts = [.1 .2 .3 .2 .1 .1]';%从模拟组件返回生成组合返回portReturns = R * wts;%计算VaRvar = -prctile(portReturns,1);cvar = -mean(portReturns(portReturns <-var));%与正态分布比较R2 = mvnrnd(mean(returns),cov(returns),10000);normReturns = R2 * wts;var2 = -prctile(normReturns,1);cvar2 = -mean(normReturns(normReturns <-var2));disp('Copula Value-at-Risk ----------------------');fprintf('99 %% VaR:%0.2f %% \ n99 %% CVaR:%0.2f %% \ n \ n',var * 100,cvar * 100);disp('多变量正常风险值---------');fprintf('99 %% VaR:%0.2f %% \ n99 %% CVaR:%0.2f %% \ n \ n',var2 * 100,cvar2 * 100);Copula风险价值----------------------99%的风险价值:1.78%99%CVaR:2.58%多变量正常风险值---------99%VaR:1.49%99%CVaR:1.71%
组合优化
以前,我们使用模拟回报来计算样本组合的风险。相反,我们可以找到一个最佳投资组合(权重),为我们提供一定的回报风险。我们可以使用PortfolioCVaR框架来完成此任务。
p = PortfolioCVaR('ProbabilityLevel',。99,'AssetNames',名称);p = p.setScenarios(R);portRet = p.estimatePortReturn(wts);CLFvisualizeFrontier(p,portRisk,portRet);
以给定的回报水平计算投资组合
wt = p.estimateFrontierByReturn(.05 / 100);TOC;pRisk = p.estimatePortRisk(wt);pRet = p.estimatePortReturn(wt);
经过的时间是0.635017秒。
matlab使用Copula仿真优化市场风险相关推荐
- matlab使用Copula仿真优化市场风险数据VaR分析
使用Copula建模相关默认值 此示例探讨了如何使用多因素copula模型模拟相关的交易对手违约. 相关视频:Copula算法原理和R语言股市收益率相依性可视化分析 Copula算法原理和R语言股市收 ...
- matlab 求集中度,matlab代写使用Copula仿真优化市场风险数据VaR分析
使用Copula建模相关默认值 此示例探讨了如何使用多因素copula模型模拟相关的交易对手违约. 鉴于违约风险敞口,违约概率和违约信息损失,估计交易对手组合的潜在损失.一个creditDefault ...
- matlab和ansys联合优化,MATLAB与HFSS联合建模与仿真优化详细介绍
[实例简介] 本文详细介绍了MATLAB与HFSS的联合优化方法,并介绍了基于粒子群算法的阻抗调制表面天线的副瓣优化流程 1. Tools→ Record script to file,保持类型选择( ...
- 基于仿真的优化 matlab ansys,桁架结构优化的MATLAB和ANSYS联合仿真
马学莉等 :桁架结构优化的 MATLAB和ANSYS联合仿真 桁架结构优化的 MATI,AB和 ANSYS联合仿真 马学莉, 杨海霞 [河海大学 工程力学 系. 南京 210098) [摘 要] 采用 ...
- matlab进气过程源程序,基于Matlab/WAVE的汽油机工作过程的联合仿真优化
内燃机的发展方向是在满足未来排放要求的前提下,获得最大的动力性和最好的经济性,并且要求在最短的时间内,以最少的成本设计出最优产品[1].这就要求内燃机的方案设计必须与仿真计算和优化计算结合起来,进行最 ...
- 美赛整理之理想直流伺服电机的simulink仿真优化
理想直流电机的simulink仿真优化 目录 理想直流电机的simulink仿真优化 一.simulink背景: 二.直流伺服电机的背景: 三.直流伺服电机的工作原理: 1.直流伺服电机的闭环控制原理 ...
- matlab光学几何光学模拟,matlab在几何光学仿真 实验中的应用.doc
matlab在几何光学仿真 实验中的应用 Matlab在几何光学仿真实验中的应用 秦华 冯东太 山东理工大学理学院 X 关注成功! 加关注后您将方便地在 我的关注中得到本文献的被引频次变化的通知! 新 ...
- Matlab实现弹道仿真
1 简介 在导弹的设计,研究中,弹道仿真是一项必不可少的实验工具.如何能够高效地运用MATLAB软件进行弹道全数字仿真是本文主要探讨的问题.针对这一问题,本文给出了一定条件下的弹道仿真结果,以此证明模 ...
- matlab异步电机仿真,基于MATLAB的异步电动机仿真
基于MATLAB的异步电动机仿真 目 录 1 引言1 2 异步电动机动态数学模型2 2.1异步电动机动态数学模型的性质2 2.2三相异步电动机的多变量非线性数学模型2 2.2.1电压方程3 2.2.2 ...
最新文章
- 可配置的逻辑块(CLB)
- 2017年最新基于Bootstrap 4 的专业、多用途响应式布局的系统模板
- 【转】彻底理解cookie,session,token
- html设置粗体字,如何在HTML输出中设置粗体字段
- php mysql服务器配置_PHPMYSQL服务器配置说明_PHP
- mysql5.6主从不报错_mysql5.6.26主从复制报错1050
- mui 怎么调用系统键盘_电脑开机关机的几种方法,计算机电源键鼠标键盘网络唤醒图文教程...
- funcode拍飞虫C语言报告,【逻辑游戏面试题】面试问题:funcode… - 看准网
- java算法按指定数量读取集合或数组中的值
- 规则引擎如何实现生产调度系统
- java fx scen,java基础:10.2 Java FX之显示图片
- linux c 获取进程p id,详解Linux获取线程的PID(TID、LWP)的几种方式
- 轮播图(火车轮播图)案例
- 全国各省10米分辨率的土地利用数据的制作与分享
- Node安装以及cnpm安装
- 编译原理学习 一 什么是编译程序
- (环境搭建+复现)74CMS模版注入+文件包含getshell
- Linux内核网络中的软中断ksoftirqd
- 关于广告精准投放的数据分析项目——用MYSQL实现
- Linux:cutycapt html转jpg、png、pdf