首页 > 其他分享 >MATLAB用GARCH-EVT-Copula模型VaR预测分析股票投资组合

MATLAB用GARCH-EVT-Copula模型VaR预测分析股票投资组合

时间:2024-03-22 23:44:05浏览次数:19  
标签:残差 Copula MATLAB GARCH 242 VaR EVT

全文链接:http://tecdat.cn/?p=30426

原文出处:拓端数据部落公众号

对VaR计算方法的改进,以更好的度量开放式基金的风险。本文把基金所持股票看成是一个投资组合,引入Copula来描述多只股票间的非线性相关性,构建多元GARCH-EVT-Copula模型来度量开放式基金的风险,并与其他VaR估计方法的预测结果进行比较。其次是将VaR引入到基金业绩评价中,构造RAROC指标来评价基金业绩,检验该评价指标的可行性。

GARCH-EVT-Copula 模型

首先用GARCH族模型拟合单项资产收益率,并提取标准化残差以满足极值理论的假设前提,接着对标准化残差的上下尾部分采用EVT理论中的广义帕累托分布GPD拟合,中间部分采用高斯核函数来估计其经验累积分布函数,从而得到标准化残差的边缘分布函数 ﹔然后选取适当的Copula 函数,构造多元标准化残差间的相关结构和联合分布函数。

Copula 函数参数估计

本文中,采用 伪极大似然估计(CML) 方法来估计 Copula 函数的参数 第一步,将金融资产对数收益率数据x通过经验分布函数转化为均匀变量(uniform variates) 第二步,利用密度似然函数估计Copula函数的参数:

image.png

GARCH-EVT-Copula 模型计算 VaR

本文将开放式基金看做是一个资产组合,以每只基金所持有的股票收益率为研究对象,从投资组合的角度利用多元GARCH-EVT-Copula模型来计算基金的VaR值 image.png

读取数据

image.png

   
[NUM,TXT,RAW]=xlsread('data')

Data=NUM

function [ output_args ] = GEC( input_args )

建立 GARCH 模型

   
nIndices = size(Data,2); % # 基金数量

spec(1:nIndices) = garchset('Distribution' , 'T' , 'Display', 'off', ...

'VarianceModel', 'GJR', 'P', 1, 'Q', 1, 'R', 1);%对每只基金设置garch模型的

残差自相关性检验

   
%残差自相关性检验

figure, subplot(2,1,1)

plot(residuals(:,1))

xlabel('时间'), ylabel('残差'), title ('N225收益率残差')

image.png

根据 FHS 提取标准化残差

   
title('N225标准化残差自相关图')

subplot(2,1,2)

autocorr(residuals(:,1).^2)

image.png

GDAXI

   
%残差自相关性检验

figure, subplot(2,1,1)

plot(residuals(:,2))

image.png

image.png

GSPC

image.png

FCHI

   
%残差自相关性检验

figure, subplot(2,1,1)

plot(residuals(:,4))

image.png

根据 FHS 提取标准化残差

image.png

采用 EVT 理论对标准残差估计累计分布函数

   

% Estimate the Semi-Parametric CDFs

nPoints= 200; % # of sampled points of kernel-smoothed CDF需要拟合的样本点

tailFraction = 0.1; % Decimal fraction of residuals allocated to each tail 小数保存位数

plot(y, (OBJ{index}.cdf(y + Q(2)) - P(2))/P(1))

[F,x] = ecdf(y); % empirical CDF

hold('on'); stairs(x, F, 'r'); grid('on')

legend('拟合的广义 Pareto 累计分布函数','经验累积分布函数','Location','SouthEast');

xlabel('Exceedance'); ylabel('Probability');

title(['标准化残差序列',num2str(index),'的上尾']);

image.png

   

for i=1:242

VaRp(i,:)=pPrice(i+T-242)*exp(VaR(i,:));

end

%%

figure

plot(1:242,pPrice(T-242+2:end),'r-',1:242,VaRp(1:242,1),'g-',1:242,VaRp(1:242,2),'b-',1:242,VaRp(1:242,3),'y-');

title('基金持股收盘价实际与 VaR 预测下限走势图')

image.png

   

plot(1:242, b(:,s),'go-',x,d,'ro',1:0.25:250,0,'b');

legend('未突破 VaR 预测下限','突破 VaR 预测下限','Location','Best' )

title('基金实际持股收盘价与 VaR 预测下限差额')

xlabel('时间日期')

ylabel('差额');

image.png

image.png

image.png

image.png

QQ截图202211071216503.png

QQ截图202211071216502.png

QQ截图20221107121650.png

image.png

收益率t分布%QQ图

image.png

image.png

image.png

image.png

image.png

image.png

N225收益率平方自相关图和偏相关图

image.png


QQ截图20220630000223.png

最受欢迎的见解

1.R语言对S&P500股票指数进行ARIMA + GARCH交易策略

