python金融接口_2020-04-05 Python 金融数据接口

本文详细介绍了Tushare这个Python财经数据接口包的使用,包括安装、获取股票历史交易数据、实时行情、历史分笔数据和实时分笔数据等功能,帮助金融分析人员简化数据获取流程,专注于策略和模型研究。
部署运行你感兴趣的模型镜像

bbdc0d65e69b

image.png

Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。

这个Tushare有丰富的教程文档,这里我们就细致讲解。

使用前提

安装Python

安装pandas

lxml也是必须的,正常情况下安装了Anaconda后无须单独安装,如果没有可执行:pip install lxml

建议安装Anaconda(http://www.continuum.io/downloads),一次安装包括了Python环境和全部依赖包,减少问题出现的几率。

下载安装

版本升级

pip install tushare --upgrade

查看当前版本的方法:

import tushare

print(tushare.__version__)

获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析,如果需要全部历史数据,请调用下一个接口get_h_data()。

参数说明:

code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)

start:开始日期,格式YYYY-MM-DD

end:结束日期,格式YYYY-MM-DD

ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D

retry_count:当网络异常后重试次数,默认为3

pause:重试时停顿秒数,默认为0

返回值说明:

date:日期

open:开盘价

high:最高价

close:收盘价

low:最低价

volume:成交量

price_change:价格变动

p_change:涨跌幅

ma5:5日均价

ma10:10日均价

ma20:20日均价

v_ma5:5日均量

v_ma10:10日均量

v_ma20:20日均量

turnover:换手率[注:指数无此项]

调用方法:

import tushare as ts

ts.get_hist_data('600848') #一次性获取全部日k线数据

结果显示:

bbdc0d65e69b

image.png

设定历史数据的时间:

ts.get_hist_data('600848',start='2020-01-05',end='2020-01-09')

bbdc0d65e69b

image.png

其他:

ts.get_hist_data('600848', ktype='W') #获取周k线数据

ts.get_hist_data('600848', ktype='M') #获取月k线数据

ts.get_hist_data('600848', ktype='5') #获取5分钟k线数据

ts.get_hist_data('600848', ktype='15') #获取15分钟k线数据

ts.get_hist_data('600848', ktype='30') #获取30分钟k线数据

ts.get_hist_data('600848', ktype='60') #获取60分钟k线数据

ts.get_hist_data('sh')#获取上证指数k线数据,其它参数与个股一致,下同

ts.get_hist_data('sz')#获取深圳成指k线数据

ts.get_hist_data('hs300')#获取沪深300指数k线数据

ts.get_hist_data('sz50')#获取上证50指数k线数据

ts.get_hist_data('zxb')#获取中小板指数k线数据

ts.get_hist_data('cyb')#获取创业板指数k线数据

复权数据

获取历史复权数据,分为前复权和后复权数据,接口提供股票上市以来所有历史数据,默认为前复权。如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且最好不要超过三年以上,获取全部历史数据,请分年段分步获取,取到数据后,请及时在本地存储。获取个股首个上市日期,请参考以下方法:

df = ts.get_stock_basics()

date = df.ix['600848']['timeToMarket'] #上市日期YYYYMMDD

本接口还提供大盘指数的全部历史数据,调用时,请务必设定index参数为True,由于大盘指数不存在复权的问题,故可以忽略autype参数。

ts.get_h_data('002337') #前复权

ts.get_h_data('002337', autype='hfq') #后复权

ts.get_h_data('002337', autype=None) #不复权

ts.get_h_data('002337', start='2015-01-01', end='2015-03-16') #两个日期之间的前复权数据

ts.get_h_data('399106', index=True) #深圳综合指数

以上数据由于网络原因无法获取。

实时行情

一次性获取当前交易所有股票的行情数据(如果是节假日,即为上一交易日,结果显示速度取决于网速)

import tushare as ts

ts.get_today_all()

bbdc0d65e69b

image.png

返回值说明:

code:代码

name:名称

changepercent:涨跌幅

trade:现价

open:开盘价

high:最高价

low:最低价

settlement:昨日收盘价

volume:成交量

turnoverratio:换手率

amount:成交金额

per:市盈率

pb:市净率

mktcap:总市值

nmc:流通市值

历史分笔

