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

PTrade量化交易中 get_etf_info 和 get_etf_stock_info 有什么区别?

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

问题描述

get_etf_stock_info和get_etf_info有什么区别?

在PTrade中有两个ETF相关函数get_etf_info和get_etf_stock_info,它们分别获取什么信息?

解决方案

在 PTrade 量化交易平台中,get_etf_infoget_etf_stock_info 都是用于获取 ETF 相关数据的 API,但它们的侧重点完全不同。简单来说,get_etf_info 获取的是 ETF 基金本身的基础申赎信息,而 get_etf_stock_info 获取的是 ETF 篮子中具体某只成分股(成分券)的替代信息

以下是两者的详细区别与用法解析:

1. get_etf_info:获取 ETF 基础信息

功能说明:用于获取单支或者多支 ETF 的宏观申赎信息。

入参

  • etf_code:单支 ETF 代码或者一个 ETF 代码的 list(如 '510050.SS')。

返回核心字段

  • etf_redemption_code:申赎代码
  • report_unit:最小申购、赎回单位
  • cash_balance:现金差额
  • max_cash_ratio:现金替代比例上限
  • nav_percu:T-1日申购基准单位净值
  • nav_pre:T-1日基金单位净值
  • allot_max / redeem_max:申购/赎回上限

代码示例

def handle_data(context, data):
    # 获取 50ETF 的基础信息
    etf_info = get_etf_info('510050.SS')
    log.info(etf_info)

2. get_etf_stock_info:获取 ETF 成分券信息

功能说明:用于获取特定 ETF 篮子中,某一只或多只具体成分股的详细信息(主要用于申赎时的股票替代计算)。

入参

  • etf_code:单支 ETF 代码(如 '510050.SS')。
  • security:单只股票代码或者一个由多只股票代码组成的列表(如 '600000.SS')。

返回核心字段

  • code_num:成分券数量(申赎一个单位需要的该股票数量)
  • cash_replace_flag:现金替代标志(0-禁止替代,1-允许替代,2-必须替代等)
  • replace_ratio:保证金率(溢价比率),允许现金替代标的此字段有效
  • replace_balance:替代金额,必须现金替代标的此字段有效
  • is_open:停牌标志(0-停牌,1-非停牌)

代码示例

def handle_data(context, data):
    # 获取 50ETF 中浦发银行(600000.SS)的成分券信息
    stock_info = get_etf_stock_info('510050.SS', '600000.SS')
    log.info(stock_info)

总结对比

特性 get_etf_info get_etf_stock_info
查询对象 ETF 基金本身 ETF 内部的具体成分股
主要用途 了解 ETF 的净值、最小申赎单位、现金差额等宏观数据 了解申赎时某只股票需要多少股、是否允许现金替代、溢价率等微观数据
入参要求 仅需 ETF 代码 需要 ETF 代码 + 成分股代码

在进行 ETF 申赎套利策略时,通常需要先用 get_etf_info 获取最小申赎单位,再结合 get_etf_stock_list 获取所有成分股,最后遍历使用 get_etf_stock_info 计算篮子中每只股票的替代成本。