目前实盘主要用到的是A股的日线数据,在BaoStock、Tushare、AKShare等平台上,均能免费下载日线数据,我们先选择BaoStock作为数据源。本文记录从BaoStock下载A股股票列表的过程。
BaoStock安装
打开PyCharm,在下方Terminal窗口输入以下命令,完成安装:
新建源文件
首先,新建源文件,鼠标右键点击PyCharm下Project窗口下的项目目录,例如我的项目目录是mnj,然后依次选择New->Python File:
输入新建文件的文件名,例如data_center_v1,在下方选择文件类型为Python file(默认):
主要代码分析
data_center_v1.py的全部内容见文末,代码主要定义了函数get_stock_codes:
该函数用于获取指定日期的A股代码列表。其中:
– 参数date为指定日期,默认为空
– 返回值为A股代码的列表
不同的date设置,会有3种情况:
– 若参数date为空,则返回最近1个交易日的A股代码列表
– 若参数date不为空,且为交易日,则返回date当日的A股代码列表
– 若参数date不为空,但不为交易日,则打印提示非交易日信息,程序退出
登录BaoStock,每次从BaoStock查询数据前,都需要先登录。
调用baostock的query_all_stock函数查询股票数据,该函数官方文档说明如下:
证券代码查询:query_all_stock()
方法说明:获取指定交易日期所有股票列表。通过API接口获取证券代码及股票交易状态信息,与日K线数据同时更新。可以通过参数‘某交易日’获取数据(包括:A股、指数),数据范围同接口query_history_k_data_plus()。
返回类型:pandas的DataFrame类型。
更新时间:与日K线同时更新。
其中返回类型经过测试存在问题,通过下面代码测试:
打印结果为:
该函数的返回类型为baostock自定义的数据类型,通过get_data函数可以获取Pandas DataFrame类型的返回结果:
打印结果为:
我们打印get_data返回的全部数据,部分结果如下,更多DataFrame打印设置可参考链接。
可以看到,结果中既包含股票代码,也包括一些指数的代码。其中,上证的代码以“sh.”开头,深证的代码以“sz.”开头。代码的命名方式在不同数据源的形式可能不同,例如在ptrade中,上证股票的代码以“.SS”结尾(如600000.SS),深证股票的代码以“.SZ”结尾(如000001.SZ)。
如果获取数据长度为0,表示日期date非交易日。
如果设置了参数date,则打印信息提示date为非交易日。例如,假如调用程序的当天为非交易日,调用函数时使用了如下代码:
那么程序就会提示非交易日,并退出。如果想获取最近交易日的数据,不设置参数直接调用即可:
如果没有设置参数date,则向历史查找最近的交易日,当获取股票数据长度非0时,即找到最近交易日。
注销BaoStock登录。
筛选股票数据,上证和深证股票代码在sh.600000与sz.39900之间,更多DataFrame筛选的方法可参考链接。
返回股票列表。
当打印该函数返回值时,部分输出结果为:
小结
至此,A股股票列表获取完毕,下一篇文章记录从BaoStock下载这些股票的日线数据的方法。
data_center_v1.py的全部代码如下:
博客内容只用于交流学习,不构成投资建议,盈亏自负!
欢迎大家转发、留言。已建微信群用于学习交流,群1已满,群2已创建,感兴趣的读者请扫码加微信!
如果认为博客对您有帮助,可以扫码进行捐赠,感谢!
微信二维码 | 微信捐赠二维码 |
---|---|
![]() |
![]() |
从CSDN跑过来,辛苦大佬了