1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Python量化交易08——利用Tushare获取日K数据

Python量化交易08——利用Tushare获取日K数据

时间:2023-08-22 00:55:52

相关推荐

Python量化交易08——利用Tushare获取日K数据

总有同学问我要数据...很多第三方接口都能直接获取数据的,本次介绍怎么用Tushare库获取A股日k线行情的数据。

Tushare有两个版本,老版现在快弃用了。

新版的官网链接在这:Tushare数据

需要注册一个账号,然后改一下资料,就可以免费试用获取日K线接口的权限了。

具体官网上都教得很清楚了,多看看教程先自学一下...

代码实现

导入包,设置token:,还有开始和结束的时间

import tushare as tsimport pandas as pdimport numpy as npts.set_token('*********************************')start_date='0701'end_date='0301'

token就是在官网注册账户得到的,表示你的账户的编号。

需要获取的股票:

dict1 = {'中国平安':'000001.SZ', '招商银行':'001696.SZ', '万科A':'000002.SZ', '中兴通讯':'000063.SZ', '海康威视':'002415.SZ', '平安银行':'000001.SZ', '中国国旅':'601888.SH','兴业银行':'601166.SH', '中国建筑':'601668.SH'}dict2 = {'中国人寿':'601628.SH', '山东黄金':'600547.SH', '华泰证券':'601688.SH', '中信证券':'600030.SH', '药明康德':'603259.SH', '海螺水泥':'600585.SH', '国泰君安':'601211.SH', '中国平安':'601318.SH'}# 将两个字典合并为一个字典merged_dict = {**dict1, **dict2}print(len(dict1),len(dict2),len(merged_dict))merged_dict

我这随便整了两个股票名称和编号的字典,然后合并。

将股票代码合并:

stocks=list(merged_dict.values())stocks=','.join(stocks)stocks

获取多个股票的日K行情:

pro = ts.pro_api()#多个股票df = pro.daily(ts_code=stocks, start_date=start_date, end_date=end_date)

查看:

df

可以看到 总共有2592条记录。

有同学又会问 每个变量是什么意思呢,可以查看官网的指引:

筛选

有的同学又要说了,上面的结果是所有股票混在一起了,我不方便看怎么办?

那就筛选一下呀........就是很简单很基础的pandas语法:

例如我只想要000002.SZ这个股票的行情数据

两种方法:

# 方法一:使用布尔索引df[df['ts_code'] == '000002.SZ']

# 方法二:使用 query 函数df.query('ts_code == "000002.SZ"')

一样的效果。

由于上面的数据中的trade_date不是标准的日期,pct_chg涨跌幅是百分比,我们处理一下:

df['trade_date']=pd.to_datetime(df['trade_date']) #转为时间df['pct_chg']=df['pct_chg']/100 #转为小数

然后如果还有很多想其他筛选的条件,可以像下面这个格式一样写:

例如我要筛选trade_date在-01-01之后,并且pct_chg在2%以上,vol大于300000的记录,而且只取股票代码,日期,收盘价,成交量四个变量,其他变量不要

df.loc[(df['trade_date'] > '0101') & (df['pct_chg'] > 0.02) & (df['vol'] > 300000),['ts_code','trade_date','close','vol']]

获取周行情或者月行情

Tushare库要用这个功能可能需要一定的积分才能用,不是免费白嫖的。

其实很简单就是前面获取日k的时候是pro.daily,现在改成pro.weekly就行,官网例子:

df = pro.weekly(ts_code='000001.SZ', start_date='0101', end_date='1101', fields='ts_code,trade_date,open,high,low,close,vol,amount')

月份就是:

pro.monthly

Tushare这个包做的是很好的,功能数据种类都很全,但是其他什么指数数据,基金数据,期货数据,外汇数据都不免费....对于学生来说就很昂贵。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。