运用MATLAB探索上证指数(1990-2022)基本特征:走势、损益、回报率、自相关

  • 本文部分参考《MATLAB金融风险管理师FRM》(姜伟生,Part2)第一章。
  • 本文将原书中的标普500指数改为上证指数,以更好的适应中国市场。
  • 本文纯为交流用途,不带有商业性质。

数据来源

来源于wind,获取1990-12-19到2022-10-12的上证指数日收盘价数据,共有7773条数据。
“上证日K.mat”文件中有两个数据,分别是7773x1 datetime的date_series和7773x1 double的price。

绘制上证指数走势图

load 上证日K.mat
index = 1;
figure(index)
index = index + 1;
plot(date_series, price)
datetick('x','yyyy','keeplimits')
ylim([0,max(price)*1.1])
xlabel('日期')
ylabel('上证指数')
title('上证指数走势图')
set(gcf,'color','white')

在这里插入图片描述
可见,从2007年开始,上证就突破了3000。到了现在(2022年),上证指数再一次跌破3000点。

这怎么行?所以2022年10月11日,中国证券报头版再度发文《我国经济基本面稳定向好,A股估值已被低估》。

绘制上证指数单日损益图

PnL = diff(price);
PnL = [NaN; PnL];

figure(index)
index = index + 1;
plot(date_series, PnL,'.'); hold on
plot(date_series,0*PnL,'LineWidth',2)
datetick('x','yyyy','keeplimits')
ylim([min(PnL)*1.1,max(PnL)*1.1])
xlabel('日期')
ylabel('上证指数单日损益')
title('上证指数单日损益图')
set(gcf,'color','white')

在这里插入图片描述
07-08年,和15年股灾的时候,单日损益绝对值比较大。而2020年疫情的冲击没有那么大。相比来说,标普500在疫情的时候波动更大。

figure (index)
index = index + 1;
subplot (1,2,1)
histogram(PnL,50);
xlabel('Daily P&L')
ylabel('Number of occurrences')
subplot(1,2,2)
histfit(PnL,50);
xlabel('Daily P&L')
ylabel('Number of occurrences')
set(gcf,'color','white')

在这里插入图片描述
很明显,P&L存在厚尾的特征。计算一些统计指标:

PnL(isnan(PnL)) = [];
disp(['Mean value of PnL: ', num2str(mean(PnL))])
disp(['Variance of PnL: ', num2str(var(PnL))])
disp(['Standard deviation of PnL: ', num2str(std(PnL))])
disp(['Skewness of PnL: ', num2str(skewness(PnL))])
disp(['Kurtosis of PnL: ', num2str(kurtosis(PnL))])

输出:

Mean value of PnL: 0.37651
Variance of PnL: 1646.9315
Standard deviation of PnL: 40.5824
Skewness of PnL: -0.44546
Kurtosis of PnL: 23.2634

回报率

[daily_log_return,interval] = tick2ret (price, date_series,...
'Continuous');
 
[daily_simple_return,interval] = tick2ret (price, ...
date_series,'Simple');
 
figure (index)
index = index + 1;
 
subplot(1,2,1)
plot(date_series(2:end), daily_log_return*100,'.'); hold on
% yline(0) % 2018b, new function to draw a reference line
x = date_series(2:end);
y = 0;
plot(x,y*ones(size(x)),'LineWidth',2)
datetick('x','yyyy','keeplimits')
ylim([min(daily_log_return)*110,max(daily_log_return)*110])
xlabel('日期')
ylabel('对数日收益率')
set(gcf,'color','white')
 
subplot(1,2,2)
plot(date_series(2:end), daily_simple_return*100,'.'); hold on
plot(x,y*ones(size(x)),'LineWidth',2)
datetick('x','yyyy','keeplimits')
ylim([min(daily_log_return)*110,max(daily_log_return)*110])
xlabel('日期')
ylabel('普通日收益率')
set(gcf,'color','white')

在这里插入图片描述
1992年5月21日,上海股票交易市场股价全部放开。当天的普通日收益率超105%,对数收益率也超70%,算是一大奇迹。

其他时候来看,在市场很不健全的90年代,日收益率超过10%的并不少见。但是到进入新世纪,这种现象基本上销声匿迹。

figure (index)
index = index + 1;
subplot (1,2,1)
histogram(daily_log_return*100,50);
xlabel('对数日收益率')
ylabel('频次')
xlim([-20,20])
subplot(1,2,2)
histfit(daily_log_return*100,50);
xlabel('对数日收益率')
ylabel('频次')
xlim([-20,20])
set(gcf,'color','white')

在这里插入图片描述
统计指标:

daily_log_return(isnan(daily_log_return)) = [];
disp(['Mean value of log_r: ', num2str(mean(daily_log_return))])
disp(['Variance of log_r: ', num2str(var(daily_log_return))])
disp(['Standard deviation of PnL: ', num2str(std(daily_log_return))])
disp(['Skew of log_r: ', num2str(skewness(daily_log_return))]) 
disp(['Kurt of log_r: ', num2str(kurtosis(daily_log_return))])
daily_log_return(isnan(daily_log_return)) = [];
disp(['Mean value of log_r: ', num2str(mean(daily_log_return))])
disp(['Variance of log_r: ', num2str(var(daily_log_return))])
disp(['Standard deviation of PnL: ', num2str(std(daily_log_return))])
disp(['Skew of log_r: ', num2str(skewness(daily_log_return))]) 
disp(['Kurt of log_r: ', num2str(kurtosis(daily_log_return))])

自相关与平方自相关

figure (index)
index = index + 1;
subplot (1,2,1)
autocorr(daily_log_return)
subplot (1,2,2)
autocorr(daily_log_return.^2)

在这里插入图片描述
可见,中国的数据并不是很支持“回报率无自相关”(左图),而“回报率平方有自相关”(右图)的特性。基于此,GARCH模型对于1990-2022上证指数的适用性值得探讨(获取去掉1990年代的样本之后,又符合GARCH的适用性了)。

后续部分

第一章后续部分,为简单波动率的估计。这一部分之前有些许了解,这里不再探讨。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值