数字金融数据科学系列-Tushare实战

数据科学已经走入我们的生活

近年来AI很热,大部分人看AI的角度,或者说切入点都和实际商业场景有很大的落差,走的是存粹的优化,做的很研究,有时候模型很准,但是难以付之行动,比如金融模型常常是快速的杀进快速杀出,倒跌手续费还赔上时间。

大部分时候,做模型的成本太高,解决一个实际问题,需要不少预算来购买云端服务器,GPU资源来做大量运算,但是回归商业社会,不是实验室,不能重来,一切都得小心翼翼的向前,后退就意味着接受沉没成本,可能也因此给公司造成巨额损失。

经历过几个项目,也和不少同事一起共事,往往不是模型问题,大部分是数据问题,数据的获取和清洗,已经训练集的准备和调优基本上占去了70%的时间,模型选型基本不是重点。

所以说回来,还是先从数据科学的角度,来切入,底层基础搭好了,上层的模型才能稳固。

所以我认为,数据科学的本质: 就是认清现在能够拿到多少资源,想产出多大效益。

让我们一起来认识下数字金融模型下的数据科学的实际应用,本期给大家介绍Tushare数据组件。

什么是Tushare

Tushare

Tushare金融大数据开放社区,免费提供各类金融数据和区块链数据,助力智能投资和创新型投资。

平台特点:
数据丰富: 拥有丰富的数据维度,股票,基金,期货,数字货币等行情数据,公司财务数据,基金经历等基本面数据。

获取简单: SDK开发包支持语言,同时提供http restful接口,最大成都方便不同人群使用。

落地方便: 提供多种数据存储方式,如Mysql,MongoDB, HDF5,CSV等,为数据获取提供了性能保证。

Tushare自2014年12月起,经历了6年的发展,逐渐形成了自己的社区,与国内知名金融数据服务商,优矿,米筐,聚宽等量化平台合作,作者曾就职于通联数据,并和上海交大等高校建立合作,作为金融大数据的开源服务提供商,是一个很不错的选择。

Tushare代码review

TuShare的github上的开源代码有段时间没有更新了。本次直接review安装后的lib代码,最新版本1.2.60。

github地址: https://github.com/waditu/tushare

最核心的代码是 tushare/pro 目录下的 data_pro 以及 client 。 一个作为api调用的入口类,client作为api交互的client用来和服务器端收发数据用。

Tushare data_pro

核心代码通过requests.post 拼接post params 的方式,发送请求,返回的结果用json的方式,解析并拼接成pandas Dataframe对象,返回给上层。

Tushare client

其他的主要是util的一些辅助类,formula.py中有一些常见的指标方法,推荐可以使用。

Tushare formula

Tushare的数字金融数据介绍

tushare的数字金融数据模块,包含基础数据,行情数据,资讯数据:
基础数据:
全球数字货币列表, 全球数字货币交易所,交易所交易对,以及项目和交易所LOGO, 很多交易所也停止维护了。

行情数据:
数字货币行情, 每日市值,交易所费率,比特币每日市值,比特币每日交易量,数字货币K线

资讯公告:
包含了,金色财经,巴比特,比世界,交易所公告,twitter数据, twitter大V数据等。

很不幸的是,大部分已经停止更新了。 最新的数据更新到6月10号,联系了维护的米哥,这块业务有个人维护,服务器费用的原因,已经暂停了部分数据的更新,缺钱来为开源的项目做贡献。 国内的开源项目,大杨也捐赠过几个,花了几千块rmb,在国内没有这样的捐助的氛围,很多开源项目很难维持下去。

如何玩转TuShare

开箱即用:
使用pip来安装tushare:

1
pip install tushare

安装好之后,开始些个测试来获取数据:
如果注册好了,在官方网站,申请了token了之后,就可以用token来访问api获取数据了:
这里申明那个交易所的那个时间段,哪个币种的数据,并将获取的数据打印出来。 最后保存成CSV文件。

def test_coindayohlcv(self):
    token = 'b3a30846b80**************:89db61bf236'   
    pro = ts.pro_api(token)
    ex = 'huobi'
    """
    1min    1分钟
    5min    5分钟
    15min    15分钟
    30min    30分钟
    60min    60分钟
    daily    日线
    week    周线
    """
    df = pro.coinbar(exchange=ex, symbol='btcusdt', freq='daily', start_date='20200301', end_date='20200728')
    print(df.columns)
    print(df)
    df.to_csv('{}.csv'.format(ex), index=False)

Tushare fetchohlcv

结语

最后,测试了下指数数据,美股数据,期货数据,外汇数据,还有港股数据,作为学习来使用,还是挺适合的,但是作为生产环境的数据源头的话,还是推荐购买,米筐,聚宽等专业的数据服务商提供的稳定的数据源,当然每年的费用6-8万也是企业才能够承受的了的,个人还是相对困难。
数据的完整性还是没法保证,毕竟只有米哥一个人维护,而且通过大家捐助的方式,来收取一定的费用,来维持服务器,还有抓取程序。

作为开源的一份子,tushare还是做的不错的,坚持6年也相当的不容易,数据商业化,在中国还是相当难的。 大家多给一些鼓励,如果有用,并且学到东西,可以捐助下,捐助地址: https://waditu.com/document/1?doc_id=243。

为开源点赞吧。

坚持原创技术分享,您的支持将鼓励xinqiyang继续创作!