分享我对Ai量化的认识(八)——股票历史数据

做量化,数据为先。做AI量化,更需要大量数据。

AI的基础是大数据,算法从大量的数据中找出规律,构建成模型,所以数据太少,AI量化就无从谈起。

这是做量化的第二个坑,很多人就是搞不到数据,所以没法进行下去。

今天我就来分享一下我所知道的一些获取数据的途径以及我自己遇到的坑。

日k数据

免费渠道

从163获取历史日k数据

格式如下。

http://quotes.money.163.com/service/chddata.html?code=1300171&start=20190101&end=20210101

也可以指定字段

http://quotes.money.163.com/service/chddata.html?code=1300171&start=20190101&end=20210101&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;VOTURNOVER;VATURNOVER

其中的code是一个7位的数字,第一位0代表沪市,1代表深市。其他的几个字段很容易理解,我就不多解释了。

拿下来的数据是一个csv文件,比如我上面的代码获取的就是这样的数据。

从python的tushare包获取

可以去官网介绍了解一下 https://waditu.com/

这个库很全,各种接口都有,但是需要足够多的积分才能获取足够多的数据。

积分好像不能用钱买,需要做出各种贡献才行。

我没有用过,就不多做评价了。

从各种炒股软件的历史数据中解包出来

比如通达信的数据结构中去把数据解包出来。核心代码很容易,用Python写也就10来行。不过通达信的指数是没有成交量的,对于有些需要成交量的指标就比较麻烦。

这种方法其实相当于侵权,我觉得能不做还是别做。

收费渠道

正规的有万德的数据,不过很贵。还有一些机构也卖这种数据,价格便宜些。

淘宝上也有,价格更便宜。20年的历史数据也就是几百块。有时候做活动打折,几十块都可能拿下。

一般简单的量化,日K数据足以。但是要做得更精致一些,就需要用到1分钟的数据了。

1分钟数据

格式如下,就是日期,时间,高开低收四个价格,量能,金额。基本上大家都一样。一天有240条数据。

免费渠道

新浪,腾讯,tushare(需要积分),Yahoo都是实时数据,通过持续获取实时数据就可以自己拼接1分钟数据。不过请求太频繁会被屏蔽IP。如果要实时获取所有的股票指数的快照数据然后自己拼接,那个请求实在太频繁了,所以基本上不现实。

通达信自己解包1分钟数据。同样是版权原因,我建议尽量不要去做。

收费渠道

这个渠道实在是太多了,上面提供日k的一般都提供1分钟数据。其实日k就是用1分钟数据生成的。

还有各种做数据的公司,我的经验是,越是正规的公司,数据完整性和服务态度就越好,当然价格也更贵。

来说说我自己的趟坑经验

我首先是在淘宝上买1分钟数据,当时18年底,可能淘宝严打,很难搜到,所以最后只找到2家在卖的。

我随便找了一家便宜点的,买了20年的数据,后面10年每年300块,前面10年每年200块。花了5000

然后自己开始做数据,做模型,结果在数据的时候频频出错,我只能停下来去做数据清洗。

结果清洗出来的结果是近10年的数据4%有问题,过去10年更差。

我只能去对照通达信,手动的方式一点点改,后来发现数据错误还能改,数据缺失,错乱等各种问题实在太多,太浪费时间了。

于是只能再花钱节省时间,问第二家买了。第二家的数据还行,错误率2%,两家拼起来算是数据基本上问题不大了。

我同时买了这家的每天收盘推送当日1分钟数据的业务,一年360,行价。

用了1年多,出了很多问题,首先他是在百度盘推送的,这样我就必须手动下载,没办法自动下载,自动解包,自动入库。其次他的文件名经常错乱,有时候一天放两天的数据,有时候文件名格式不一样,有时候后缀名不一样,我下载下来之后解包入库的工作是自动化的,每天6点定时做,结果为了处理他这些问题,我加了好多错误处理代码,增加了不少工作量。

最令我气愤的是,他毫无服务精神,一年中有十多次不推送,催了有时候还是不推送,好多次耽误我第二天实盘。改了百度盘地址也不告诉我,我下不到新的数据,去问他,他才告诉我百度盘换了。

终于我忍无可忍,换了一家,价格一样,服务专业很多。

现在这一家还算不错,ftp方式推送,我的系统每天18点之后会自动连上ftp下载当日1分钟数据,然后入库,全自动运行。

我朋友用的是email推送,也不错。

我自己做的是中高频模型,用的就是1分钟数据,这个数据用途还是很广的,可以转换成任意时间间隔的k线,比如5,10,15,30,60分钟k线,周线月线都可以。还可以用于回测。

分笔数据

也被称为分笔tick数据。这种数据往往运用在高频模型中。

数据格式

市场代码,证券代码,时间,最新价,成交笔数,成交额,成交量,方向,买一价,买二价,买三价,买四价,买五价,卖一价,卖二价,卖三价,卖四价,卖五价,买一量,买二量,买三量,买四量,买五量,卖一量,卖二量,卖三量,卖四量,卖五量

股票分笔数据的概念

在股票交易中,我们常说的分笔交易,其实是市场的快照信息,该信息由交易所服务器对行情按时间戳进行切片(一般是3秒)

交易所原始的切片内容,是如果该股票3秒内有成交或委托发生变化则进行切片,否则不处理,因此会有不同股票每天数据的行数和大小不一样的情况

所以买数据的时候要注意,是交易所的原始切片还是交易服务器对行情按照3秒进行切片的数据

一般提供的都是3s切片的数据,因为获取成本较低,且能满足大部分的数据回测和拼接的需求,因为在股票交易中,通过快速的挂单和撤单来诱导订单流向的行为,相对少一些,使用成交数据基本是可足够的

五档的深度,也可以覆盖大部分的冲击成本,如果需要对市场进行更深的回测,那么十档快照数据,则更为有效。

其他类型的数据

其他还有各种金融数据,F10数据,基金数据等等。

免费渠道

通过爬虫去东财,雪球,集思录等网站爬取。

题材数据可能需要通过自己去抓新闻后用NLP语义分析。

收费渠道

这个一百度就行了,各种渠道提供各种各样的数据,为了避免别人说我打广告,就不一一说明了。

(0)

相关推荐