02_02获取Tushare股票数据本地存储
导入各种库
import pandas as pd
import tushare as ts
import datetime
import os
def tusharePro():
# 设置token
ts.set_token("3bbe7964d6b047f09e9f622ded0cabf05bf2b187d25609e1d1fabb94")
# 初始化pro接口
pro = ts.pro_api()
return pro
获取当前所有正常上市交易的股票列表
基础信息接口:stock_basic描述:获取基础信息数据,包括股票代码、名称、上市日期、退市日期等
输入参数:
is_hs | str | N | 是否沪深港通标的,N否 H沪股通 S深股通 |
list_status | str | N | 上市状态 L上市 D退市 P暂停上市,默认是L |
exchange | str | N | 交易所 SSE上交所 SZSE深交所 BSE北交所 |
ts_code | str | N | TS股票代码 |
market | str | N | 市场类别 (主板/创业板/科创板/CDR/北交所) |
limit | int | N | |
offset | int | N | |
name | str | N | 名称 |
输出参数:
ts_code | str | Y | TS代码 |
symbol | str | Y | 股票代码 |
name | str | Y | 股票名称 |
area | str | Y | 地域 |
industry | str | Y | 所属行业 |
fullname | str | N | 股票全称 |
enname | str | N | 英文全称 |
cnspell | str | N | 拼音缩写 |
market | str | Y | 市场类型(主板/创业板/科创板/CDR) |
exchange | str | N | 交易所代码 |
curr_type | str | N | 交易货币 |
list_status | str | N | 上市状态 L上市 D退市 P暂停上市 |
list_date | str | Y | 上市日期 |
delist_date | str | N | 退市日期 |
is_hs | str | N | 是否沪深港通标的,N否 H沪股通 S深股通 |
def download_stock_list(stock_list="stock_list"):
pro = tusharePro()
data = pro.stock_basic(exchange="", list_status="L")
data["list_date"] = pd.to_datetime(data["list_date"], format="%Y%m%d")
data.sort_values(by=["ts_code"], inplace=True)
data.set_index("ts_code", inplace=True)
path = os.path.join(os.path.join(os.getcwd(), "datas"), stock_list + ".csv")
# 将数据储存为CSV格式文件
data.to_csv(path)
stockList = "stock_list"
download_stock_list(stockList)
获取A股股票日线行情数据
输入参数:
ts_code | str | N | 股票代码(支持多个股票同时提取,逗号分隔) |
trade_date | str | N | 交易日期(YYYYMMDD) |
start_date | str | N | 开始日期(YYYYMMDD) |
end_date | str | N | 结束日期(YYYYMMDD) |
输出参数:
ts_code | str | 股票代码 |
trade_date | str | 交易日期 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
close | float | 收盘价 |
pre_close | float | 昨收价(前复权) |
change | float | 涨跌额 |
pct_chg | float | 涨跌幅 (未复权,如果是复权请用 通用行情接口 ) |
vol | float | 成交量 (手) |
amount | float | 成交额 (千元) |
def download_stock(code, start, end):
pro = tusharePro()
df = pro.daily(ts_code=code, start_date=start, end_date=end)
df["trade_date"] = pd.to_datetime(df["trade_date"], format="%Y%m%d")
df.sort_values(by=["trade_date"], inplace=True)
df.set_index("trade_date", inplace=True)
path = os.path.join(os.path.join(os.getcwd(), "datas"), code + ".csv")
# 保存为对应的文件
df.to_csv(path)
下载数据保存为CSV格式
start = "19900101"
end = datetime.datetime.today().strftime("%Y%m%d")
filename = os.path.join(os.path.join(os.getcwd(), "datas"), "stock_list.csv")
df = pd.read_csv(filename)
li = df["ts_code"]
for i in range(0, len(li)):
download_stock(li[i], start, end)
codeStock = li[i].rstrip(".SZHBJ")
print(codeStock)
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点