股票市场周期波动分析的MATLAB实现(1) |
您所在的位置:网站首页 › 预测股票的书 › 股票市场周期波动分析的MATLAB实现(1) |
【摘要】本文主要基于MATLAB结合霍华德·马克斯的《周期》一文实现对上证指数的分析。《周期》一书着重强调了股市周期的存在,而在周期中的买进和卖出位置就决定了投资收益。因而利用现有数据选择股票或者基金以及分析当前所处的周期位置是买卖的重点,基于此本文利用tushare的数据和MATLAB对市场数据进行分析,并建立投资策略。 说明 参考:周期.霍华德·马斯克著:刘建位译.北京:中信出版社,2019.2 高宏.股票市场周期波动的数学原理及分析方法 Tushare的MATLAB使用方式。通过Matlab SDK 获取数据 数据来源Tushare大数据开放社区。数据内容将扩大到包含股票、基金、期货、债券、外汇、行业大数据,同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台,为各类金融投资和研究人员提供适用的数据和工具。并提供python和Matlab的接口,便于研究者运用和处理数据。 笔者Tushare ID:407591 非常感谢Tushare社区为作为学生的我提供免费的数据接口和教程。 编程环境MATLAB2020b,只要2016b以上版本即可。 数据的选取《周期》中认为短期的经济周期受到心理、情绪和决策过程的影响,而同时一个公司的经营受到企业管理者的心态和管理方式影响,因此对于公司短期的股价存在较大的不确定性,无法显示出较为良好的周期。基于这个原因,本文的分析主要集中在指数基金和黄金这两类数据,其受到的影响因素相对较少,具有较好的稳定性。 数据导入和处理 文件下载在利用MATLAB获取Tushare进行数据的获取和处理前,需要下载相关程序包,连接为 Tushare的MATLAB程序包下载和使用说明 下载并解压后,在MATLAB中添加路径即可。 数据导入如下为建立API与网站通信的方式,其中xxxxx代表的是自己的接口token token = 'xxxxxxxxxxxxxxxx'; api = pro_api(token);利用以下代码即可获取上证指数的历史数据,其中第一个输入参数index_daily代表获取的数据类型为指数; ‘ts_code’, '000001.SH’代表数据在股票交易所的代码,000001.SH为上证指数的代码;后面两组数据分别代表获取数据的起始日期和截止日期。 shangzheng_his_day = api.query('index_daily', 'ts_code', '000001.SH', 'start_date', '19910715', 'end_date', '');如图为获取的上证数据截图,其中包括开盘,收盘,最低价,最高价等数据,本文默认以收盘价作为分析的主要对象。 利用plot函数绘制上证指数的价格如下:
因为假设上证指数服从指数趋势,所以绘制上证指数的对数数据代码和图如下: log_data=log(data); plot(log_data)
利用如下代码求解上证指数的峰值和谷值 for i=101:1:length(log_data)-100 [zhi_min_pre,num_min_pre]=min(log_data(i-100:i)); [zhi_min_post,num_min_post]=min(log_data(i:i+100)); [zhi_max_pre,num_max_pre]=max(log_data(i-100:i)); [zhi_max_post,num_max_post]=max(log_data(i:i+100)); if zhi_min_pre==zhi_min_post && (num_min_pre+i-101)==(num_min_post+i-1) j=j+1; num_min(j)=i; zhi_min(j)=zhi_min_pre; plot(i,zhi_min_pre,'g*') end if zhi_max_pre==zhi_max_post && (num_max_pre+i-101)==(num_max_post+i-1) k=k+1; num_max(k)=i; zhi_max(k)=zhi_max_pre; plot(i,zhi_max_pre,'r*') end end得到的示意图如下: 利用MATLAB 中的polyfit函数可以完成线性拟合,代码如下: x=1:length(log_data); x=x(:); [p_log,S_log] = polyfit(x,log_data,1);%线性拟合 [y_log_fit,delta_log] = polyval(p_log,x,S_log);利用上一节中的最低值和最高值的数据来确定上证指数的分布极值。为了风险较低,可以利用第二或者第三最低值作为选择的标准,最终绘制的图形如下。可以看出上证指数大部分时间是在最高线和最低线之间。 在建立回归直线后,分析上证指数沿回归直线的误差分布。从上证指数的误差分布可知,分布基本上服从正态分布。但是从误差分布也能看出来,在0线附近,负值比正值多,符合中国A股市场熊多牛少,熊长牛短的现实。 本文只要介绍了如何利用Tushare和MATLAB 对指数进行简单的分析,会后续制定相关的策略打下基础。 股票市场周期波动分析的MATLAB实现(2)将分析如何对比多种指数或者黄金等确定投资组合。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |