历史行情数据是做量化投资的基础必用数据。怎么借助ChatGPT来零代码实现批量下载沪深京 A 股历史行情数据呢?
在ChatGPT里面输入提示词如下:
写一段Python代码,用akshare库下载沪深京所有 A 股历史行情数据,具体步骤:
- 获取所有沪深京股票代码
接口: stock_zh_a_spot_em
输入参数
名称类型描述
---
输出参数
名称类型描述
序号int64-
代码object-
2、下载沪深京 A 股历史行情数据
后复权;开始日期:2013年1月1日;结束日期:2023年6月13日;日线数据;
下面是akshare库的接口信息:
接口: stock_zh_a_hist
输入参数
名称类型描述
symbolstrsymbol='603777'; 股票代码可以在 ak.stock_zh_a_spot_em() 中获取
periodstrperiod='daily'; choice of {'daily', 'weekly', 'monthly'}
start_datestrstart_date='20210301'; 开始查询的日期
end_datestrend_date='20210616'; 结束查询的日期
adjuststr默认返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据
3、保存所有数据到F盘的文件名为stocklist的excel文件中。
程序运行后,出错了:
ChatGPT修复后,运行正常:
但是,数据没爬取几分钟,就停下来了。因为akshare的股票历史行情数据来自于爬取东方财富网站,因此猜测是东方财富网的反爬虫策略,不让一个IP地址的电脑长时间爬取数据。
所以,最好换一个数据源。
证券宝baostock是一个免费、开源的证券数据平台(无需注册)。可以提供大量准确、完整的证券历史行情数据、上市公司财务数据等。
现在cmd命令行中安装baostock的Python库:pip install baostock
然后,把证券宝官网上获取历史A股数据的方法和示例,发送给ChatGPT,让它记住。
接下来让ChatGPT下载行情数据:
写一段Python代码,用baostock库下载沪深京所有 A 股历史行情数据,具体要求:后复权;开始日期:2020年1月1日;结束日期:2023年6月13日;日线数据;
下载完成后保存数据到F盘的stockdata.csv文件中。
程序运行,报错,说是日期格式出错了,于是让ChatGPT参考baostock官网上的日期格式来修改代码:
再次运行,成功下载。
需要注意的是,由于数据量很大,所以耗时较长,需要耐心等待。