本人tushare ID:476096,欢迎交流,可通过此链接注册tushare账号:Tushare大数据社区
大家都知道日线行情对于我们分析股票非常有帮助,那我们如何通过tushare的接口实现这一需求呢。
首先我们打开tushare的数据接口,发现日线行情是在行情数据中,其中还有输入参数的输出参数的介绍 ,通过浏览接口描述的使用说明我们发现调用步骤如下:
首先我们要先用自己独特的token获取接口调用权限,token在个人主页的介绍中可见:
ts.set_token('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
pro = ts.pro_api()
接下来我们通过基础数据接口中的股票列表获取目前正常上市的所有股票:
data0 = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
stock_list = data0["ts_code"]
我们想要获得今天的时间,可使用datetime库:
now_time = datetime.datetime.now().strftime('%Y%m%d')
接下来我们利用已经获取的股票列表进行日线数据的获取,并且存入csv文件中,由于每次最多调用5000条数据,所以将1990年以来分成两段时间进行获取:
round = 0
for entity in stock_list:path = ['xxxxxxxxxxxxxxxxxxxxxx',entity,'daily.csv']path = ''.join(path)data2 = pro.query('daily', ts_code= entity, start_date='20110101', end_date= now_time)data2.to_csv(path, mode='w', index=False, sep=',', header= 1)data1 = pro.query('daily', ts_code=entity, start_date='19900101', end_date='20101231')data1.to_csv(path, mode='a', index=False, sep=',', header= 0)round = round + 1print(round)
通过两个多小时的运行,成功获得了股票上市以来所有的日线数据:
以下是完整代码:
import tushare as ts
import numpy as np
import pandas as pd
import time
import datetime
import osts.set_token('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
pro = ts.pro_api()
data0 = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
# print(type(data0))stock_list = data0["ts_code"]
now_time = datetime.datetime.now().strftime('%Y%m%d')
# print(now_time)
round = 0
for entity in stock_list:path = ['xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',entity,'daily.csv']path = ''.join(path)data2 = pro.query('daily', ts_code= entity, start_date='20110101', end_date= now_time)data2.to_csv(path, mode='w', index=False, sep=',', header= 1)data1 = pro.query('daily', ts_code=entity, start_date='19900101', end_date='20101231')data1.to_csv(path, mode='a', index=False, sep=',', header= 0)round = round + 1print(round)