轻松下载所有A股历史行情数据(附Python完整代码)

在量化交易的世界中,获取并分析历史行情数据是至关重要的第一步。今天,我将分享如何完整地下载所有A股历史行情数据,并将其存储至你的本地电脑,为你的技术指标策略测试和交易策略开发打下坚实基础。
一、选择数据源
数据源的选择是获取高质量数据的前提。东方财富网、同花顺、雪球等知名财经网站提供了丰富的历史行情数据下载服务。以东方财富网为例,我们可以通过其提供的历史行情数据接口stock_zh_a_hist来获取所需的数据。
图片
二、设置参数
我们选择的参数是,2023-01-01直至今天的所有A股后复权的日频率数据。大家也可以根据自己需求调整参数,获取对应想要的历史数据。
名称
类型
描述
symbol
str
symbol=’603777′; 股票代码可以在 ak.stock_zh_a_spot_em() 中获取
period
str
period=’daily’; choice of {‘daily’, ‘weekly’, ‘monthly’}
start_date
str
start_date=’20210301′; 开始查询的日期
end_date
str
end_date=’20210616′; 结束查询的日期
adjust
str
默认返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据
timeout
float
timeout=None; 默认不设置超时参数
三、通过Python代码获取数据
通过Python的requests库,我们能够向东方财富网的历史行情数据接口发出精确的HTTP请求,从接口获取所需的股市数据。紧接着通过pandas库可以将这些数据转换为易于分析的DataFrame格式,最后将数据导出为多种格式,如CSV文件,方便我们在本地环境中进行存储和进一步分析。
# 获取所有股票的历史数据def do_load(ak_code, ak_name, period, start_date, end_date, adj, timeout):    print(ak_code, ak_name)    for i in range(3):        try:            # 历史行情数据-后复权            df = ak.stock_zh_a_hist(symbol=ak_code, period=period, start_date=start_date, end_date=end_date, adjust=adj,                                    timeout=timeout)            if df.empty:                continue
            if ak_code.startswith('6') == True:                df['股票代码'] = ak_code + '.SH'            elif ak_code.startswith('8') == True:                df['股票代码'] = ak_code + '.BJ'            else:                df['股票代码'] = ak_code + '.SZ'
            df['股票名称'] = ak_name            df.sort_values(by=['日期'], ascending=True, inplace=True)            df.reset_index(drop=True, inplace=True)
            path = create_path(ak_code)            df.to_csv(path, index=False, mode='w', encoding='gbk')            # 休眠指定的时间            time.sleep(random.uniform(300, 1000) / 100)            break  # 成功运行后跳出循环
        except Exception as e:            # 处理其他未特定捕获的异常            print("发生了其他异常!", e)
四、数据存储
在获取了所有A股的历史行情数据后,下一步是将这些数据存储到本地电脑上。通常,CSV(逗号分隔值)格式因其简单性和广泛的支持而成为首选。利用Python的pandas库,我们可以轻松地将数据保存为CSV文件。通过调用`to_csv`方法,数据被导出并存储在本地磁盘上。经过检查,我的电脑上新增了5000多个CSV文件,这表明我已成功下载了所有A股的历史行情数据。
图片
最后,如果你有兴趣亲自实践上述步骤并编写代码,欢迎加入我们的知识星球。在这里,我们将深入讲解整个程序开发的逻辑和每一段代码的具体作用,帮助你确保在自己的计算机上也能顺畅地执行这些操作。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/106014
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 5天前
下一篇 5天前

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注