tushare的数据库虽然数据很全,访问起来也很方便,但是因为网速及访问频率的限制,在进行全市场的指标计算时,用在线获取数据的方法就不太合适。
在本地储存数据,首先要选择合适的储存形式。因为tushare的数据是以pandas的DataFrame形式传输的,最简单的储存方法就是直接写成csv格式的文本文件。这种储存方式的主要缺点是每次读取某个证券的特定指标时,必须要把同一个表里的所有指标都同时读入,在进行大批量读入时,需要的时间很长。而且纯文本没有经过压缩,需要的储存空降也比较大。
使用hd5,pickle,sql等格式存储可以对数据进行压缩,节省存储空间加快读写速度。我选择了python的sqlite3包构建本地的sql数据库。使用python和sql语句做好接口函数后,本地的数据库可以输出跟tushare获取的同样格式的数据。把全部A股股票价格数据读入占用的内存也在3G左右,基本上在正常的笔记本上就可以进行量化计算和回测了。