300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 运用MATLAB探索上证指数(1990-)基本特征:走势 损益 回报率 自相关

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

时间:2023-04-26 03:58:35

相关推荐

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

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

目录

数据来源绘制上证指数走势图绘制上证指数单日损益图回报率自相关与平方自相关后续部分

数据来源

来源于wind,获取1990-12-19到-10-12的上证指数日收盘价数据,共有7773条数据。

“上证日K.mat”文件中有两个数据,分别是7773x1 datetime的date_series和7773x1 double的price。

绘制上证指数走势图

load 上证日K.matindex = 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')

可见,从开始,上证就突破了3000。到了现在(),上证指数再一次跌破3000点。

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

绘制上证指数单日损益图

PnL = diff(price);PnL = [NaN; PnL];figure(index)index = index + 1;plot(date_series, PnL,'.'); hold onplot(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年,和股灾的时候,单日损益绝对值比较大。而疫情的冲击没有那么大。相比来说,标普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.37651Variance of PnL: 1646.9315Standard deviation of PnL: 40.5824Skewness of PnL: -0.44546Kurtosis 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) % b, new function to draw a reference linex = 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 onplot(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-上证指数的适用性值得探讨(获取去掉1990年代的样本之后,又符合GARCH的适用性了)。

后续部分

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。