教你使用Akshare获取A股可转债相关信息
Akshare是一个非常好用的开源A股数据获取模块,它是基于 Python 的财经数据接口库,目的是实现对A股、美股、期货等金融产品的基本面数据、实时和历史行情数据、衍生数据从数据采集、数据清洗到数据落地的一套工具,主要用于学术研究目的。
今天我们就来学习用它获取可转债的相关数据。
1.准备
开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。
(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.
(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。
请选择以下任一种方式输入命令安装依赖:
1. Windows 环境 打开 Cmd (开始-运行-CMD)。
2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install akshare --upgrade
目前 AKShare 仅支持 Python 3.7(64 位) 及以上版本。如果遇到 xxx has no attribute xxx, 大概率是Python版本的问题。
2.获取基本信息
获取沪深可转债的基本信息,基本信息中包括债券代码、债券简称、申购日期、申购代码、申购上限、正股代码、正股简称、正股价、转股价、转股价值、债现价、转股溢价率、发行规模、中签号发布日、中签率、上市时间等信息。:
import akshare as ak
bond_zh_cov_df = ak.bond_zh_cov()
print(bond_zh_cov_df)
一个使用小示例:如果你想要将可转债代码和正股代码对应起来:
# 公众号:二七阿尔量化
import akshare as ak
bond_zh_cov_df = ak.bond_zh_cov()
code_map = bond_zh_cov_df.set_index("债券代码")
code_map = code_map.to_dict()
cb_stock_code = code_map["正股代码"]
print(cb_stock_code)
效果如下:
{'113652': '603568', '118015': '688595', '127067': '000703', '123153': '300956', '123152': '300727', '113651': '603992', '118014': '688556', '113061': '601689', '118013': '688208', '127066': '002850', '118012': '688321', '118011': '688689', '113650': '603916', '123151': '300869', '123150': '300406', '118010': '688026', '113649': '603810', '118009': '688059', .....}
在code_map.to_dict()后的变量里,我们可以获取可转债代码与其任意字段的map字典, 比如转股溢价率:
# 公众号:二七阿尔量化
import akshare as ak
bond_zh_cov_df = ak.bond_zh_cov()
code_map = bond_zh_cov_df.set_index("债券代码")
code_map = code_map.to_dict()
cb_stock_code = code_map["正股代码"]
temp_data = code_map["转股溢价率"]
print(temp_data)
# {'113652': 4.55, '118015': 7.98, '127067': 12.66, '123153': 7.61, '123152': -4.81, '113651': 3.24, '118014': 1.19, '113061': -17.82, '118013': 10.36, '127066': 0.6, '118012': 2.55, '118011': 9.79, '113650': 19.75, '123151': 34.24, '123150': 26.08, '118010': 15.41, '113649': 34.8, '118009': 41.44, '111005': 15.72, '118008': 42.31, '110087': 31.92 ......
3.获取行情数据
获取可转债的日线行情:
import akshare as ak
bond_zh_hs_cov_daily_df = ak.bond_zh_hs_cov_daily(symbol="sh113542")
print(bond_zh_hs_cov_daily_df)
# date open high low close volume
# 4 2019-08-29 108.68 108.99 108.56 108.71 69900
# .. ... ... ... ... ... ...
# 705 2022-07-22 110.03 110.86 110.03 110.40 50830
# [706 rows x 6 columns]
获取可转债分钟级行情数据:
import akshare as ak
bond_zh_hs_cov_min_df = ak.bond_zh_hs_cov_min(symbol="sz123124", period='1', adjust='', start_date="1979-09-01 09:32:00", end_date="2222-01-01 09:32:00")
print(bond_zh_hs_cov_min_df)
# 时间 开盘 收盘 ... 成交量 成交额 最新价
# 0 2022-07-22 09:30:00 116.200 116.200 ... 67 77854.0 116.2000
# .. ... ... ... ... ... ... ...
# 239 2022-07-22 14:59:00 116.000 116.000 ... 0 0.0 115.7802
# 240 2022-07-22 15:00:00 116.000 116.000 ... 97 112520.0 115.7819
bond_zh_hs_cov_min 支持以下参数:symbol(转债代码)、period(分钟级数据周期)、adjust(复权类型)、start_date(起始时间)、end_date(终止时间)。
其中 period 支持 '1', '5', '15', '30', '60' 分钟级数据。
adjust 支持前复权("qfq"), 后复权("hfq"), 或不复权(空值 "")。
4.可转债比价表
可转债比价表中有转股溢价率、纯债溢价率以及赎回强赎的触发价,有时候也是我们参考的重要指标:
import akshare as ak
bond_cov_comparison_df = ak.bond_cov_comparison()
print(bond_cov_comparison_df)
# 序号 转债代码 转债名称 转债最新价 ... 纯债价值 开始转股日 上市日期 申购日期
# 0 1 113652 伟22转债 - ... - 20230130 - 20220722
# 1 2 127067 恒逸转2 - ... 88.8369 20230127 - 20220721
# 2 3 123153 英力转债 - ... 95.5621 20230130 - 20220721
除了这些数据以外,akshare中还有可转债价值分析、溢价率分析数据,以及集思录相关数据,大家有兴趣可以访问akshare文档查看:
https://www.akshare.xyz/data/bond/bond.html
我们的文章到此就结束啦,如果你喜欢今天的量化投资内容,请持续关注二七阿尔量化。
有任何问题,可以在公众号后台回复:加群,回答相应红字验证信息,进入互助群询问。
希望你能在下面点个赞和在看支持我继续创作,谢谢!
欢迎关注公众号:二七阿尔量化