量化投资,AI选股模型打造,第二季:数据获取和清洗
创作立场声明:原创
上次说了AI模型在投资领域的用途和可行性,今天来说一说训练模型所必须的数据如何获取和保存以及清洗
数据获取
要训练模型,首先要有数据,数据越丰富越准确,模型预测结果越成熟可靠,那么原始训练数据如何获取和保存呢?
现在做量化的平台很多,我个人最常使用的是“掘金量化”和“聚宽量化”,聚宽如果使用的话需要免费申请,为期一年,到了会自动续期。
聚宽的数据可以直接通过python代码获取,具体可以查看官网,但是获取数量有限制,普通用户每天100w条
掘金量化则需要下载客户端,掘金的优势打通了券商通道,支持代码自动交易,代码自动交易我用过一段时间,交易滑点较大,择时难以把控,做超短线交易的目前还是手动下单更为稳妥一些。
掘金的数据获取官网说也有数量限制,但是根据我之前的使用经验,并没有限制,所以如果是第一次搭建基础数据库的话,掘金量化更合适一些,掘金支持的编程语言更多,有python,c++,matlab,c#,如果是新手建议直接学python,简单很多,老司机根据口味随意选取。
我们利用代码从上面这些平台获取到原始的历史交易数据,如股票的基本面数据,交易量数据等,资金数据等等所有你的模型需要的数据,需要存起来,存在你的本机或你的云服务器,方便以后使用。
用什么样的数据库存,取决于你的数据量,像我的话使用的数据精确到10分钟级,数据量不算太大,一个自然年的所有股票加起来也就2000多万条,mysql完全可以应付,就直接使用了简单易用的mysql+分表来存储,如果你需要的是分钟级别的,即每只股票每分钟的数据,那么每个自然年的数据量就会飙升到2亿+,mysql就有些吃力了,如果需要用到每笔交易数据,那数据量又飙升一个量级,如果是个人研究,我感觉分钟级别足够了,更多的数据你也没有相应算力的计算机去处理,当普通的关系型数据库无法满足海量数据的存储,可以选择分布式的kv数据库,如hbase。
数据的获取分为历史基础数据获取+新数据获取两个部分,初次建立数据库,需要去获取过去历史的所有数据,新数据则需要通过每天的自动化脚本去量化平台获取并更新到数据库。
数据清洗
因为种种原因,你从量化平台获取回来的数据可能有极小一部分是残缺的,如某些交易日的成交量没有,或者交易金额为0等,对于这种数据,我们需要通过自动化脚本读取并判断,把它们找出来给予修正,对于交易数据的某些值缺失,你可以去其他券商平台找全并手动填补。
如果全平台都没有的数据,我通常使用的方法是使用平均值填补,比如你获取的某个股票的数据缺少了2020年3月5号的成交量,如果成交金额有,那么可以通过“当日成交金额/当日平均价”求近似值进行填补,如果成交金额也没有,那么可以使用(2020年3月4号的成交量+2020年3月6号的成交量)/2 的方式计算一个大约的值,在很多情况下,少量的数据缺失会使模型的训练数据减少很多,因为一般用于股价预测的模型都是基于RNN,需要使用连续数据,比如连续60天的行情,如果你少了中间的一天的数据,就相当于少了60条可用的训练数据。
数据获取和清洗就分享到这里了,如果还没有入坑AI想学习的,可以参考我之前的文章:
饮涧癫猿
校验提示文案
饮涧癫猿
校验提示文案
邪恶小嗡嗡
校验提示文案
奔IV程序猿
校验提示文案
[已注销]
校验提示文案
邪恶小嗡嗡
校验提示文案
anthonylee0033
校验提示文案
GHOSTVVVV
校验提示文案
kof9898
校验提示文案
kof9898
校验提示文案
GHOSTVVVV
校验提示文案
anthonylee0033
校验提示文案
邪恶小嗡嗡
校验提示文案
[已注销]
校验提示文案
邪恶小嗡嗡
校验提示文案
饮涧癫猿
校验提示文案
饮涧癫猿
校验提示文案
奔IV程序猿
校验提示文案