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

PTrade 平台如何实现可转债转股申报?(附 debt_to_stock_order 代码示例)

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

问题描述

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

Title: PTrade 可转债套利:使用 debt_to_stock_order 实现转股申报

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

解决方案

PTrade 可转债转股申报实现指南

在 PTrade 量化交易平台中,进行可转债套利或转股操作主要依赖于 debt_to_stock_order 专用接口。以下是详细的接口说明及完整的策略实现代码。


1. 接口函数介绍:debt_to_stock_order

debt_to_stock_order 用于在实盘交易或模拟交易模块中对持有的可转债发起债转股委托。

语法说明

debt_to_stock_order(security, amount)

参数解析

  • security (str): 可转债代码(如 '110033.SS''123002.SZ')。
  • amount (int): 委托转股数量。注意:委托卖出/转股数量通常填负数(如 -1000)或正数,按柜台规则传入,一般按张数算。

返回值

  • 成功创建订单返回 Order 对象的 id (str);创建失败则返回 None

2. 代码实现示例

以下是一个在盘中对持仓可转债进行债转股申报的完整策略逻辑:

def initialize(context):
    # 初始化策略,设置目标可转债
    g.security = '110033.SS'
    set_universe(g.security)
    g.executed = False

def before_trading_start(context, data):
    # 每日重置执行标识
    g.executed = False

def handle_data(context, data):
    # 仅执行一次转股申报操作
    if not g.executed:
        # 获取当前持仓
        pos = get_position(g.security)
        
        # 确认有可用持仓时发起债转股委托
        if pos.enable_amount >= 10:
            # 对持仓内的可转债进行转股操作(申报1000张)
            order_id = debt_to_stock_order(g.security, -1000)
            log.info(f"可转债转股委托已提交,Order ID: {order_id}")
            g.executed = True
            
        # 查看当前所有委托状态
        orders = get_orders()
        log.info(f"当前订单状态: {orders}")

3. 注意事项与使用建议

  1. 适用阶段debt_to_stock_order 仅在交易模块(模拟盘/实盘)的 handle_datatick_data 等盘中事件中有效。
  2. 转股期限与条件:请确保目标可转债已进入转股期,且符合转股溢价率等套利条件。
  3. 申报时间:债转股申报必须在交易日交易时间内提交,提交后可在当日交易结束前撤单,不可撤单时间以交易所规定为准。