AKShare-股票数据-B 股数据
作者寄语
本次更新 B 股的实时行情和历史行情数据,当然也包括了分时行情的数据。
更新接口
"stock_zh_b_spot_em" # 实时行情数据-东财 "stock_zh_b_spot" # 实时行情数据-新浪 "stock_zh_b_daily" # 历史行情数据 "stock_zh_b_minute" # 分时数据
B股
实时行情数据
实时行情数据-东财
接口: stock_zh_b_spot_em
目标地址: http://quote.eastmoney.com/center/gridlist.html#hs_b_board
描述: 东方财富网-实时行情数据
限量: 单次返回所有 B 股上市公司的实时行情数据
输入参数
名称 | 类型 | 描述 |
---|---|---|
- | - | - |
输出参数
名称 | 类型 | 描述 |
---|---|---|
序号 | int64 | - |
代码 | object | - |
名称 | object | - |
最新价 | float64 | - |
涨跌幅 | float64 | 注意单位: % |
涨跌额 | float64 | - |
成交量 | float64 | 注意单位: 手 |
成交额 | float64 | 注意单位: 元 |
振幅 | float64 | 注意单位: % |
最高 | float64 | - |
最低 | float64 | - |
今开 | float64 | - |
昨收 | float64 | - |
量比 | float64 | - |
换手率 | float64 | 注意单位: % |
市盈率-动态 | float64 | - |
市净率 | float64 | - |
接口示例
import akshare as ak
stock_zh_b_spot_em_df = ak.stock_zh_b_spot_em()
print(stock_zh_b_spot_em_df)
数据示例
序号 代码 名称 最新价 涨跌幅 ... 昨收 量比 换手率 市盈率-动态 市净率
0 1 900920 上柴B股 0.585 3.72 ... 0.564 3.89 1.16 13.90 0.63
1 2 200054 建车B 6.100 3.39 ... 5.900 4.46 0.47 -38.36 3.66
2 3 900926 宝信B 3.759 1.54 ... 3.702 1.40 0.54 19.95 4.57
3 4 200596 古井贡B 98.000 1.03 ... 97.000 0.99 0.09 15.63 2.76
4 5 900923 百联B股 0.898 1.01 ... 0.889 1.71 0.15 10.13 0.59
.. ... ... ... ... ... ... ... ... ... ... ...
109 110 900947 振华B股 0.294 -4.23 ... 0.307 0.96 0.22 58.32 0.71
110 111 900921 丹科B股 0.244 -4.69 ... 0.256 0.59 1.05 -33.44 1.23
111 112 200771 杭汽轮B 14.940 -4.84 ... 15.700 2.46 0.31 11.01 1.13
112 113 900946 天雁B股 0.212 -5.36 ... 0.224 0.95 0.50 135.68 1.85
113 114 900908 氯碱B股 0.653 -6.71 ... 0.700 1.72 1.67 3.66 0.86
实时行情数据-新浪
接口: stock_zh_b_spot
目标地址: http://vip.stock.finance.sina.com.cn/mkt/#hs_b
描述: B 股数据是从新浪财经获取的数据, 重复运行本函数会被新浪暂时封 IP, 建议增加时间间隔
限量: 单次返回所有 B 股上市公司的实时行情数据
输入参数-实时行情数据
名称 | 类型 | 描述 |
---|---|---|
- | - | - |
输出参数-实时行情数据
名称 | 类型 | 描述 |
---|---|---|
代码 | str | - |
名称 | str | - |
最新价 | float | - |
涨跌额 | float | - |
涨跌幅 | float | 注意单位: % |
买入 | float | - |
卖出 | float | - |
昨收 | float | - |
今开 | float | - |
最高 | float | - |
最低 | float | - |
成交量 | float | 注意单位: 股 |
成交额 | float | 注意单位: 元 |
接口示例-实时行情数据
import akshare as ak
stock_zh_b_spot_df = ak.stock_zh_b_spot()
print(stock_zh_b_spot_df)
数据示例-实时行情数据
代码 名称 最新价 涨跌额 ... 最高 最低 成交量 成交额
0 sh900901 云赛B股 0.451 0.001 ... 0.459 0.447 869400.0 395346.0
1 sh900902 市北B股 0.290 -0.004 ... 0.294 0.290 858200.0 251011.0
2 sh900903 大众B股 0.290 -0.006 ... 0.296 0.289 1775362.0 518333.0
3 sh900904 神奇B股 0.536 -0.006 ... 0.540 0.531 37060.0 19907.0
4 sh900905 老凤祥B 3.498 -0.011 ... 3.509 3.495 300400.0 1051414.0
.. ... ... ... ... ... ... ... ... ...
85 sz200761 本钢板B 3.260 -0.120 ... 3.380 3.240 2190800.0 7214306.0
86 sz200771 杭汽轮B 14.940 -0.760 ... 15.800 14.660 839948.0 12673391.0
87 sz200869 张 裕B 14.000 0.000 ... 14.000 13.810 176407.0 2461886.0
88 sz200992 中 鲁B 3.120 0.000 ... 3.130 3.080 17700.0 55129.0
89 sz201872 招港B 8.780 -0.220 ... 9.050 8.750 313566.0 2776833.0
历史行情数据
历史行情数据
接口: stock_zh_b_daily
目标地址: https://finance.sina.com.cn/realstock/company/sh900901/nc.shtml(示例)
描述: B 股数据是从新浪财经获取的数据, 历史数据按日频率更新
限量: 单次返回指定 B 股上市公司指定日期间的历史行情日频率数据
输入参数
名称 | 类型 | 描述 |
---|---|---|
symbol | str | symbol='sh900901'; 股票代码可以在 ak.stock_zh_b_spot() 中获取 |
start_date | str | start_date='20201103'; 开始查询的日期 |
end_date | str | end_date='20201116'; 结束查询的日期 |
adjust | str | 默认返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据; hfq-factor: 返回后复权因子; qfq-factor: 返回前复权因子 |
股票数据复权
1.为何要复权:由于股票存在配股、分拆、合并和发放股息等事件,会导致股价出现较大的缺口。若使用不复权的价格处理数据、计算各种指标,将会导致它们失去连续性,且使用不复权价格计算收益也会出现错误。为了保证数据连贯性,常通过前复权和后复权对价格序列进行调整。
2.前复权:保持当前价格不变,将历史价格进行增减,从而使股价连续。前复权用来看盘非常方便,能一眼看出股价的历史走势,叠加各种技术指标也比较顺畅,是各种行情软件默认的复权方式。这种方法虽然很常见,但也有两个缺陷需要注意。
2.1 为了保证当前价格不变,每次股票除权除息,均需要重新调整历史价格,因此其历史价格是时变的。这会导致在不同时点看到的历史前复权价可能出现差异。
2.2 对于有持续分红的公司来说,前复权价可能出现负值。
3.后复权:保证历史价格不变,在每次股票权益事件发生后,调整当前的股票价格。后复权价格和真实股票价格可能差别较大,不适合用来看盘。其优点在于,可以被看作投资者的长期财富增长曲线,反映投资者的真实收益率情况。
4.在量化投资研究中普遍采用后复权数据。
输出参数-历史行情数据
名称 | 类型 | 描述 |
---|---|---|
date | datetime64 | 交易日 |
close | float64 | 收盘价 |
high | float64 | 最高价 |
low | float64 | 最低价 |
open | float64 | 开盘价 |
volume | float64 | 成交量; 注意单位: 股 |
outstanding_share | float64 | 流动股本; 注意单位: 股 |
turnover | float64 | 换手率=成交量/流动股本 |
接口示例-历史行情数据(前复权)
import akshare as ak
stock_zh_b_daily_qfq_df = ak.stock_zh_b_daily(symbol="sh900901", start_date="20101103", end_date="20201116", adjust="qfq")
print(stock_zh_b_daily_qfq_df)
数据示例-历史行情数据(前复权)
date open high ... volume outstanding_share turnover
0 2010-11-03 0.55 0.55 ... 1508633.0 293370465.0 0.005142
1 2010-11-04 0.54 0.54 ... 1791380.0 293370465.0 0.006106
2 2010-11-05 0.54 0.55 ... 1700666.0 293370465.0 0.005797
3 2010-11-08 0.55 0.56 ... 2519000.0 293370465.0 0.008586
4 2010-11-09 0.56 0.56 ... 1569375.0 293370465.0 0.005349
... ... ... ... ... ... ...
2276 2020-11-10 0.49 0.49 ... 105610.0 293370465.0 0.000360
2277 2020-11-11 0.49 0.49 ... 257303.0 293370465.0 0.000877
2278 2020-11-12 0.49 0.49 ... 172259.0 293370465.0 0.000587
2279 2020-11-13 0.48 0.49 ... 172150.0 293370465.0 0.000587
2280 2020-11-16 0.48 0.49 ... 236700.0 293370465.0 0.000807
接口示例-历史行情数据(后复权)
import akshare as ak
stock_zh_b_daily_hfq_df = ak.stock_zh_b_daily(symbol="sh900901", start_date='20201103', end_date='20201116', adjust="hfq")
print(stock_zh_b_daily_hfq_df)
数据示例-历史行情数据(后复权)
date open high ... volume outstanding_share turnover
0 2020-11-03 180.74 184.17 ... 259617.0 293370465.0 0.000885
1 2020-11-04 184.17 187.97 ... 171320.0 293370465.0 0.000584
2 2020-11-05 184.93 187.97 ... 403833.0 293370465.0 0.001377
3 2020-11-06 187.97 187.97 ... 108805.0 293370465.0 0.000371
4 2020-11-09 185.69 190.64 ... 415910.0 293370465.0 0.001418
5 2020-11-10 190.26 190.26 ... 105610.0 293370465.0 0.000360
6 2020-11-11 188.35 189.11 ... 257303.0 293370465.0 0.000877
7 2020-11-12 189.11 189.11 ... 172259.0 293370465.0 0.000587
8 2020-11-13 185.69 188.73 ... 172150.0 293370465.0 0.000587
9 2020-11-16 186.83 189.49 ... 236700.0 293370465.0 0.000807
接口示例-前复权因子
import akshare as ak
qfq_factor_df = ak.stock_zh_b_daily(symbol="sh900901", adjust="qfq-factor")
print(qfq_factor_df)
数据示例-前复权因子
date qfq_factor
0 2021-07-28 1.0000000000000000
1 2020-07-24 1.0198866222149000
2 2019-07-26 1.0348110274690000
3 2018-07-27 1.0498863629661000
4 2017-06-01 1.0683657827715000
5 2016-06-07 1.0812587249539000
6 2007-06-26 1.0888116113319000
7 2006-06-07 1.1976927724651000
8 2005-06-09 1.3880065788605000
9 2004-06-09 1.4194157006466000
10 2003-06-11 1.4324281797957000
11 2002-06-19 1.4463411525706000
12 2001-07-17 1.5936677862694000
13 2000-06-23 1.6120404854245000
14 1998-07-07 1.8138100600697000
15 1996-06-03 2.1765720720836000
16 1995-05-29 2.3942292792919000
17 1994-05-09 2.8730751351503000
18 1993-03-29 3.3877374747485000
19 1992-12-01 3.8807719054656000
20 1992-02-21 388.0771905465590000
21 1900-01-01 388.0771905465590000
接口示例-后复权因子
import akshare as ak
hfq_factor_df = ak.stock_zh_b_daily(symbol="sh900901", adjust="hfq-factor")
print(hfq_factor_df)
数据示例-后复权因子
date hfq_factor
0 2021-07-28 388.0771905465590000
1 2020-07-24 380.5101293551464000
2 2019-07-26 375.0222796675719000
3 2018-07-27 369.6373286059189000
4 2017-06-01 363.2437474175006300
5 2016-06-07 358.9124245569568600
6 2007-06-26 356.4227149192948300
7 2006-06-07 324.0206499266317000
8 2005-06-09 279.5931924653872300
9 2004-06-09 273.4062969500634000
10 2003-06-11 270.9226165893487000
11 2002-06-19 268.3164963237175600
12 2001-07-17 243.5119752624272000
13 2000-06-23 240.7366279292711800
14 1998-07-07 213.9569071149911000
15 1996-06-03 178.2974225958258000
16 1995-05-29 162.0885659962053200
17 1994-05-09 135.0738049968378200
18 1993-03-29 114.5535016922676000
19 1992-12-01 100.0000000000000000
20 1992-02-21 1.0000000000000000
21 1900-01-01 1.0000000000000000
分时数据
接口: stock_zh_b_minute
目标地址: http://finance.sina.com.cn/realstock/company/sh900901/nc.shtml
描述: 新浪财经 B 股股票或者指数的分时数据,目前可以获取 1, 5, 15, 30, 60 分钟的数据频率, 可以指定是否复权
限量: 单次返回指定股票或指数的指定频率的最近交易日的历史分时行情数据
输入参数
名称 | 类型 | 描述 |
---|---|---|
symbol | str | symbol='sh900901'; 同日频率数据接口 |
period | str | period='1'; 获取 1, 5, 15, 30, 60 分钟的数据频率 |
adjust | str | adjust=""; 默认为空: 返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据; |
输出参数
名称 | 类型 | 描述 |
---|---|---|
day | object | - |
open | float64 | - |
high | float64 | - |
low | float64 | - |
close | float64 | - |
volume | float64 | - |
接口示例
import akshare as ak
stock_zh_b_minute_df = ak.stock_zh_b_minute(symbol='sh900901', period='1', adjust="qfq")
print(stock_zh_b_minute_df)
数据示例
day open high low close volume
0 2020-10-30 11:24:00 0.471946 0.471946 0.47 0.47 20000
1 2020-10-30 11:27:00 0.470973 0.470973 0.47 0.47 11300
2 2020-10-30 13:01:00 0.470973 0.470973 0.47 0.47 7400
3 2020-10-30 13:03:00 0.470000 0.470000 0.47 0.47 2993
4 2020-10-30 13:05:00 0.470000 0.470000 0.47 0.47 7
... ... ... ... ... ...
19995 2021-09-24 14:52:00 0.450998 0.450998 0.45 0.45 10350
19996 2021-09-24 14:55:00 0.450000 0.450000 0.45 0.45 5000
19997 2021-09-24 14:56:00 0.450000 0.450000 0.45 0.45 4000
19998 2021-09-24 14:57:00 0.450000 0.450000 0.45 0.45 100
19999 2021-09-24 15:00:00 0.450000 0.450000 0.45 0.45 11100