利用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获取金融数据相关推荐

  1. 通过tushare获取金融数据的方法

    量化投资在近些年来成为了金融行业中的一个热点,在做量化之前需要先获取到市场的行情数据,今天来介绍一个python接口tushare,通过该接口可以获取到大量的金融数据,涵盖了股票,基本面数据,宏观经济 ...

  2. 利用tushare获取股票数据

    编写函数,实现从tushare获取任一股票的周收盘价,以及对相应股票收益率的修正.将任一股票2016-01-01至2018-03-31期间,周收益率低于-4%的股票修正为1%,并将原股票收盘价格以及修 ...

  3. R语言 | 利用tushare获取股票数据实例

    作者的tushare ID:456548 自学深度学习模型,因为本人热爱在支付宝上买基金,于是突发奇想,用深度学习预测涨跌. 首要要获取基金的数据,但是基金数据不好获取,就获取对应的行业指数数据用于分 ...

  4. python tushare获取股票数据_Python 金融: TuShare API 获取股票数据 (1)

    多多教Python 金融 是我为金融同行,自由职业投资人 做的一个专栏.这里包含了我自己作为量化交易员,在做研究时所用到的Python技巧和实用案例.这个栏目专业性会比较强:本人29岁,量化工作5年的 ...

  5. python金融数据怎么获取_class类怎样在python中获取金融数据?

    我们搜集金融数据,通常想要的是利用爬虫的方法.其实我们最近所学的class不仅可以进行类调用,在获取数据方面同样是可行的,很多小伙伴都比较关注理财方面的情况,对金融数据的需要也是比较多的.下面就cla ...

  6. python如何收集数据的方法有哪些_class类在python中获取金融数据的实例方法

    我们搜集金融数据,通常想要的是利用爬虫的方法.其实我们最近所学的class不仅可以进行类调用,在获取数据方面同样是可行的,很多小伙伴都比较关注理财方面的情况,对金融数据的需要也是比较多的.下面就cla ...

  7. 利用tushare获取A股收盘价并画图

    利用tushare获取A股收盘价,画时间轴折线图 做量化研究,没有数据可谓是巧妇难为无米之炊,而tushare为我们提供了非常给力的国内金融数据api. 自从推出pro版本之后,该平台的表现更加稳定. ...

  8. python 获取金融数据_class类在python中如何获取金融数据

    class类在python中如何获取金融数据 发布时间:2020-12-11 11:12:06 来源:亿速云 阅读:101 作者:小新 这篇文章主要介绍了class类在python中如何获取金融数据, ...

  9. win摄像头怎么在linux,如何利用Video4Linux获取摄像头数据

    Video4Linux是Linux下用于获取视频和音频数据的API接口,在这篇文章中,着重阐述如何利用Video4Linux获取摄像头数据,以实现连续影像的播放. 1. 摄像头的安装 在 Linux下 ...

最新文章

  1. 【多重数组降维的简单方法】
  2. [总结篇3]Provider_network的含义
  3. IdentityServer4 知多少
  4. java ssm如何上传图片_ssm整合-图片上传功能(转)
  5. sql over函数_SQL 高级函数
  6. 逻辑回归算法_算法逻辑回归
  7. Java EE业务处理流程与XML的引入
  8. 根据IDC的数据,全球融合系统市场在2019年第四季度同比增长1.1%
  9. SAP License:PM常用表和字段
  10. Proxmark3 Easy Gui 4.0 5.0 5.1加强版 PM3GUI_X稳定优化版
  11. 移动互联软件技术与实践demo
  12. Proteus8.6软件安装教程
  13. 【多元统计分析及R语言建模】第一章第 多元统计分析的概述
  14. CSS font-family 各名称一览表
  15. 百度竞价推广之关键词选择技巧
  16. 局域网php服务器搭建,php局域网服务器搭建
  17. 输入汉语星期几输出英文c语言程序,C根据英文星期获取对应汉字或数字的星期函数(1)...
  18. 【前端程序员的中秋节】中秋节,送你千盏孔明灯,万家灯火故事长
  19. 2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】
  20. 微信授权,修改本地 host

热门文章

  1. 《趣谈网络协议》学习笔记 DAY04
  2. es sql实现分页
  3. 从零到一搭建大数据分析引擎HIVE
  4. 原理+代码|深入浅出Python随机森林预测实战
  5. 电话机器人源码和系统部署
  6. 深入浅出通信原理2021-03-07
  7. 《用户画像》:方法论与工程化解决方案
  8. mysql gbk编码 转utf8_MySQL GBK→UTF-8编码转换
  9. 这里有一份最新的课程分享清单,收集好久了,请查收
  10. PDF转Word+转Html+英文论文轻松翻译+屏幕取词