本期我们将利用上一期爬取到的上证50的五十只股票代码,学习如何使用API接口从雅虎批量获取交易数据,并将每支股票的交易数据以CSV的格式保存到本地。另外本期还会涉及到一些常用的文件操作。
前言
在这个系列中,我们将共同学习如何借助Python这个强大的工具处理金融数据。在正式开始这个系列的学习之前,需要您具有Python编程的基础知识,至少需要将Python安装好。如果暂时还不满足这一要求的,建议先关注公众号 IT信息教室,学习 Python入门教程。
内容首发于微信公众号IT信息教室,如果您想学习更多AI相关的技能,欢迎搜索关注或微信扫描下方二维码关注~~
设置数据文件保存路径
我们使用函数 getDataFromYahoo 来实现本期的功能:
def getDataFromYahoo(reloadSS50 = False):
这里定义一个默认变量 reloadSS50,如果变量 reloadSS50 的值为False,就表示目前已经获取到了上证50的全部股票代码,否则的话则表示尚未获取上证50的股票代码。
通过一个条件语句,如果尚未获取股票代码的话,则执行上一期的函数 saveSS50Tickers()。否则的话,只需要从本地文件中读取数据。
if reloadSS50 == True:
tickers = saveSS50Tickers()
else:
with open('SS50tickers.pickle', 'rb') as f:
tickers = pickle.load(f)
使用Python中的文件操作打开上一期保存到本地的 ‘SS50tickers.pickle’ 文件,使用 pickle.load 方法读取 pickle 文件中的内容。
接下来,我们为将要存放的股票数据文件创建一个存放路径。使用 os 这个工具包来实现文件目录相关的操作,因此在使用之前需要先导入这个工具包:
import os
为了方便文件的管理,我们希望将数据文件存放在 stockDataFrames 这个文件夹中,如果这个文件夹不存在的话就先新建这个文件夹。
if not os.path.exists('stockDataFrames'):
os.makedirs('stockDataFrames')
接下来,就是按照第一期的内容,根据股票代码通过 API 从搜狐获取交易数据。首先我们设置需要抓取的交易时间,这一操作需要使用 datetime 这个库,因此在使用之前先导入这个工具包:
import datatime as dt
例如,交易开始时间我们设置为2010年