2.R语言改进的股票配对交易策略分析SPY—TLT组合和中国股市投资组合

3.R语言时间序列:ARIMA GARCH模型的交易策略在外汇市场预测应用

4.TMA三均线期指高频交易策略的R语言实现

5.r语言多均线量化策略回测比较

6.用R语言实现神经网络预测股票实例

7.r语言预测波动率的实现:ARCH模型与HAR-RV模型

8.R语言如何做马尔科夫转换模型markov switching model

9.matlab使用Copula仿真优化市场风险

标签:残差,Copula,MATLAB,GARCH,242,VaR,EVT
From: https://www.cnblogs.com/tecdat/p/18090615

相关文章

  • 机器人路径规划:基于霸王龙优化算法(Tyrannosaurus optimization,TROA)的机器人路径规划(提
     一、机器人路径规划介绍移动机器人(Mobilerobot,MR)的路径规划是移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或局部已知的局部路径规划。随着科技的快速发展以及机器人的大量......
  • Matlab在高光谱遥感中的作用:从数据处理到决策支持
    光谱和图像是人们观察世界的两种方式,高光谱遥感通过“图谱合一”的技术创新将两者结合起来,大大提高了人们对客观世界的认知能力,本来在宽波段遥感中不可探测的物质,在高光谱遥感中能被探测。以高光谱遥感为核心,构建大范围、快速、远程、定量探测技术,已在矿物填图、土壤质量参......
  • SQL的nvarchar类型的中文内容,显示有乱码问题解决
    今天上线一个ASP项目升级为MVC的项目。原系统的ASP语言保存到SQLserver中nvarchar字段内容显示乱码了(显示有&#代码)。下图是SQLmanagementstudio的结果截图:左1列是经修正转化的可正常显示右1列OriStr为原数据库中nvarchar的内容。(ASP程序保存到数据库的原始数据)【产生乱......
  • Matlab绘图(1)通过属性检查器调整绘图
    Matlab图形属性检查器和其他语言的绘图不一样的是,Matlab允许我们通过非编程的方式来自定义调整绘图。下面介绍Matlab图形的构成以及几种调整绘图时的常用操作。图形构成什么是Figure当我们使用绘图函数创建图形时,总会弹出一个窗口以显示我们绘制的图形,这整个窗口我们把它叫做F......
  • 【Qt5】QVariant
    2024年3月22日,周五下午什么是QVariantQVariant是Qt框架中用于处理各种数据类型的通用类。它可以存储几乎任何类型的数据,并且能够在不同的Qt类之间进行类型转换。QVariant在Qt中被广泛用于处理不同的数据类型,包括基本数据类型(如整数、浮点数、布尔值等)、字符串、自定......
  • 数据分享|MATLAB、R基于Copula方法和k-means聚类的股票选择研究上证A股数据|附代码数
    全文链接:http://tecdat.cn/?p=31733最近我们被客户要求撰写关于Copula的研究报告,包括一些图形和统计输出。Copula方法是测度金融市场间尾部相关性比较有效的方法,而且可用于研究非正态、非线性以及尾部非对称等较复杂的相依特征关系因此,Copula方法开始逐渐代替多元GARCH模型的相......
  • Copula估计边缘分布模拟收益率计算投资组合风险价值VaR与期望损失ES|附代码数据
    全文链接:http://tecdat.cn/?p=24753最近我们被客户要求撰写关于风险价值的研究报告,包括一些图形和统计输出。在这项工作中,我通过创建一个包含四只基金的模型来探索copula,这些基金跟踪股票、债券、美元和商品的市场指数摘要然后,我使用该模型生成模拟值,并使用实际收益和模拟收......
  • MATLAB强化学习使用全解析+附代码(以DDPG PPO为例)
    Content建立动作和观测的数据结构创建环境根据观测、动作、环境step和reset函数创建环境测试环境是否符合要求网络创建Critic网络设置Critic网络训练参数Actor网络设置Actor网络训练参数创建智能体设置训练参数开始训练MATLAB强化学习step函数......
  • MATLAB学习笔记6:矩阵的操作1
    说了三篇各种矩阵的创建,终于进行到下一部分了,太不容易了,今天我们来说说矩阵的操作,说白了就是对矩阵进行一些我们平时计算需要在纸上操作的步骤,用软件肯定要方便得多1.矩阵的拼接这个还是很好理解嘛,比如两个3*3的矩阵就可以横着或者竖着拼接到一起,而4*5与4*6的矩阵就只能横着......
  • MATLAB 2023a助力自然语言处理,开启智能对话新时代
    在深度学习领域,MATLAB2023版深度学习工具箱以其完整的工具链和高效的运行环境,为研究人员和开发者提供了前所未有的便利。这一工具箱不仅集成了建模、训练和部署的全部功能,更以其简洁易用的语法和强大的算法库,为深度学习任务的快速实现铺平了道路。相较于Python等编程语言,M......