Akshare 是一个非常好用的开源A股数据获取模块,它是基于 Python 的财经数据接口库,目的是实现对A股、美股、期货等金融产品的基本面数据、实时和历史行情数据、衍生数据从数据采集、数据清洗到数据落地的一套工具,主要用于学术研究目的。
今天我们就来学习用它获取可转债的相关数据。
1.准备
开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。
(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.
(可选2) 此外,推荐大家用VSCode编辑器来编写小型Python项目:Python 编程的最好搭档—VSCode 详细指南
Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),输入命令安装依赖:
pip install akshare --upgrade
目前 AKShare 仅支持 Python 3.7(64 位) 及以上版本。如果遇到 xxx has no attribute xxx, 大概率是Python版本的问题。
2.Akshare 获取可转债基本信息
获取沪深可转债的基本信息,基本信息中包括债券代码、债券简称、申购日期、申购代码、申购上限、正股代码、正股简称、正股价、转股价、转股价值、债现价、转股溢价率、发行规模、中签号发布日、中签率、上市时间等信息。:
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
我们的文章到此就结束啦,如果你喜欢今天的 Python 教程,请持续关注Python实用宝典。
有任何问题,可以在公众号后台回复:加群,回答相应验证信息,进入互助群询问。
原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!
Python实用宝典 ( pythondict.com )
不只是一个宝典
欢迎关注公众号:Python实用宝典