背景
工欲善其事,必先利其器。想要做量化,数据是基本,相关数据主要分成两个部分,此篇分析交易数据的获取。
存储方案
考虑到量化的策略会有离线的策略分析和在线的策略分析,因此我们的数据存储也分成离线的数据仓库和在线的数据引擎。
离线要求:数据源大而广,适合离线分析,完善的数据补全方式
在线要求:数据小而快,为了能最快的获取在线分析要求的数据,在存储的时候应尽量保存最小集,保证数据库查询的效率
技术选型:离线数据引擎-maxcompute, 在线数据引擎-elasticsearch
原因
1、离线数据仓库的基本都是基于hadoop、hive这套体系,从成本、稳定性考虑,选择阿里云的maxcompute而没有选择自己搭建
2、在线数据存储就是选择一个合适的时序数据库,mongodb和es作为候选,但考虑到后续的文本数据分析,和es强大的数据分析能力和报表展示组建,因此选择后者。同样aliyun上也有类似服务,但从技术成本和在线引擎本地部署的考虑,选择自行搭建,流程后续给出
数据方案
由于仅仅依靠互联网上公开的数据(主要是tushare上的数据),无法满足量化建模分析的需求。因此设计了一套比较完备的方案,保证数据相对完整,而且成本低。
淘宝数据源:优势数据质量比较高,一些基本的指标无须额外计算;劣势数据只是每天不定时更新,无法用于实时的数据分析,稳定性不敢保证(不知道哪天淘宝店就被关闭了)
网络数据源:主要利用爬虫对新浪或者腾讯的数据源进行获取,优势数据源永远都在,可以用于在线分析;劣势数据质量不是特别好,存量不足,增量数据比较简单
Name | 淘宝数据源 | 爬虫 |
---|---|---|
股票日线存量 | quant_day_local_history | quant_day_history |
股票日线增量 | quant_local_everyday | quant_day_everyday |
指数日线存量 | quant_index_local_history | quant_index_history |
指数日线增量 | quant_index_local_everyday | quant_index_everyday |
股票tick存量 | quant_tick_30_history and quant_tick_60_history | 无 |
股票tick增量 | 无 | quant_tick_30_everyday and quant_tick_60_everyday |
指数tick存量 | quant_index_30_history and quant_index_60_history | 无 |
指数tick增量 | quant_index_local_30_everyday and quant_index_local_60_everyday | 无 |
为了保证数据的完整性和一定的容错能力,存量和增量分开保存,淘宝数据源和爬虫数据互为备份。