天天看点

tushare pro 版本获取股票历史数据

        最近研究程序化交易,需要使用股票历史数据。由于保存了所有股票历史数据,但是是截至到2018-12-28日,所以开始研究时对数据实时性要求不高,能实现功能即可。

        经过近一个月的研究后, 即在 最基础表(代码、日期、开、高、低、收、成交量)上,形成了基本表(增加了:成交额,昨收、各类差值),最后统计各种均值、使用pandas的 rolling函数统计周期值

        接下来打算要上手实战,对数据的要求高了,实时性要跟上,经过对各种网络获取、XXX专用财经数据接口个人版、tushare数据获取;一番折腾后,发现网络获取速度极慢、且不全;XXX个人版各种插件,极难用还占用几百兆空间。最后选择了tushare。

      tushare 获取使用方法很简单,和各类python三方库一样,一个 pip install tushare 的简单调用命令,会自动下载安装好四个文件。目前最新的版本时 1.2.26,而且有pro 版本

       对tushare 版本不熟,所以直接参考示例操作,发现使用pro版要注册, 接下来注册使用,接下来就可以使用pro命令了

具体代码如下:

版本:python 3.6

ide:pycharm

#先是各种import,用不用的上都import,新手都这样

import tushare as ts
import numpy as np
import pandas as pd
import matplotlib as plt      
pro = ts.pro_api("4811c7c6d6c34a8338c7fcacd53ab99127b56b2c030c675626")     #先引用pro,注册账号会生成一个随机多位数api

#              # tushare获取股票代码表 stocks_list
stocks_list = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')  
# print(stocks_list)                                
# stocks_list.to_csv('D:/MongoDB',sep=',')        #保存数据路径      

先获取了股票列表,图示如下:

ts_code symbol name area industry list_date
000001.SZ 1 平安银行 深圳 银行 19910403
1 000002.SZ 2 万科A 深圳 全国地产 19910129
2 000004.SZ 4 国农科技 深圳 生物制药 19910114
3 000005.SZ 5 世纪星源 深圳 环境保护 19901210
4 000006.SZ 6 深振业A 深圳 区域地产 19920427
5 000007.SZ 7 全新好 深圳 酒店餐饮 19920413
6 000008.SZ 8 神州高铁 北京 运输设备 19920507

        接下来要通过for 循环遍历code,获得各个股票代码的历史数据,由于 ts_code 含有字母,不能作为选择项,

所以选择了第一列 symbol 进行遍历,具体代码如下:

ser1 = stocks_list.iloc[:,1]                         #选择第一列
# print(ser1,type(ser1))
#
for i in ser1:                                       #遍历列表
    stocks_num1= ts.get_hist_data(i)                 #获取代码历史数据


# print(stocks_num1)                                #打印结果      

由于是新手,每一个小功能就print() 一次,查看 具体效果,

目前pro版本对调用次数有限制,所以尽可能多 的检查代码完整性,确认后再调用。

特别提示: 最好添加保存数据路径,方便查看细节效果,避免出现不能调用获取数据的情况发生。