利用Tushare获取金融数据
利用Tushare获取金融数据
- 开发背景
- Tushare社区
- Tushare安装
- Tushare使用
- Tushare获取金融数据
- 1.获取A股列表
- 2.获取单只A股行情数据
- 3.获取多只A股数据
- 4.将数据储存至本地
- 5.读取本地数据
- 总结
开发背景
笔者是在校生,STEM专业,对量化投资领域很感兴趣,刚入门。平时闲暇时光读读金融书籍,并用代码进行实战演练。此篇是笔者的第一篇blog,尝试通过Tushare获取股票的日常交易数据,为后续进行股票分析做准备。
笔者tushare ID:414988
Tushare社区
Tushare社区(https://tushare.pro/)是一个大数据开放社区,免费提供各类金融数据 , 助力智能投资与创新型投资。现Tushare使用pro接口,具有数据丰富,获取简单,落地方便等优点。
Tushare拥有丰富的数据内容,如股票、基金、期货、数字货币等行情数据,公司财务、基金经理等基本面数据。同时,SDK开发包支持语言,同时提供HTTP Restful接口,最大程度方便不同人群的使用。并且提供多种数据储存方式,如Oracle、MySQL,MongoDB、HDF5、CSV等,为数据获取提供了性能保证。
Tushare安装
在命令行,输入以下代码
pip install tushare
安装最新版tushare。安装完毕后,在命令行输入python,回车;输入
import tushare as ts
若没报错,说明安装成功。
Tushare使用
打开jupyter notebook,输入
import tushare as ts
token = 'your token' # 这里输入tushare官网下用户接口token
pro = ts.pro_api(token)
同时,再import两个数据分析的常用库pandas,numpy和一个python画图包Matplotlib。
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
Tushare获取金融数据
1.获取A股列表
使用接口pro.stock_basic()获取沪深股票列表(以下输入输出参数只选取重要的进行分析)。
输入参数:
名称 | 描述 |
---|---|
ts_code | 股票代码 |
list_status | 上市状态:上市状态: L上市 D退市 P暂停上市,默认L |
exchange | 交易所 SSE上交所 SZSE深交所 HKEX港交所(未上线) |
输出参数:
名称 | 描述 |
---|---|
ts_code | 股票代码+交易所后缀 |
symbol | 股票代码 |
name | 股票名称 |
area | 所在地域 |
industry | 所属行业 |
market | 市场类型 |
exchange | 交易所代码 |
list_status | 上市状态:L上市 D退市 P暂停上市 |
list_date | 上市日期 |
delist_date | 退市日期 |
获取当前上市的股票代码、简称、注册地、行业、上市时间等数据。
basic = pro.stock_basic(list_status='L')
basic.head() # 查看前五条ts_code symbol name area industry market 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
由上输出可以发现,tushare提供的数据丰富而齐全,可以放心使用。
2.获取单只A股行情数据
获取单只A股的日线行情pro.daily()或周线行情pro.weekly()或月线行情pro.monthly()。
pro.daily()使用方法如下:
输入参数
名称 | 描述 |
---|---|
ts_code | 股票代码(支持多个股票同时提取,逗号分隔) |
trade_date | 交易日期(YYYYMMDD) |
start_date | 开始日期(YYYYMMDD) |
end_date | 结束日期(YYYYMMDD) |
输出参数
名称 | 描述 |
---|---|
ts_code | 股票代码 |
trade_date | 交易日期 |
open | 开盘价 |
high | 最高价 |
low | 最低价 |
close | 收盘价 |
pre_close | 昨收价 |
change | 涨跌额 |
pct_chg | 涨跌幅 |
vol | 成交量 |
amount | 成交额 |
以获取深物业A(000011.SZ)的日行情数据为例。
shenwuyeA_daily = pro,daily(ts_code='000011.SZ', start_date='20200101', end_date='20210101')
shenwuyeA_daily.head()ts_code trade_date open high low close pre_close change pct_chg vol amount
0 000011.SZ 20201231 12.14 12.36 11.95 12.17 12.16 0.01 0.0822 65023.01 79013.218
1 000011.SZ 20201230 11.79 12.25 11.52 12.16 11.85 0.31 2.6160 91820.88 109824.091
2 000011.SZ 20201229 11.56 12.24 11.56 11.85 11.48 0.37 3.2230 78616.53 93669.887
3 000011.SZ 20201228 11.82 11.88 11.43 11.48 11.83 -0.35 -2.9586 55898.94 65020.868
4 000011.SZ 20201225 11.78 11.93 11.63 11.83 11.81 0.02 0.1693 45828.84 54148.797
我们可以获取平安银行股票的每日交易信息,开盘价、最高价、最低价、收盘价、涨跌情况以及成交量情况。
同样的,我们获取周线行情和月线行情。
shenwuyeA_weekly = pro.weekly(ts_code='000001.SZ', start_date='20200101', end_date='20210101')
shenwuyeA_weekly.head()ts_code trade_date close open high low pre_close change pct_chg vol amount
0 000011.SZ 20201231 12.17 11.82 12.36 11.43 11.83 0.34 0.0287 29135936.0 3.475281e+08
1 000011.SZ 20201225 11.83 12.39 12.68 11.63 12.39 -0.56 -0.0452 33009861.0 4.017601e+08
2 000011.SZ 20201218 12.39 12.29 12.79 12.17 12.28 0.11 0.0090 29681407.0 3.703677e+08
3 000011.SZ 20201211 12.28 13.58 13.60 12.06 13.58 -1.30 -0.0957 30135472.0 3.882492e+08
4 000011.SZ 20201204 13.58 13.46 14.45 13.23 13.49 0.09 0.0067 47775410.0 6.541158e+08
shenwuyeA_monthly = pro.monthly(ts_code='000001.SZ', start_date=20200101', end_date='20210101')
shenwuyeA_monthly.head()ts_code trade_date close open high low pre_close change pct_chg vol amount
0 000011.SZ 20201231 12.17 13.76 14.04 11.43 13.82 -1.65 -0.1194 156418014.0 1.975291e+09
1 000011.SZ 20201130 13.82 14.08 15.37 13.25 13.99 -0.17 -0.0122 163400353.0 2.318080e+09
2 000011.SZ 20201030 13.99 18.10 19.96 13.85 17.86 -3.87 -0.2167 198585828.0 3.442298e+09
3 000011.SZ 20200930 17.86 20.27 20.34 15.97 20.17 -2.31 -0.1145 371551360.0 6.572802e+09
4 000011.SZ 20200831 20.17 26.60 31.87 20.08 26.05 -5.88 -0.2257 572318794.0 1.562482e+10
3.获取多只A股数据
我们定义获取数据函数:
def obtain_stocks(start_date, end_date, stock_code_list=None):if stock_code_list is None:stock_code_list = pro.stock_basic(list_status='L').ts_codestock_data = {}for stock_code in stock_code_list:stock_data[stock_code] = pro.daily(ts_code=stock_code, start_date=start_date, end_date=end_date)return stock_data
返回所需要的stock数据。
4.将数据储存至本地
def save_stock_data(all_stocks_data):for stock_code, stock_data in all_stocks_data.items():stock_data.to_csv('your path/'+stock_code+'.csv', header=True, index=False)
其中,your path对应你需要保存的路径文件夹,每个股票数据保存为一个csv。
5.读取本地数据
import osdef read_stock_data(path_name):# 注意path_name是文件的保存路径文件夹名all_files = os.walk(path_name) # 读取文件夹中的所有文件file_names = []for path, _, file_list in all_files:for file_name in file_list:file_names.append(os.path.join(file_name))# 存入字典df = {}code = [name.split('.')[0] for name in filenames] # 分离出股票代码for i in range(len(file_names)):file_name = path_name + file_names[i]df[code[i]] = pd.read_csv(file_name)return df, code
# 返回股票数据以及代码
总结
Tushare是一个性能优异的大数据社区,同时高校学生和老师以及机构研究者均可获得免费积分进行数据的获取。
笔者后续会对数据进行分析与理解,待续…
利用Tushare获取金融数据相关推荐
- 通过tushare获取金融数据的方法
量化投资在近些年来成为了金融行业中的一个热点,在做量化之前需要先获取到市场的行情数据,今天来介绍一个python接口tushare,通过该接口可以获取到大量的金融数据,涵盖了股票,基本面数据,宏观经济 ...
- 利用tushare获取股票数据
编写函数,实现从tushare获取任一股票的周收盘价,以及对相应股票收益率的修正.将任一股票2016-01-01至2018-03-31期间,周收益率低于-4%的股票修正为1%,并将原股票收盘价格以及修 ...
- R语言 | 利用tushare获取股票数据实例
作者的tushare ID:456548 自学深度学习模型,因为本人热爱在支付宝上买基金,于是突发奇想,用深度学习预测涨跌. 首要要获取基金的数据,但是基金数据不好获取,就获取对应的行业指数数据用于分 ...
- python tushare获取股票数据_Python 金融: TuShare API 获取股票数据 (1)
多多教Python 金融 是我为金融同行,自由职业投资人 做的一个专栏.这里包含了我自己作为量化交易员,在做研究时所用到的Python技巧和实用案例.这个栏目专业性会比较强:本人29岁,量化工作5年的 ...
- python金融数据怎么获取_class类怎样在python中获取金融数据?
我们搜集金融数据,通常想要的是利用爬虫的方法.其实我们最近所学的class不仅可以进行类调用,在获取数据方面同样是可行的,很多小伙伴都比较关注理财方面的情况,对金融数据的需要也是比较多的.下面就cla ...
- python如何收集数据的方法有哪些_class类在python中获取金融数据的实例方法
我们搜集金融数据,通常想要的是利用爬虫的方法.其实我们最近所学的class不仅可以进行类调用,在获取数据方面同样是可行的,很多小伙伴都比较关注理财方面的情况,对金融数据的需要也是比较多的.下面就cla ...
- 利用tushare获取A股收盘价并画图
利用tushare获取A股收盘价,画时间轴折线图 做量化研究,没有数据可谓是巧妇难为无米之炊,而tushare为我们提供了非常给力的国内金融数据api. 自从推出pro版本之后,该平台的表现更加稳定. ...
- python 获取金融数据_class类在python中如何获取金融数据
class类在python中如何获取金融数据 发布时间:2020-12-11 11:12:06 来源:亿速云 阅读:101 作者:小新 这篇文章主要介绍了class类在python中如何获取金融数据, ...
- win摄像头怎么在linux,如何利用Video4Linux获取摄像头数据
Video4Linux是Linux下用于获取视频和音频数据的API接口,在这篇文章中,着重阐述如何利用Video4Linux获取摄像头数据,以实现连续影像的播放. 1. 摄像头的安装 在 Linux下 ...
最新文章
- 【多重数组降维的简单方法】
- [总结篇3]Provider_network的含义
- IdentityServer4 知多少
- java ssm如何上传图片_ssm整合-图片上传功能(转)
- sql over函数_SQL 高级函数
- 逻辑回归算法_算法逻辑回归
- Java EE业务处理流程与XML的引入
- 根据IDC的数据,全球融合系统市场在2019年第四季度同比增长1.1%
- SAP License:PM常用表和字段
- Proxmark3 Easy Gui 4.0 5.0 5.1加强版 PM3GUI_X稳定优化版
- 移动互联软件技术与实践demo
- Proteus8.6软件安装教程
- 【多元统计分析及R语言建模】第一章第 多元统计分析的概述
- CSS font-family 各名称一览表
- 百度竞价推广之关键词选择技巧
- 局域网php服务器搭建,php局域网服务器搭建
- 输入汉语星期几输出英文c语言程序,C根据英文星期获取对应汉字或数字的星期函数(1)...
- 【前端程序员的中秋节】中秋节,送你千盏孔明灯,万家灯火故事长
- 2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】
- 微信授权,修改本地 host