01 Tushare简介
Tushare是一个金融大数据开放社区,它免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资。在Tushare 旧版 运行了3年后,Tushare Pro终于要跟大家见面了。Pro版数据更稳定质量更好了,但Pro依然是个开放的,免费的平台,不带任何商业性质和目的。Tushare运行三年多以来,数据从广度和深度都得到了提升,Pro版正是在此基础上做了更大的改进。数据内容将扩大到包含股票、基金、期货、债券、外汇、行业大数据,同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台,为各类金融投资和研究人员提供适用的数据和工具。
新版本(Tushare Pro)需要注册获取token才能免费使用,注册网址: Tushare注册。安装(Win+R进入cmd模式):pip install tushare,或升级:pip install tushare --upgrade。下面以股票行情数据为例,展示下tushare如何获取数据。
02 获取token
如何获取TOKEN凭证
1、登录成功后,点击右上角->个人主页
2、 在“用户中心”中点击“接口TOKEN”
3、 可以点击右侧复制按钮复制token
4、或者点击右侧睁开眼睛来获取token明文,复制并保存
注意:token是调取数据的唯一凭证,请妥善保管,如发现别人盗用,可在本页面点击“刷新”操作,之前的token将失效。
03 获取数据并进行可视化及保存数据操作
1. 导入相关库
# 导入相关库
import tushare as ts
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 可以在画图时正常显示出现的中文和负号
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
2. 获取个股行情数据
上面两个图都是获取各类型数据的接口及参数,如果有些数据你获取不了,说明你积分不够,这是你就需要增加你的积分,具体如何看社区网站有详细的流程。
# 设置token
token = '你刚才复制的token'
pro = ts.pro_api(token)
# 获取当前上市的股票代码、简称、注册地、行业、上市时间等数据
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code, symbol, name, area, industry, list_date')
# 查看前五行数据
print(data.head(5))
# 获取万科日行情数据并查看前五条数据信息
wk = pro.daily(ts_code='000002.SZ', start_date='20200101',
end_date='20200416')
print(wk.head())
3. 获取指数基金数据并进行可视化
# 指数数据:pro.index_daily()
def get_index_data(indexs):
'''indexs是字典格式'''
index_data = {}
for name, code in indexs.items():
df = pro.index_daily(ts_code=code)
df.index = pd.to_datetime(df.trade_date)
index_data[name] = df.sort_index()
return index_data
# 获取常见股票指数行情
indexs = {'上证综指': '000001.SH', '深证成指': '399001.SZ',
'沪深300': '000300.SH', '创业板指': '399006.SZ',
'上证50': '000016.SH', '中证500': '000905.SH',
'中小板指': '399005.SZ', '上证180': '000010.SH'}
index_data = get_index_data(indexs)
print(index_data['上证综指'].head())
# 对股价走势进行可视化分析
subjects = list(index_data.keys())
# 每个子图的title
plot_pos = [421, 422, 423, 424, 425, 426, 427, 428] # 每个子图的位置
new_colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728',
'#9467bd', '#8c564b', '#e377c2', '#7f7f7f']
fig = plt.figure(figsize=(25, 25))
fig.suptitle('A股股指走势', fontsize=18)
for pos in np.arange(len(plot_pos)):
ax = fig.add_subplot(plot_pos[pos])
y_data = index_data[subjects[pos]]['close']
b = ax.plot(y_data, color=new_colors[pos])
ax.set_title(subjects[pos])
# 将右上边的两条边颜色设置为空,相当于抹掉这两条边
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
plt.savefig('A股重要指数基金.png')
plt.show()
可视化图如下:
4. 获取多只股票信息并保存到CSV文件中
# 定义获取多只股票函数:
def get_stocks_data(stocklist, start, end):
all_data = {}
for code in stocklist:
all_data[code] = pro.daily(ts_code=code, start_date=start, end_date=end)
return all_data
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code')
stocklist = list(data['ts_code'][:20]) # 取前20只股票
print(stocklist)
start = '20200101' # 开始时间
end = '20200401' # 截至时间
all_data = get_stocks_data(stocklist, start, end)
print(all_data)
print(all_data['000002.SZ'].tail())
# 保存本地
def save_data(all_data):
for code, data in all_data.items():
data.to_csv('C:/Users/86188/Desktop/研究生学习/股票数据/'+code+'.csv', header=True, index=False)
# 将数据保存到本地
save_data(all_data)
查看文件结果如下:
04 写在最后
还有很多数据的获取及其参数解释都在Tushare社区网站,你注册后就可以看到。谢谢你的观看,喜欢就给个赞吧!
原文链接:https://blog.csdn.net/weixin_45109684/article/details/105562711