栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

如何利用tushare获得上市公司的日线行情

如何利用tushare获得上市公司的日线行情

本人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 + 1
    print(round)

通过两个多小时的运行,成功获得了股票上市以来所有的日线数据:

以下是完整代码:


import tushare as ts
import numpy as np
import pandas as pd
import time
import datetime
import os


ts.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 + 1
    print(round)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673399.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号