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

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

时间:2024-04-26 19:13:55浏览次数:26  
标签:残差 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/18160707

相关文章

  • R语言估计时变VAR模型时间序列的实证研究分析案例|附代码数据
    原文链接: http://tecdat.cn/?p=3364原文出处:拓端数据部落公众号 最近我们被客户要求撰写关于时变VAR模型的研究报告,包括一些图形和统计输出。加载R包和数据集 加载包后,我们将此数据集中包含的12个心情变量进行子集化:  mood_data<-as.matrix(symptom_data$data[,......
  • Matlab转python的索引问题
    python中numpy库可以实现类似matlab多维数组的运算.但两者在索引方式上存在一些差异.这是需要注意的.例如:%定义一个4*4矩阵A=1:16;A=reshape(A,[4,4]);%提取2*2的子矩阵a=A([1,4],[1,4])%得到一个2*2矩阵:%[A(1,1)A(1,4);%A(4,1)A(4,4)]但是python中则不......
  • m基于Yolov2深度学习网络的人体喝水行为视频检测系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下: 输入测试avi格式视频    结果如下:     2.算法涉及理论知识概要       构建基于YOLOv2深度学习网络的人体喝水行为视频检测系统涉及多个关键技术环节,包括目标检测模型架构设计、特征提取、锚框机制、......
  • Matlab常用语句
    clear %用于清除MATLAB工作空间中的所有变量close %用于关闭所有图形窗口clc %用于清空命令窗口的文本内容。gridon;%打开网格线//------------------------分隔符------------------------heaviside(t)%生成单位阶跃函数rectpuls %生成矩形脉冲信号的函数......
  • R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究分析案例
    原文链接:http://tecdat.cn/?p=3186原文出处:拓端数据部落公众号 本文显示了如何基于潜在的ARMA-GARCH模型(当然也涉及更广泛意义上的QRM)来拟合和预测风险价值(VaR)。从ARMA-GARCH过程模拟(log-return)数据我们考虑使用t分布的ARMA(1,1)-GARCH(1,1)过程。模拟一个序列(用于说明目的)。......
  • dotnet 警惕 C# 的 is var 写法
    本文将和大家介绍C#语言设计里面,我认为比较坑的一个语法。通过isvar的写法,会让开发者误以为null是不被包含的,然而事实是在这里的var是被赋予含义的,将被允许null通过判断逻辑,于是就会让开发者收到了奇怪的空异常比如看看以下的代码,大家猜猜控制台是否会输出IFoo?foo......
  • 基于FPGA的图像累积直方图verilog实现,包含tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览    2.算法运行软件版本Vivado2019.2 matlab2022a 3.算法理论概述      图像累积直方图是一种重要的图像特征表示方法,它统计了图像中像素值累加分布的情况,广泛应用于图像增强、对比度调整、颜色校正、图像分割、目标检测等领域。FP......
  • matlab教程
    参考:https://ww2.mathworks.cn/help/参考:https://mp.weixin.qq.com/s?__biz=MzI2ODc4NTgwNQ==&mid=2247487647&idx=1&sn=a208a363188d116ee857e669347f261e&chksm=eaeb117ddd9c986b37995618b1f8f99acbfd219ad535ad9c3be24955eaf97eab8ddffacb8ac7&scene=27......
  • R语言用GARCH模型波动率建模和预测、回测风险价值 (VaR)分析股市收益率时间序列|附代
    原文链接:http://tecdat.cn/?p=26897最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出。风险价值(VaR)是金融风险管理中使用最广泛的市场风险度量,也被投资组合经理等从业者用来解释未来市场风险风险价值(VaR)VaR可以定义为资产在给定时间段内以概率θ......
  • 基于PSO优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
    1.算法运行效果图预览PSO优化前:      PSO优化后:   2.算法运行软件版本MATLAB2022A  3.算法理论概述       时间序列回归预测是数据分析的重要领域,旨在根据历史数据预测未来时刻的数值。近年来,深度学习模型如卷积神经网络(ConvolutionalNe......