获取个股以往交易历史的分笔数据明细,通过分析分笔数据,可以大致判断资金的进出情况。在使用过程中,对于获取股票某一阶段的历史分笔数据,需要通过参入交易日参数并append到一个DataFrame或者直接append到本地同一个文件里。历史分笔接口只能获取当前交易日之前的数据,当日分笔历史数据请调用get_today_ticks()接口或者在当日18点后通过本接口获取。

参数说明:

code:股票代码,即6位数字代码

date:日期,格式YYYY-MM-DD

retry_count : int, 默认3,如遇网络等问题重复执行的次数

pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题

调用方法:

import tushare as ts

df = ts.get_tick_data('600848',date='2018-12-12',src='tt')

df.head(10)

bbdc0d65e69b

image.png

返回值说明:

time:时间

price:成交价格

change:价格变动

volume:成交手

amount:成交金额(元)

type:买卖类型【买盘、卖盘、中性盘】

实时分笔

获取实时分笔数据,可以实时取得股票当前报价和成交信息,其中一种场景是,写一个python定时程序来调用本接口(可两三秒执行一次,性能与行情软件基本一致),然后通过DataFrame的矩阵计算实现交易监控,可实时监测交易量和价格的变化。

参数说明:

symbols:6位数字股票代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板) 可输入的类型:str、list、set或者pandas的Series对象

调用方法:

import tushare as ts

df = ts.get_realtime_quotes('000581') #Single stock symbol

df[['code','name','price','bid','ask','volume','amount','time']]

bbdc0d65e69b

image.png

返回值说明:

0:name,股票名字

1:open,今日开盘价

2:pre_close,昨日收盘价

3:price,当前价格

4:high,今日最高价

5:low,今日最低价

6:bid,竞买价,即“买一”报价

7:ask,竞卖价,即“卖一”报价

8:volume,成交量 maybe you need do volume/100

9:amount,成交金额(元 CNY)

10:b1_v,委买一(笔数 bid volume)

11:b1_p,委买一(价格 bid price)

12:b2_v,“买二”

13:b2_p,“买二”

14:b3_v,“买三”

15:b3_p,“买三”

16:b4_v,“买四”

17:b4_p,“买四”

18:b5_v,“买五”

19:b5_p,“买五”

20:a1_v,委卖一(笔数 ask volume)

21:a1_p,委卖一(价格 ask price)

...

30:date,日期;

31:time,时间;

请求多个股票方法(一次最好不要超过30个):

#symbols from a list

ts.get_realtime_quotes(['600848','000980','000981'])

#from a Series

ts.get_realtime_quotes(df['code'].tail(10)) #一次获取10个股票的实时分笔数据

获取实时指数:

#上证指数

ts.get_realtime_quotes('sh')

#上证指数 深圳成指 沪深300指数 上证50 中小板 创业板

ts.get_realtime_quotes(['sh','sz','hs300','sz50','zxb','cyb'])

#或者混搭

ts.get_realtime_quotes(['sh','600848'])

当日历史分笔

获取当前交易日(交易进行中使用)已经产生的分笔明细数据。

参数说明:

code:股票代码,即6位数字代码

retry_count : int, 默认3,如遇网络等问题重复执行的次数

pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题

调用方法:

import tushare as ts

df = ts.get_today_ticks('601333')

df.head(10)

返回值说明:

time:时间

price:当前价格

pchange:涨跌幅

change:价格变动

volume:成交手

amount:成交金额(元)

type:买卖类型【买盘、卖盘、中性盘】

大盘指数行情列表

获取大盘指数实时行情列表,以表格的形式展示大盘指数实时行情。

调用方法:

import tushare as ts

df = ts.get_index()

bbdc0d65e69b

image.png

返回值说明:

code:指数代码

name:指数名称

change:涨跌幅

open:开盘点位

preclose:昨日收盘点位

close:收盘点位

high:最高点位

low:最低点位

volume:成交量(手)

amount:成交金额(亿元)

大单交易数据

获取大单交易数据,默认为大于等于400手,数据来源于新浪财经。

参数说明:

code:股票代码,即6位数字代码

date:日期,格式YYYY-MM-DD

vol:手数,默认为400手,输入数值型参数

retry_count : int, 默认3,如遇网络等问题重复执行的次数

pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题

