问题描述
get_cb_info返回的convert_value和convert_price字段分别代表什么?如何利用这两个值判断可转债价值?
解决方案
在 ptrade 量化交易平台中,使用 get_cb_info() 接口获取可转债基础信息时,会返回 convert_price(转股价格)和 convert_value(转股价值)两个重要字段。理解它们的区别是进行可转债量化交易的基础。
1. 概念解析
- 转股价格 (convert_price):
- 定义:指可转债持有人将可转债转换为标的股票(正股)时,每股股票所需要支付的价格。
- 特性:这个价格在可转债发行时就已经确定。虽然在存续期间可能会因为正股分红、送股、配股或触发下修条款而发生调整,但在日常交易中,它是一个相对固定的基准值。
- 转股价值 (convert_value):
- 定义:指如果投资者现在将面值为 100 元的可转债按照当前的转股价格转换成正股,这些正股在当前市场上的总价值。
- 计算公式:
转股价值 = (100 / 转股价格) * 正股当前价格 - 特性:由于正股价格在交易时间内是实时波动的,因此转股价值也是一个随正股价格实时波动的动态值。
2. 两者的核心区别
| 特性 | 转股价格 (convert_price) | 转股价值 (convert_value) |
|---|---|---|
| 性质 | 转换的成本基准 | 转换后的实际市值 |
| 波动性 | 相对固定(仅在特定事件下调整) | 实时波动(随正股价格变化) |
| 单位 | 元/股 | 元/张(对应100元面值) |
3. 如何利用这两个值判断可转债价值?
在量化策略中,我们通常不会孤立地看这两个值,而是结合可转债的当前市场价格,计算出转股溢价率,以此来判断可转债的投资价值和属性(股性或债性)。
转股溢价率计算公式:
转股溢价率 = (可转债当前价格 - 转股价值) / 转股价值 * 100%
- 溢价率 < 0(折价):说明转股价值大于可转债价格,理论上存在无风险套利空间(买入可转债 -> 转股 -> 卖出正股)。但在实际A股市场中,由于T+1交易制度,纯折价套利机会较少且转股有时间限制。
- 溢价率较低(如 0% ~ 10%):可转债的股性较强。此时可转债价格与正股价格联动紧密,正股上涨能有效带动可转债上涨,适合看好正股走势的投资者。
- 溢价率较高(如 > 30%):可转债的债性较强。此时可转债价格主要受其债券底底价支撑,正股的小幅上涨很难带动可转债上涨,防御性较强,但进攻性不足。
4. ptrade 策略代码示例
以下代码展示了如何获取可转债信息,并结合实时行情计算转股溢价率:
def initialize(context):
# 设置关注的可转债,例如:浦发转债
g.cb_code = '110059.SS'
set_universe(g.cb_code)
def handle_data(context, data):
# 1. 获取可转债基础信息
cb_info_df = get_cb_info()
if cb_info_df.empty:
return
# 筛选出我们关注的可转债信息
my_cb_info = cb_info_df[cb_info_df['bond_code'] == g.cb_code]
if my_cb_info.empty:
return
convert_price = my_cb_info['convert_price'].values[0]
convert_value = my_cb_info['convert_value'].values[0]
# 2. 获取可转债当前市场价格
current_cb_price = data[g.cb_code]['close']
# 3. 计算转股溢价率 (注意:get_cb_info 返回的 convert_value 可能是基于昨日收盘价,
# 严格的实时溢价率应使用实时正股价格重新计算,此处仅作演示)
premium_rate = (current_cb_price - convert_value) / convert_value
log.info(f"可转债: {g.cb_code}")
log.info(f"转股价格: {convert_price}")
log.info(f"转股价值: {convert_value}")
log.info(f"当前市价: {current_cb_price}")
log.info(f"转股溢价率: {premium_rate:.2%}")
# 简单的策略逻辑:如果溢价率极低且有资金,可以考虑买入
if premium_rate < 0.05 and context.portfolio.cash > current_cb_price * 10:
order(g.cb_code, 10)
log.info("溢价率低于5%,买入10张")
总结:convert_price 是转换的标尺,convert_value 是转换后的实际价值。通过它们与可转债市价的对比,量化交易者可以清晰地刻画出可转债当前的风险收益特征,从而制定相应的双低策略、折价套利策略或正股替代策略。