老规矩,我先上截图,再贴代码~
对于做量化交易或者短线的朋友,肯定需要每天在收盘后固定的时间获取目前A股的历史交易数据,用于模型的分析回测,因此,,下面小编将给大家展示我目前的方法~
我的数据是来自于Tushare,我非常感谢米哥的帮助~
下面我讲一步一步的贴出我的代码,并做解释~
(1)导入相关模块,当然Tushare模块是必不可少的,具体的安装方法见官网
(2)配置数据存储的路径,获得主要的路径
这个步骤的主要目的是获得程序运行的路径,会结合后面数据保存使用~
(3)设置Tushare参数,并获得目前上市的股票清单
看看stock_list获得的股票清单,哈哈哈下面将开始获得目前所有的上市历史股票数据数据
(4) 获取当前时间,开始对所有数据进行保存~
当然要实现定时获取,这里你只需要使用一个循环+一个time.sleep()就可以轻松解决,咋样,从Tusahre获取数据就是这样简单~
下面看看程序的运行效果,以及我数据保存效果~保存数据效果
原始代码:
import tushare as ts
import os
import pandas as pd
import time
import datetime
## 配置路径
path_main=os.path.abspath(os.path.dirname(os.getcwd()))
path_main_1=os.path.abspath(os.path.join(os.getcwd(), "../.."))
# tushare 设置
ts.set_token('ec6159d9aXXXXXXXXXXXXXXXXXXXXXXXXX')
pro = ts.pro_api()
### 获取更新数据
# 获取目前上市的股票清单
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
stock_list=data['ts_code']
# 获取日线级别数据
# 获取今天时间
now_time = pd.to_datetime(datetime.datetime.now())
end_date=str(now_time)[0:4]+str(now_time)[5:7]+str(now_time)[8:10]
# 设置开始时间
start_date='20180501'
for code_name in stock_list[1:5]:
# 注意采用try函数,避免网络原因而中断程序
try:
df = pro.daily(ts_code=code_name, start_date=start_date, end_date=end_date,fields='ts_code,trade_date,open,high,low,close,vol,amount')
# 设置数据保存路径
file_path =path_main_1+'\\data_output\\DAY_DATA\\'+code_name[0:6]+'.csv'
# 数据保存到本地
df.to_csv(file_path,index=False)
# 提示数据获取成功
tips=code_name+'数据获取成功,并保存~'
print(tips)
#这里设置一个短暂的时间,是因为我的贡献不够,我获取数据是有流量限制的,当然你贡献够这个完全不必要
time.sleep(0.1)
except:
print(code_name+'获取失败~')
time.sleep(20)