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

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

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

问题描述

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

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

Question: 在 ptrade 中如何进行可转债转股申报操作并监控转股溢价率?

解决方案

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

在可转债量化套利交易中,当可转债转换为正股的折价(即转股溢价率为负)达到一定阈值时,投资者可以通过买入可转债并申报转股,次日卖出正股来获取无风险或低风险套利收益。本文将详细介绍如何在 ptrade 平台中实现可转债转股溢价率的监控,并调用 debt_to_stock_order 接口进行自动化转股申报。


1. 核心 API 介绍

1.1 获取可转债基础信息:get_cb_info()

用于获取当前市场中可转债的转股价、转股价值及溢价率等关键参数。

  • 适用数据列
    • bond_code: 可转债代码
    • stock_code: 正股代码
    • premium_rate: 溢价率
    • convert_price: 转股价
    • convert_value: 转股价值

1.2 债转股委托接口:debt_to_stock_order(security, amount)

用于提交可转债的转股申报。

  • 参数说明
    • security (str): 可转债代码(如 '110033.SS')。
    • amount (int): 申报转股的数量(以张数或面值为单位,通常转股申报委托输入张数/数量,请根据券商柜台规范设置,负数/正数按接口说明,通常申报数量为正整数张数)。
  • 返回值:订单 ID(Order ID)或 None

2. 可转债转股套利策略逻辑

  1. 每日/定时盘中监控:在交易时间内(如 14:50 尾盘触发),调用 get_cb_info() 获取可转债数据。
  2. 筛选目标标的
    • 处于转股期内;
    • 转股溢价率低于设定阈值(例如 premium_rate < -1.5%)。
  3. 转股申报:对满足条件的持仓或新买入的可转债,调用 debt_to_stock_order 进行转股申报。

3. ptrade 策略源码示例

以下为完整的 ptrade 可转债转股溢价监控与自动化转股申报策略代码:

def initialize(context):
    # 设置套利阈值:当转股溢价率小于 -1.5% 时触发转股
    g.threshold_premium = -1.5
    # 设置监控的目标可转债代码(也可以通过 get_cb_info 动态全市场筛选)
    g.cb_code = '110033.SS'
    set_universe(g.cb_code)
    
    # 定时在尾盘 14:50 执行溢价率监控与转股申报
    run_daily(context, check_and_convert, time='14:50')

def check_and_convert(context):
    # 1. 获取全市场或指定可转债基础信息
    df_cb = get_cb_info()
    
    if df_cb.empty:
        log.warning("获取可转债基础信息失败或无数据")
        return
    
    # 过滤出目标可转债数据
    cb_data = df_cb[df_cb['bond_code'] == g.cb_code]
    if cb_data.empty:
        log.info("未查询到目标可转债 %s 的基础信息" % g.cb_code)
        return
    
    premium_rate = cb_data['premium_rate'].values[0]
    log.info("可转债 %s 当前溢价率为: %.2f%%" % (g.cb_code, premium_rate))
    
    # 2. 判断溢价率是否达到转股套利条件
    if premium_rate < g.threshold_premium:
        # 查询当前账户中该可转债的持仓情况
        position = get_position(g.cb_code)
        if position.enable_amount >= 10:  # 确保有可用持仓(最少10张)
            convert_amount = position.enable_amount
            log.info("触发转股条件,开始对 %s 申报转股,数量: %d 张" % (g.cb_code, convert_amount))
            
            # 3. 执行债转股委托
            order_id = debt_to_stock_order(g.cb_code, convert_amount)
            if order_id:
                log.info("转股申报成功,订单编号: %s" % order_id)
            else:
                log.error("转股申报失败")
        else:
            log.info("溢价率满足要求,但可转债可用持仓不足")

def handle_data(context, data):
    pass

4. 注意事项与风险提示

  1. 转股申报时间限制:可转债转股申报通常仅在交易日 9:30 - 15:00 之间有效,建议在 14:30 - 14:55 之间进行溢价监控与申报。
  2. T+1 卖出限制:当日申报转股后,转换后的股票将于 T+1 日(次一交易日)到达账户并可卖出,期间需承担正股隔夜跳空的市场风险。
  3. 柜台权限与接口测试get_cb_info()debt_to_stock_order() 需要券商开通相应的可转债与基础数据权限,实盘运行前请先通过模拟环境或极小单量测试流程。