tushare是一个免费、开源的python财经数据接口包
安装
pip install tushare
还需要lxml
pip install lxml
查看当前版本test.py
import tushare
print(tushare.__version__)
>python test.py
1.2.60
版本升级
pip install tushare --upgrade
注册用户https://waditu.com获取token
(1)获取基础信息数据
import tushare as ts ts.set_token('换成自己的token') pro = ts.pro_api() data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date') print(data)
>python test.py
ts_code symbol name area industry list_date
0 000001.SZ 000001 平安银行 深圳 银行 19910403
1 000002.SZ 000002 万科A 深圳 全国地产 19910129
2 000004.SZ 000004 国农科技 深圳 互联网 19910114
3 000005.SZ 000005 世纪星源 深圳 环境保护 19901210
4 000006.SZ 000006 深振业A 深圳 区域地产 19920427
... ... ... ... ... ... ...
4030 688596.SH 688596 正帆科技 上海 专用机械 20200820
4031 688598.SH 688598 金博股份 湖南 矿物制品 20200518
4032 688599.SH 688599 天合光能 江苏 电气设备 20200610
4033 688600.SH 688600 皖仪科技 安徽 电器仪表 20200703
4034 688981.SH 688981 中芯国际-U 上海 半导体 20200716
[4035 rows x 6 columns]
如果提示抱歉,您没有访问该接口的权限
可以完善信息,获取20积分,就可以使用接口了
(2)交易日历
import tushare as ts ts.set_token('你的token') pro = ts.pro_api() #data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date') data = pro.trade_cal(exchange='', start_date='20201010', end_date='20201020') print(data)
>python test.py
exchange cal_date is_open
0 SSE 20201010 0
1 SSE 20201011 0
2 SSE 20201012 1
3 SSE 20201013 1
4 SSE 20201014 1
5 SSE 20201015 1
6 SSE 20201016 1
7 SSE 20201017 0
8 SSE 20201018 0
9 SSE 20201019 1
10 SSE 20201020 1
(3)日线行情
import tushare as ts ts.set_token('你的token') pro = ts.pro_api() data = pro.daily(ts_code='000001.SZ', start_date='20201010', end_date='20201020') data.to_csv('test.csv')
>python test.py
(4)绘制成行情图
import tushare as ts import pandas as pd import matplotlib.pyplot as plt ts.set_token('你的token') pro = ts.pro_api() data = pro.daily(ts_code='000001.SZ', start_date='20200901', end_date='20201020') #转化为日期类型 data['trade_date'] = pd.to_datetime(data['trade_date'], format="%Y%m%d") #绘图 plt.plot(data['trade_date'], data['close'], '-', label = data.ts_code[0]) plt.gcf().autofmt_xdate() #显示文字 plt.legend() #显示图片 plt.show()
(4)单个股票K线蜡烛图
import numpy as np import pandas as pd import tushare as ts import mplfinance as mpf import matplotlib.pyplot as plt from pylab import mpl from datetime import datetime pd.set_option('expand_frame_repr', False)#True就是可以换行显示。设置成False的时候不允许换行 pd.set_option('display.max_columns', None)# 显示所有列 pd.set_option('colheader_justify', 'centre')# 显示居中 pro = ts.pro_api('你的token') mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体 mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题 df = pro.daily(ts_code='000001.SZ', start_date='20200301', end_date='20201001') #df.sort_values(by='trade_date',ascending=False) data = df.loc[:, ['trade_date', 'open', 'close', 'high', 'low', 'vol']] #:取所有行数据,后面取date列,open列等数据 data = data.rename(columns={'trade_date': 'Date', 'open': 'Open', 'close': 'Close', 'high': 'High', 'low': 'Low', 'vol': 'Volume'}) #更换列名,为后面函数变量做准备 data.set_index('Date', inplace=True) #设置date列为索引,覆盖原来索引,这个时候索引还是 object 类型,就是字符串类型。 data.index = pd.DatetimeIndex(data.index) #将object类型转化成 DateIndex 类型,pd.DatetimeIndex 是把某一列进行转换,同时把该列的数据设置为索引 index。 data = data.sort_index(ascending=True) mpf.plot(data, type='candle', mav=(5, 10, 20), volume=True, show_nontrading=False)
mpl_finance介绍及使用