当前位置: 首页 > 工具软件 > BaoStock > 使用案例 >

BaoStock怎样下载股票数据?

公西翊歌
2023-12-01

baostock是个免费开源的证券数据平台,可以通过python API获取证券数据。也有一些投资者喜欢将baostock的数据下载下来进行二次开发使用,那具体要怎么操作呢?

首先我们需要先安装好baostock:

pip install baostock -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn

安装后,在命令行运行:

python -c "import baostock as bs; bs.login()"

输出”login success!”表明安装成功。

假如我们要调取历史数据,那我们就要用到query_history_k_data_plus()函数:

获取A股历史交易数据。可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据,可查询不复权、前复权、后复权数据,适合搭配均线数据进行选股和分析。返回类型为baostock自定义的数据类型,通过get_data()函数可以获取Pandas DataFrame类型的数据。示例代码如下:

code = "sz.399994"
data_fields = "date,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,peTTM,pbMRQ, psTTM,pcfNcfTTM,isST"
start_date = "2022-05-21"
end_date = "2022-05-28"
adjustflag = "2"

kdata_df = bs.query_history_k_data_plus(code, 
       data_fields, 
       start_date=start_date, 
       end_date=end_date,
              frequency='d', 
       adjustflag=adjustflag).get_data()

In [14]: kdata_df
Out[14]:
         date       open       high        low      close   preclose  ...     pctChg     peTTM     pbMRQ     psTTM pcfNcfTTM isST
0  2022-05-23  1333.9767  1339.3266  1323.2326  1339.0444  1323.8745  ...   1.145871  0.000000  0.000000  0.000000  0.000000    0
1  2022-05-24  1338.0567  1340.5022  1270.4979  1270.4979  1339.0444  ...  -5.119061  0.000000  0.000000  0.000000  0.000000    0
2  2022-05-25  1273.4179  1290.6949  1273.4179  1288.6189  1270.4979  ...   1.426291  0.000000  0.000000  0.000000  0.000000    0
3  2022-05-26  1287.7710  1306.6983  1264.3422  1299.1283  1288.6189  ...   0.815555  0.000000  0.000000  0.000000  0.000000    0
4  2022-05-27  1312.1094  1320.1226  1287.6731  1297.4858  1299.1283  ...  -0.126431  0.000000  0.000000  0.000000  0.000000    0

在回测过程中,通常不希望停盘数据对回测造成干扰,可以将停盘数据删除。

if kdata_df.shape[0]:

     kdata_df = kdata_df[(kdata_df['volume'] != '0') & (kdata_df['volume'] != '')]

有些人可能会觉得用BaoStock获取股票数据太麻烦了,还要自己写代码,确实,这种方法对于不太会Python的小伙伴来说并不是太友好,这种情况下可以考虑使用现成接口,不需要自己写代码,拿过来就可以使用了。

 类似资料: