教你使用Akshare获取A股可转债相关信息

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实用宝典。

有任何问题,可以在公众号后台回复:加群,回答相应验证信息,进入互助群询问。

原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!

给作者打赏,选择打赏金额
¥1¥5¥10¥20¥50¥100¥200 自定义

​Python实用宝典 ( pythondict.com )
不只是一个宝典
欢迎关注公众号:Python实用宝典

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注