如何从tushare获取股票历史数据写入自己的MySQL数据库
点击 https://tushare.pro/register?reg=414428 ,免费注册后即可获取 tushare 的 token,就可以下载各种金融数据了。
1. tushare推荐方法
如果你需要读取全部股票的历史数据,tushare 给的建议是按 “天” 获取。因为 tushare api 限制一次获取最高5000条记录,而A股市场目前有3000多只股票,提取一次数据不会超过 api 的限制记录数。
代码如下:
import tushare as ts
pro = ts.pro_api()
df = pro.daily(trade_date='20200325')
然后通过日期循环,就可以获取所有股票的历史数据了。
日期信息可以通过交易日历获得:
#获取20200101~20200401之间所有有交易的日期
df = pro.trade_cal(exchange='SSE', is_open='1',
start_date='20200101',
end_date='20200401',
fields='cal_date')
print(df.head())
输出
cal_date
0 20200102
1 20200103
2 20200106
3 20200107
4 20200108
为了保持数据提取的稳定性,tushare 建议先建立一个专门的函数,实现一个重试机制,见下面代码:
def get_daily(self, ts_code='', trade_date='', start_date='', end_date=''):
for _ in range(3):
try:
if trade_date:
df = self.pro.daily(ts_code=ts_code, trade_date=trade_date)
else:
df = self.pro.