怎么用SQL与EXCEL 分析大盘历年走势(图文并茂)
近期的A股走势,跌跌不休,弱势震荡下行。跌破了3000点政策底,下探2700点附近,李大霄喊钻石底,可适当买入A股,然而外资抄底A股被套,私募基金产品净值跌破清盘线比比皆是,俗话说“五穷六绝七翻身”,那么 A股七月份将何去何从。本文根据A股的历年走势,通过数据分析和描述性统计,回顾历史走势,预测未来,历史不是简单的重复,或许通过数据分析,让我们的投资更加理性,不再那么孤注一掷,投资就是投大概率事件。
- 如何提取上证指数?
首先提取上证指数的历年走势图,以月份为主键,纵向比较 。而提取数据的平台是通过Uqer 平台,通联数据做量化交易的接口,其代码如下:
data9=DataAPI.MktIdxmGet(beginDate=u"20000101",endDate=u"20180718",indexID=u"000001.ZICN",ticker=u"",field=u"",pandas="1")
Uqer平台提取的上证指数表格如图所示:
然后进行保存到指定路径:data9.to_csv(u'szzs _data.csv') ,在后台进行下载。
2.提出问题
- 上证指数在历年中的那个月表现最好?
- 上证指数在那个月份跌幅最大?
- 根据上证指数的历年及月份走势,如何投资A股?
- 上证指数每隔多少年牛熊交替?
3.分析数据
由于下载的数据满足不了分析 的要求,通过 EXCEL删除了一些无关紧要数据,如:开盘价、收盘价、成交金额 ,只留下 :日期,成交量, 月涨跌幅,月涨跌百分比。
本文所提取的数据是 从2000年 1月份 到2018年 6月底,总共19年的走势数据,总共222条,从数据的布局结构,每个月份及每年比较,因此需要进一步的加工
如图所示的数据,可以同一月份中,不同年表现比较;同一年中,不同月份表现进行比较,其布局满足分析需求,在处理的过程耗费大量的时间,主要用到(插入辅助列,日期类型的变换 ,选择性粘贴中的转置),稍不留神就容易出现差错,要耐心处理。
4.数据导入SQL分析
接下来的操作都是在数据库中进行, 主要考察增删改查,以及聚合函数的使用,包括一些多表之间的链接,查询到自己需要分析的数据。
##创建表格 (注意日期类型数据,不然会插入失败)
create table stock1 (szzs date , january float , jan_chg float ,
February float , Feb_chg float ,
March float , Mar_chg float ,
April float ,Apr_chg float ,
May float ,May_chg float ,
June float ,jun_chg float ,
July float ,jul_chg float ,
August float ,Aug_chg float ,
September float ,Sep_chg float ,
October float ,Oct_chg float ,
November float ,Nov_chg float ,
December float ,Dec_chg float , primary key (szzs)
);
alter table stock1 modify szzs int ; #用到alter 及modify 修改数据类型
desc stock1;
##加载数据(多次加载出现问题,注意原始数据类型,以及创建表格字段,字段最好英文,防止出错)
load data local infile 'D:/Favoritevideo/t14.csv'
into table stock1
fields terminated by ',' ; 注意txt文件是\t,转义字符,而csv文件是 ','.
select *from stock1;
delete from stock1 where szzs=0;
原始表格 插入如下图所示
create table stockindex (
trade date, volume float , shange float , bdpercent float ,
primary key(trade)
);
load data local infile 'D:/Favoritevideo/t13.csv'
into table stockindex
fields terminated by ',' ;
select *from stockindex;
delete from stockindex where trade=0000-00-00;
select *from stockindex;
alter table stockindex rename stock_index;
desc stock_index;
5.数据查询与分析
接下来,分析与查询主要以stock1 表为主。
上证指数历年每个月份的历史涨跌幅
将历年涨跌幅,月份涨跌幅,时间轴进行纵向比较
select szzs, sum(january +February + March + April + May + June +July + August +September + October +November +December) as '上证指数历年涨跌' ,
sum(jan_chg +Feb_chg + Mar_chg + Apr_chg + May_chg + Jun_chg +Jul_chg + Aug_chg +Sep_chg + Oct_chg +Nov_chg +Dec_chg ) as '上证指数历年涨跌百分比' from stock1 group by szzs ;
从过往的表现中,发现2006年,2007年 ,上证指数涨幅较大,而2008跌幅超过90%,而2014年涨幅超过45%,2006是上上次牛市的启动点,涨到6124点,于2008年初快速下跌。而上次牛市于2014年6月份启动,以大盘蓝筹带动市场人气,最高上攻至5168点于2015年6月中旬本轮牛市结束。本轮牛市的上涨与国家降准降息,释放货币的流动性,以及供给侧改革,一带一路等热点题材轮动有关。如果和市场流传所说,每8年一次牛市,那么下次的牛市是
2022年附近 ,到时候 A股将会有不错的表现机会,择机在低点投资,具有一定的安全边际,胜率较高。
上证指数历年涨跌幅
上证指数历年走势折线图
根据上证指数历年走势图,发现指数在2000点附近是比较密集重要的支撑区域,后期大概率不会跌穿2000点 ,随着货币M2的 超发,以及下跌释放部分风险,截止目前上证指数2820,预测后期大概率探底获得支撑, 偏弱势震荡向上。
下面要比较同一年中不同月份上证指数的表现情况,有点类似于研究大宗商品季节性表现, 它们有异曲同工之妙,都是基于历史的涨跌幅,为后期的交易提供依据。
select szzs, jan_chg ,Feb_chg , Mar_chg ,Apr_chg , May_chg, Jun_chg ,Jul_chg , Aug_chg,Sep_chg , Oct_chg ,Nov_chg ,Dec_chg from stock1
(注意图中所示的是涨跌幅百分比%)
select sum(jan_chg) as 一月涨幅 ,sum(feb_chg) as 二月涨幅 ,sum( Mar_chg ) as 三月涨幅 , sum(Apr_chg ) as 四月涨幅 ,sum(May_chg) as 五月涨幅 ,sum(Jun_chg) as 六月涨幅 , sum(Jul_chg) as 七月涨幅 ,sum( Aug_chg) as 八月涨幅 , sum(Sep_chg) as 九月涨幅 , sum(Oct_chg) as 十月涨幅 ,sum(Nov_chg) as 十一月涨幅 , sum(Dec_chg ) as 十二月涨幅 ;
从2000年到2018年这19年中,每个月份的累计上涨计数,下跌计数,以及上涨的概率,可以发现二月份股市表现最好,这也是所谓的春节之后开门红行情。其中在年中6月份受银行考核,资金面偏紧,股市表现欠佳,这也就是所说的“ 五穷六绝”,实际上2018年从5月份到6月份股市一直 沿着 5日均线下跌,而六月份上证指数,累计历年跌幅是49.6%,表现最不理想,因此建议持币观望。
综上所述:从数据分布情况,参与股市在2月、3月、4月、7月、10月、11月、12月,也就是说一年中的第一季度,第四季度股市表现相比其它季度更好。
总结: 研究上证指数历年走势其目的是熟练SQL与EXCEL相关操作,掌握SQL增删改查,把枯燥的学习当成一门乐趣,通过此次专题训练,加深了 知识的熟练运用,同时发现了数据可视化的重要性,对于投资更加理性和客观公正,本次研究的观点,只做参考,不作为投资依据。
投资语录:行情总在绝望中产生, 在半信半疑中成长,在憧憬中成熟,在希望中破灭。
黄双全 2018年7月22日