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

ptrade 平台可转债委托时取整10张的规则是什么?

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

问题描述

可转债委托时取整10张,这个规则是什么?

/

解决方案

在 ptrade 量化交易平台中,关于“可转债委托时取整10张”的规则,主要体现在目标数量或目标价值类的下单函数中,以及回测环境的最小下单量校验上。以下是该规则的详细解析:

1. 目标类下单函数的自动取整

当您使用 order_target(指定目标数量买卖)、order_value(指定目标价值买卖)或 order_target_value(指定持仓市值买卖)这三个函数时,系统会根据当前价格和目标价值计算出需要买卖的数量。为了符合交易所的交易规则,ptrade 引擎在委托可转债时,会自动将计算出的数量取整为 10 张的整数倍(委托股票时则取整为 100 股)。

2. 回测与交易环境的差异

  • 回测场景:在使用 order 函数时,系统会进行最小下单数量校验。可转债的最小下单量为 10 张(股票、ETF、LOF 为 100 股)。如果计算出的买入数量不足 10 张,可能会导致委托失败或被忽略。
  • 交易场景:实盘交易接口通常不做 amount 校验,直接将您的报单发送到券商柜台。但由于沪深交易所对可转债的申报数量要求通常是 10 张或其整数倍,如果您发送了非 10 张整数倍的买单,柜台或交易所会将其作为废单处理。

3. 规则的例外情况

全部卖出时不受限制:当您需要清仓卖出所有可转债时(例如使用 order_target(security, 0)),系统会卖出您当前持有的所有可用数量,此时不受取整 10 张的限制。这主要是为了处理因分红、转股或其他历史原因产生的零股/零张持仓。

4. 代码示例

以下是一个在 ptrade 中交易可转债的示例,展示了取整规则的应用:

def initialize(context):
    # 设置操作的可转债代码(例如:国贸转债)
    g.security = '110033.SS'
    set_universe(g.security)

def handle_data(context, data):
    # 1. 使用 order_value 买入价值 10000 元的可转债
    # 假设当前价格为 110 元,理论数量为 10000 / 110 = 90.90 张
    # 系统会自动取整为 10 的倍数,即实际委托买入 90 张
    order_value(g.security, 10000)
    
    # 2. 使用 order_target 调整仓位到 150 张
    # 如果当前持仓 90 张,系统会计算需要买入 60 张,符合 10 张整数倍规则
    order_target(g.security, 150)
    
    # 3. 清仓卖出
    # 假设当前持仓 155 张(包含历史零张),卖出所有持仓时不受 10 张取整限制,直接卖出 155 张
    if data[g.security]['close'] > 120:
        order_target(g.security, 0)

总结:在编写 ptrade 可转债策略时,建议开发者在自定义计算下单数量时,主动使用 int(amount / 10) * 10 进行向下取整,以避免在实盘中因数量不合规而产生废单。