3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,使用 get_cb_info() 接口获取可转债基础信息时,会返回 convert_price(转股价格)和 convert_value(转股价值)两个重要字段。理解它们的区别是进行可转债量化交易的基础。
转股价值 = (100 / 转股价格) * 正股当前价格| 特性 | 转股价格 (convert_price) | 转股价值 (convert_value) |
|---|---|---|
| 性质 | 转换的成本基准 | 转换后的实际市值 |
| 波动性 | 相对固定(仅在特定事件下调整) | 实时波动(随正股价格变化) |
| 单位 | 元/股 | 元/张(对应100元面值) |
在量化策略中,我们通常不会孤立地看这两个值,而是结合可转债的当前市场价格,计算出转股溢价率,以此来判断可转债的投资价值和属性(股性或债性)。
转股溢价率计算公式:
转股溢价率 = (可转债当前价格 - 转股价值) / 转股价值 * 100%
以下代码展示了如何获取可转债信息,并结合实时行情计算转股溢价率:
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 是转换后的实际价值。通过它们与可转债市价的对比,量化交易者可以清晰地刻画出可转债当前的风险收益特征,从而制定相应的双低策略、折价套利策略或正股替代策略。