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

ptrade 平台 ETF 申购赎回与套利开发指南(附 Python 代码示例)

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

问题描述

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

Title: ptrade ETF 申赎与实盘套利:etf_purchase_redemption 接口应用

Question: 请教 ptrade 中实现 ETF 申购与赎回的 API 用法和代码示例

解决方案

ptrade 平台 ETF 申购赎回与套利开发指南

在 ptrade 量化交易终端中,可以通过系统提供的 ETF 专用接口快速实现 ETF 的申购、赎回以及成分券篮子下单,从而搭建高效的 ETF 日内折溢价套利策略。


一、核心 API 接口说明

1. etf_purchase_redemption(申购/赎回)

用于发起单只 ETF 基金的申购与赎回操作。

  • 适用场景:仅支持 Ptrade 客户端、仅在股票交易模块(实盘/模拟盘)可用。
  • 语法etf_purchase_redemption(etf_code, amount, limit_price=None)
  • 参数
    • etf_code (str): ETF 标的代码(如 '510050.SS')。
    • amount (int): 申赎数量。正数表示申购,负数表示赎回
    • limit_price (float): 买卖限价(可选)。
  • 返回值:成功返回 order_id (str),失败返回 None

2. etf_basket_order(成分券篮子下单)

在套利交易中,通常需要配合成分券一键买卖。

  • 语法etf_basket_order(etf_code, amount, price_style=None, position=True, info=None)
  • 主要参数
    • etf_code (str): ETF 代码。
    • amount (int): 下单篮子份数,正数表示买入,负数表示卖出
    • price_style (str): 委托价位,如 'S1'(卖一)、'B1'(买一)、'new'(最新价)。

二、ETF 申赎与套利代码示例

以下示例展示了如何在 handle_data 中结合 IOPV 溢价情况,进行买入成分券并申购 ETF 的基础逻辑:

def initialize(context):
    # 设置操作的 ETF 标的
    g.etf = '510050.SS'
    set_universe(g.etf)

def handle_data(context, data):
    etf_code = g.etf
    
    # 1. 获取 ETF 基础参数(如最小申赎单位)
    etf_info = get_etf_info(etf_code)
    if not etf_info or etf_code not in etf_info:
        return
    
    # 最小申购赎回单位 (report_unit)
    report_unit = etf_info[etf_code].get('report_unit', 1000000)
    
    # 2. 发起申购示例:申购 1 个篮子单位的 ETF
    # 注意:申购前需确保账户内已拥有足额的成分券或资金
    purchase_order_id = etf_purchase_redemption(etf_code, amount=report_unit)
    if purchase_order_id:
        log.info("ETF 申购单已提交,订单号: %s" % purchase_order_id)
        
    # 3. 发起赎回示例:赎回 1 个篮子单位的 ETF(传入负数)
    # redemption_order_id = etf_purchase_redemption(etf_code, amount=-report_unit)

三、注意事项与实盘建议

  1. 小数点精度限制:ETF 与可转债的价格精度为 3 位小数,在设置 limit_price 需注意格式化,避免因精度不符报单失败。
  2. 门槛与报告单位:不同 ETF 的最小申赎单位(report_unit,通常为 50 万份或 100 万份)不同,可通过 get_etf_info 接口动态获取。
  3. 现金替代与持仓:使用 etf_basket_order 配合申赎时,可通过 info 参数控制成分券的现金替代标识(cash_replace_flag)与持仓替代规则。