zl程序教程

您现在的位置是:首页 >  后端

当前栏目

衡量金融资产回报和波动溢出效应并应用于全球股票市场(Matlab代码实现)

MATLAB应用代码 实现 全球 溢出 效应 衡量
2023-09-14 09:05:23 时间

👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码


💥1 概述

  

  本文提供了一个简单直观的资产回报和/或波动性相互依赖的度量。特别是制定并检查了回报溢出和波动溢出的精确和独立度量。本文的框架有助于研究非危机和危机事件,包括溢出趋势和爆发;事实证明,两者在经验上都很重要。特别是,在对20世纪90年代初至今的19个全球股票市场的分析中,研究发现了回报溢出与波动溢出动态中的差异行为的显著证据:回报溢出呈现出缓慢增长的趋势,但没有爆发,而波动溢出则没有趋势,但有明显的爆发。

📚2 运行结果

部分代码:


load 'DYdata.mat'

iso2 = dyorder(:,(end-1):end);

% remove missing data

[dy, idx] = removeMissing(dy);

date_dy = datestr(idx,:);

%% DY estimation

startyear = 1991;
endyear   = 2019;
numobs =  (endyear - startyear + 1) * 12;

nvars = size(dy,2);
nlags = 12;
nsteps= 12;

useGIRF = 1;

Mdl = varm(nvars, nlags);

Mdl.SeriesNames = string(iso2);

% estimate VAR model
dy_sub = dy((end-numobs+1):end,:);
dyMdl = estimate(Mdl, dy_sub);

% Compute DY Table
[DYtable, Spillover, From, To, Net] = computeDYtable(dyMdl, nsteps, useGIRF);

DYtable = array2table([DYtable; [Net;NaN]']);

varnames = [iso2 repmat('         ',size(iso2,1),1);'FROM OTHERS'];
rownames = [iso2 repmat('         ',size(iso2,1),1);'TO OTHERS  ';'NET        '];

DYtable.Properties.VariableNames = cellstr(varnames);
DYtable.Properties.RowNames      = cellstr(rownames);

disp(DYtable);
       
%% Rolling DY

nlags = 3;
nsteps= 12;

window = 96;
[~,Spillroll_dy,~,~,~] = computeDYRolling(dy_sub,nlags,nsteps,window);

timeaxis = linspace(1991,2020,size(dy_sub,1));

figure;
plot(timeaxis,Spillroll_dy);
title('DY Rolling Index');
grid on

🎉3 参考文献

​[1]刘金全,王国志.金融周期与经济周期关联机制研究——基于DY动态溢出指数和时变格兰杰因果关系双重检验[J].暨南学报(哲学社会科学版),2021,43(04):84-99.

👨‍💻4 Matlab代码