🚀 AI 一键生成 ptrade 策略代码
立即体验

PTrade 可转债套利:如何使用 debt_to_stock_order 实现转股申报与转股溢价率监控?

ptrade | 发布时间: 2026/7/23
以下内容由 EasyQuant 生成。

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: PTrade 可转债套利:使用 debt_to_stock_order 实现转股申报与转股溢价率监控

Question: 在 ptrade 中如何对持有的可转债进行转股操作(debt_to_stock_order)?

解决方案

PTrade 可转债套利:转股申报与溢价率监控实现指南

在 PTrade 量化交易平台中,对持有的可转债进行转股申报主要通过 debt_to_stock_order 接口实现。当可转债存在负溢价(即转股价值高于转债市场价格)时,通过自动化策略进行转股申报是实现可转债套利的重要手段。


一、核心 API 接口说明

1. 债转股委托接口:debt_to_stock_order

  • 适用场景:交易模块(仅实盘/模拟盘交易支持)
  • 函数签名debt_to_stock_order(security, amount)
  • 参数说明
    • security (str):可转债代码,例如 '110033.SS'
    • amount (int):委托数量(单位:张),须为正整数或负数(根据柜台要求,通常传入张数,如 1000-1000
  • 返回值:成功返回 Order 对象的 order_id (str),失败返回 None

2. 获取可转债基础信息:get_cb_info

  • 适用场景:研究、交易模块
  • 返回字段:包含 bond_code(转债代码)、stock_code(正股代码)、premium_rate(溢价率)、convert_price(转股价)、convert_value(转股价值)等。

二、可转债自动化转股策略示例

以下策略展示了如何在盘中实时监控持仓可转债的转股溢价率,并在出现负溢价时触发自动转股申报:

def initialize(context):
    # 设置可转债标的(例如:国贸转债)
    g.security = '110033.SS'
    set_universe(g.security)
    g.flag = False

def before_trading_start(context, data):
    # 每日重置触发标识
    g.flag = False

def handle_data(context, data):
    if g.flag:
        return
    
    # 获取当前持仓
    position = get_position(g.security)
    
    # 如果持有该可转债,检查转股溢价率
    if position.amount > 0:
        # 查询可转债基础信息数据表
        cb_df = get_cb_info()
        if cb_df is not None and not cb_df.empty:
            target_info = cb_df[cb_df['bond_code'] == g.security]
            
            if not target_info.empty:
                # 获取当前溢价率 (premium_rate)
                premium_rate = target_info['premium_rate'].values[0]
                log.info("%s 当前转股溢价率: %s%%" % (g.security, premium_rate))
                
                # 当折价达到设定阈值(例如溢价率 < -0.5%)时触发转股
                if premium_rate < -0.5:
                    log.info("触发转股条件,开始进行转股申报...")
                    # 进行转股委托
                    order_id = debt_to_stock_order(g.security, position.amount)
                    if order_id:
                        log.info("转股申报成功,订单ID号:%s" % order_id)
                        g.flag = True
                    else:
                        log.error("转股申报失败!")

三、注意事项与踩坑指南

  1. 交易权限与可转债转股期
    • 可转债必须进入转股期后(通常为发行后6个月)方可执行转股操作。
    • 需确保账户已开通可转债交易权限。
  2. 转股申报时间
    • 转股申报需在交易日的盘中交易时间进行(如 9:30-11:30, 13:00-15:00)。
  3. T+1 卖出限制
    • 当日提交转股申报成功后,转换成的正股通常在 T+1 交易日 才能卖出,因此需承担隔夜正股价格波动的市场风险。
  4. 数据权限要求
    • 调用 get_cb_info() 依赖券商的数据权限,若调用返回空 DataFrame,请联系券商确认开通相关基础数据权限。