首页 > Python资料 博客日记
【金融数据接口】tushare数据python使用教程
2024-07-02 21:00:05Python资料围观235次
目录
1.官网注册、包安装和接口手册
python库安装和更新
pip install tushare --upgrade
tushare版本查询
import tushare as ts
print(ts.__version__)
2.接口使用方法
第一种:将token保存在本地,然后调用接口
先设置token在本地(设置过一次,下次就可以不用再设置)
# -*- coding: utf-8 -*-
import tushare as ts
# 从官网获取token
mytoken = "your token"
# 保存token到本地
ts.set_token(mytoken)
然后业务程序使用接口
# -*- coding: utf-8 -*-
import tushare as ts
# 使用接口
api = ts.pro_api()
# 获取日k线数据
data = api.query('daily',
ts_code='600031.SH',
start_date='20220101',
end_date='20220409')
print(type(data))
print(data)
第二种:使用特定token调用接口
# -*- coding: utf-8 -*-
import tushare as ts
# 使用特定token
mytoken = "your token"
pro = ts.pro_api(mytoken) # 接口初始化
# 使用trade_cal这个接口获取交易日日历
result = pro.query('trade_cal',
start_date='20180101',
end_date='20181231')
print(type(result))
print(result)
3.接口使用门槛
使用相关的接口有门槛限制,需要账号积分达到一定数量,
用接口不会消耗积分,只是一个门槛,
若达不到门槛,则会报错。
Exception: 抱歉,您没有访问该接口的权限,权限的具体详情访问:Tushare数据。
4.沪深股票数据接口
官网说明链接:Tushare数据
基础数据
接口 | 获取数据 | 描述 |
stock_basic | 股票列表 | 获取基础信息数据,包括股票代码、名称、上市日期、退市日期等 |
trade_cal | 交易日历 | 获取各大交易所交易日历数据 |
namechange | 股票曾用名 | 获取股票历史名称变更记录 |
hs_const | 沪深股通成份股 | 获取沪股通、深股通成分数据 |
stock_campany | 上市公司基本信息 | 获取上市公司基础信息 |
stk_managers | 上市公司管理层 | 获取上市公司管理层信息 |
stk_rewards | 管理层薪酬和持股 | 获取上市公司管理层薪酬和持股 |
new_share | IPO新股列表 | 获取新股上市列表数据 |
bak_basic | 备用列表 | 获取备用基础列表 |
行情数据
接口 | 获取数据 | 描述 |
daily | A股日线行情 | 获取股票日行情数据 |
weekly | A股周线行情 | 获取股票周行情数据 |
monthly | A股月线行情 | 获取股票月行情数据 |
pro_bar | A股复权行情 | 获取股票复权行情数据 |
adj_factor | 复权因子 | 获取股票复权因子 |
suspend_d | 每日停复牌信息 | 按日期方式获取股票每日停复牌信息 |
daily_basic | 每日指标 | 获取全部股票每日重要的基本面指标 |
pro_bar | 通用行情 | 获取通用行情信息 |
moneyflow | 个股资金流向 | 获取沪深A股票资金流向数据 |
stk_limit | 每日涨跌停价格 | 获取全市场每日涨跌停价格 |
limit_list | 每日涨跌停统计 | 获取每日涨跌停股票统计 |
moneyflow_hsgt | 沪深港通资金流向 | 获取沪股通、深股通、港股通每日资金流向数据 |
hsgt_top10 | 沪深股通十大成交股 | 获取沪股通、深股通每日前十大成交详细数据 |
ggt_top10 | 港股通十大成交股 | 获取港股通每日成交数据,其中包括沪市、深市详细数据 |
hk_hold | 沪深港股通持股明细 | 获取沪深港股通持股明细,数据来源港交所 |
ggt_daily | 港股通每日成交统计 | 获取港股通每日成交信息 |
ggt_monthly | 港股通每月成交统计 | 港股通每月成交信息 |
ccass_hold_detail | 中央结算系统持股明细 | 获取中央结算系统机构席位持股明细 |
bak_daily | 备用行情 | 获取备用行情 |
财务数据
接口 | 获取数据 | 描述 |
income | 利润表 | 获取上市公司财务利润表数据 |
balancesheet | 资产负债表 | 获取上市公司资产负债表 |
cashflow | 现金流量表 | 获取上市公司现金流量表 |
forecast | 业绩预告 | 获取业绩预告数据 |
express | 业绩快报 | 获取上市公司业绩快报 |
dividend | 分红送股 | 分红送股数据 |
fina_indicator | 财务指标数据 | 获取上市公司财务指标数据 |
fina_audit | 财务审计意见 | 获取上市公司定期财务审计意见数据 |
fina_mainbz | 主营业务构成 | 获得上市公司主营业务构成,分地区和产品两种方式 |
disclosure_date | 财报披露计划 | 获取财报披露计划日期 |
市场参考数据
接口 | 获取数据 |
margin | 融资融券交易汇总 |
margin_detail | 融资融券交易明细 |
margin_target | 融资融券标的 |
top10_holders | 前十大股东 |
top10_floatholders | 前十大流通股东 |
top_list | 龙虎榜每日明细 |
pledge_stat | |
pledge_detail | 股权质押统计数据 |
repurchase | 股权质押明细数据 |
concept | 股票回购 |
concept_detail | 概念股分类表 |
share_float | 概念股明细列表 |
block_trade | 限售股解禁 |
stk_account_old | 大宗交易 |
stk_holdernumber | 股票开户数据 |
stk_surv | 股东人数 |
stk_holdertrade | 机构调研表 |
5.接口数据获取实例
获取交易日历
交易日历(trade_cal接口):获取交易所交易日历数据
第一种调用接口的方式:api.query('trade_cal', 参数1,参数2, ...)
# -*- coding: utf-8 -*-
import tushare as ts
import datetime as dt
import pandas as pd
def format_date(x):
return x[:4] + "-" + x[4:6] + "-" + x[-2:]
if __name__ == "__main__":
pro = ts.pro_api()
# 下载当年日历和交易日日期数据
last_year = str(dt.datetime.now().year - 1)
now_year = str(dt.datetime.now().year)
try:
df = pro.query('trade_cal',
start_date=last_year + "1220",
end_date=now_year + "1231")
except:
df = pd.DataFrame(data=None)
print("抱歉,您没有访问该接口的权限,权限的具体详情访问:")
print("https://tushare.pro/document/1?doc_id=108")
if len(df) > 0:
# cal_date str 日历日期
# is_open 是否交易 0休市 1交易
df = df[df.is_open == 1]
df["日期"] = df.cal_date
df = df[["日期"]]
print(df)
df["日期"] = df.日期.apply(func=format_date)
print(df)
df.to_excel(now_year+"交易日.xlsx", index=False)
else:
print("get trade day from tushare failed")
第二种调用接口的方式:api.trade_cal(参数1,参数2, ...)
import tushare as ts
ts.set_token('your token here')
api = ts.pro_api()
data = api.trade_cal(exchange='SZSE', # SSE上交所,SZSE深交所
start_data='20180101',
end_date='20181231')
股票基础信息
股票列表(stock_basic接口):获取基础信息数据,包括股票代码、名称、上市日期、退市日期等。
import tushare as ts
ts.set_token('your token here') # 设置token(tushare个人主页获取)
api = ts.pro_api()
column_name = 'ts_code,symbol,name,area,industry,list_date'
data = api.stock_basic(exchange='',
list_status='L',
fields=column_name)
沪股通和深股通成份股
沪深股通成份股(hs_const接口):获取沪股通、深股通成分数据
import tushare as ts
ts.set_token('your token here')
api = ts.pro_api()
data = api.hs_const(hs_type='SH') # SH沪股通,SZ深股通
上市公司基础信息
公司基本信息(stock_company接口):获取上市公司基础信息
import tushare as ts
ts.set_token('your token here')
api=ts.pro_api()
column_name='ts_code,chairman,manager,secretary,reg_capital,province'
data=api.stock_company(exchange='SZSE',
fields=column_name)
print(data)
获取新股上市列表数据
IPO新股列表(new_share接口): 获取新股上市列表数据
import tushare as ts
ts.set_token('your token here')
api = ts.pro_api()
data = api.new_share(start_date='20220331',end_data='20220409')
A股日线行情
日线行情(daily接口):获取A股日线行情
import tushare as ts
ts.set_token('your token here')
api = ts.pro_api()
"""
data = api.query('daily',
ts_code='000001.SZ',
start_date='20180701',
end_date='20180718')
"""
data = api.daily(ts_code='000001.SZ,600000.SH',
start_date='20180701',
end_date='20180718')
print(data)
A股周线行情
周线行情(weekly接口):获取A股周线行情
import tushare as ts
ts.set_token('your token here')
api = ts.pro_api()
column_names = 'ts_code,trade_date,open,high,low,close,vol,amount'
data = api.weekly(ts_code='000001.SZ',
start_date='20180101',
end_date='20181101',
fields=column_names)
'''
data = api.query('weekly',
ts_code='000001.SZ',
start_date='20180101',
end_date='20181101',
fields=column_names)
'''
A股月线行情
月线行情(monthly接口):获取A股月线行情
import tushare as ts
ts.set_token('your token here')
api = ts.pro_api()
column_names = 'ts_code,trade_date,open,high,low,close,vol,amount'
data = api.monthly(ts_code='000001.SZ',
start_date='20180101',
end_date='20181101',
fields=column_names)
'''
data = api.query('monthly',
ts_code='000001.SZ',
start_date='20180101',
end_date='20181101',
fields=column_names)
'''
股票每日指标,选股分析
每日指标(daily_basic接口):获取股票每日指标,选股分析
import tushare as ts
ts.set_token('your token here')
api = ts.pro_api()
column_names = 'ts_code,trade_date,turnover_rate,volume_ratio,pe,pb'
data = api.daily_basic(ts_code='',
trade_date='20180726',
fields=column_names)
'''
data = api.query('daily_basic',
ts_code='',
trade_date='20180726',
fields=column_names)
'''
end
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Windows上安装 Python 环境并配置环境变量 (超详细教程)