返回值说明:

code:代码

name:名称

time:时间

price:当前价格

volume:成交手

preprice :上一笔价格

type:买卖类型【买盘、卖盘、中性盘】

调用方法:

import tushare as ts

df = ts.get_sina_dd('600848', date='2015-12-24') #默认400手

#df = ts.get_sina_dd('600848', date='2015-12-24', vol=500) #指定大于等于500手的数据

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

1 WINDPY接口说明 ................................................................................................. 1 1.1 WINDPY接口概述 ............................................................................................... 1 1.2 WINDPY接口安装 ............................................................................................... 2 1.2.1 WindPy对系统环境要求 ............................................................... 2 1.2.2 Python环境安装 .......................................................................... 2 1.2.3 正常WindPy接口安装 .................................................................. 3 1.2.4 特殊安装WindPy方式 .................................................................. 6 1.3 接口向导界面 ..................................................................................................... 6 1.4 WINDPY获取帮助途径 ....................................................................................... 7 1.4.1 本用户手册 .................................................................................... 7 1.4.2 量化交易群和R语言交流群 ........................................................... 7 1.5 WINDPY接口相关规范 ....................................................................................... 1 1.5.1 以下所有命令都有如下假设 ........................................................... 1 1.5.2 命令区分大小写,且“w.”不能省略 ............................................... 1 1.5.3 中文以及单字节码和双字节码的问题 ............................................. 1 1.5.4 品种、指标、参数等引号内的部分不区分大小写 ........................... 1 1.5.5 参数支持list输入 ...................................................................... 1 1.5.6 时间、日期支持Python语言的时间、日期格式 ........................... 2 1.5.7 参数中有缺省值的可以不用输入 .................................................... 2 1.5.8 可以带参数名输入 ......................................................................... 2 精于数据,一直进步 IV 1.5.9 Showblank参数 ........................................................................... 3 1.5.10 交易接口中Showfields参数................................................ 3 1.5.11 ErrorCode定义 .................................................................... 3 2 WIND PY插件命令说明 ....................................................................................... 1 2.1 FROM WINDPY IMPORT *:装载WINDPY包 ..................................................... 1 2.2 W.START:启动WINDPY ..................................................................................... 1 2.3 W.STOP:停止WINDPY ....................................................................................... 2 2.4 W.ISCONNECTED:判断是否已经登录 .............................................................. 2 2.5 W.CANCELREQUEST:取消订阅 .......................................................................... 2 2.6 W.WSD:获取历史序列数据 .............................................................................. 3 2.7 W.WSI:获取分钟数据 ...................................................................................... 3 2.8 W.WST:获取日内TICK级别数据 .................................................................... 4 2.9 W.WSS:获历史截面数据 .................................................................................. 5 2.10 W.WSQ:获取和订阅实时行情数据 ................................................................. 5 2.11 W.WSET:获取板块、指数等成分数据 ........................................................... 6 2.12 W.WEQS:获取条件选股结果 ............................................................................ 7 2.13 W.WPF:获取资产管理、组合管理数据 ......................................................... 7 2.14 交易相关函数 ..................................................................................................... 8 2.14.1 w.tlogon交易登录 ............................................................... 8 2.14.2 w.tlogout交易登出 ............................................................. 9 2.14.3 w.torder委托下单 ............................................................. 10 2.14.4 w.tcancel撤销委托 ........................................................... 11 精于数据,一直进步 V 2.14.5 w.tquery交易查询 ............................................................. 12 2.15 W.TDAYS, W.TDAYSOFFSET,W.TDAYSCOUNT:日期函数 ............................... 14 2.15.1 w.tdays:返回区间内的日期序列 ....................................... 14 2.15.2 w.tdaysoffset:返回某个偏移值对应的日期 ................... 14 2.15.3 w.tdayscount:返回某个区间内日期数量 ......................... 15 3 WINPY插件函数体说明........................................................................................ 1 3.1 日期序列(WSD)................................................................................................. 1 3.2 历史截面数据(WSS) ........................................................................................ 3 3.3 分钟序列(WSI)................................................................................................. 3 3.4 日内跳价(WST)................................................................................................. 4 3.5 实时数据(WSQ)................................................................................................. 5 3.6 数据集(WSET) ..............................................
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值