【金融数据接口】tushare数据python使用教程
tushare沪深股票数据接口python使用教程
目录
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
更多推荐
所有评论(0)