1、提出问题
想要获得数据的目的
对于最近一段时间的A股,如果能通过筛选个股的最高点、最低点,以及这些个股出现最高点、最低点的时间,来做复盘,找到该阶段个股涨跌的时间和集中度,对于后续搞清楚个股所处的阶段(上涨、下跌、低位盘整、高位盘整)是非常有帮助的。
获取数据的艰难历程(该部分纯属个人心理历程,没兴趣的可以跳过)
自从设定要查看一段时间,A股中个股最高点、最低点及出现的时间,分析在本轮上涨过程中,股票大致经历的阶段,如何获取数据成为我最烦心的事情。先后经历了两个阶段:
第一阶段,试图用Python从Tushare导出数据到MySQL,然后从MySQL中提取数据,形成Excel表。
由于本人的Python没基础,在网上搜了十几种利用Python从Tushare导出数据到MySQL的程序代码,但无论是直接用,还是进行改造,都无法得到我想要的数据——或者执行不下去,或者执行后报错,未能获取到数据。
被逼无奈,开始自学Python和MySQL,希望能看明白这些代码。因为是基于寻求数据导出这一目的,所以跳着看了一些教程和示例,很多都是囫囵吞枣,没看明白。
这一过程从4月11日一直到4.25日,经历了15天的摸索,最终放弃了。
第二阶段,干脆使用最笨的办法,一条数据一条数据的排序、复制粘贴。
先是从证券交易软件中导出txt格式的个股交易前复权数据,总共形成txt文件3618个,导出日期2018年4月26日;
再利用已经尝试过的Excel宏运算对一条一条的数据进行排序,大概40秒可以搞定一条数据,需要40.2个小时完成,而我每天只能抽出1个小时来做,需要40天才能做完。。。当时算完这个需要的时间,心情是崩溃的。
但还是埋头开始做了,并在做的过程中,逐步优化步骤,修改宏,最终可以达到20秒完成一条记录,且早晚都做,周末投入时间达到4、5个小时,终于在5月11日晚将3618条数据都搞定了。
回头看,像做梦一样,埋头苦干的时间,和想走捷径的时间基本一致;但两个结果,一个是弄出了十来个半截的Python代码,数据是没有任何进展的;一个是做出了一个291k的excel文件,内含3618条数据,A股个股2018年10月8日-2019年4月26日期间最高点、最低点及出现的日期数据。当然,这些数据是一次性的,如果增加一天的数据,那相当于要重新来过。而代码掌握了,就可以随时取数更新了。所以,更加增强了我学习的渴望。
在这里鸡汤一下:埋头苦干比天天想着走捷径,要靠谱。
在这里感叹一下:如果掌握了工具,埋头苦干花了15天做的事情,也许利用工具只需要一个小时就能搞定。
2、理解数据
通过计算最高点、最低点的价格差,可以找到涨幅各自不同区间的个股;
通过比较最低点出现的时间,看出个股低点相对集中出现的时间;
通过比较最高点出现的时间,看出个股高点集中出现的时间。
3、数据清洗
第一步,通过日期数据来查验,看看数据日期是否都在2018年10月8日-2019年4月26日范围内;
经过检查,发现情况如下:
空白数据为在该期间内完全无交易(停牌、退市、刚过会未上市交易等各种情况);
超出时间范围的数据,暂时不确定是我操作过程中的失误,还是导出数据本身有问题;
通过证券交易软件,重新查看了上述4只个股在该期间的前复权数据,并进行了手动更改。
经过检查,剔除了无交易数据,得到数据如下:
个股数据3600条,数据期间2018年10月8日-2019年4月26日,前复权,最低点、最高点价格以及出现的时间。
第二步,通过最高点、最低点之间的时间来筛选,找到最高点出现在最低点之前的股票(这个属于下跌而不是上涨了),识别出股票的涨幅数据;
因为部分个股最高点出现在最低点之前,导致涨幅数据是负数(而如果不注意,直接用最高价格减去最低价格,涨幅是正数),此类个股258个。
4、构建模型
涨幅统计
第一步,先秀一下明星个股:
该期间涨幅超过500%的个股9个(时间跨度为自然日):
第二步,再看看市场个股涨跌情况:
涨幅超过100%,低于500%的个股953个;
涨幅超50%,低于100%的个股1892个;
上涨,但涨幅不超过50%的个股488个;
下跌个股258个。
看到这个数据,再看看我的期间收益,感觉是崩溃的。。。
最低点、最高点出现的时间分布
最低点出现的时间分布
说明:
有69.83%的个股最低点出现在2018年10月,23.33%的个股最低点出现在2019年1月;
其中:
涨幅超过500%的9只,有7只个股都在2018年10月到达期间最低点;
涨幅超过100%的953只,有766只个股都在2018年10月到达期间最低点;
涨幅超过50%的1892只,有1426只个股都在2018年10月到达期间最低点;
最高点出现的时间分布
说明:
有58.19%的个股最高点出现在2019年4月,30.36%的个股最高点出现在2019年3月;
其中:
涨幅超过500%的9只,有6只个股都在2019年4月到达期间最高点;
涨幅超过100%的953只,有766只个股都在2019年4月到达期间最高点;
涨幅超过50%的1892只,有1426只个股都在2019年4月到达期间最高点。
5、数据可视化
涨幅统计饼图
股价最低点出现日期
从上图可以看出,2018年10月19日,39.61%的个股都出现了区间的最低价格。
股价最高点出现日期
可以看出,虽然3、4月出现最高点个股达到88.53%,但出现的日期较为分散,最多的一天是2019年4月8日,也只有8.19%,这也是该区间上证指数的最高点。