🚀 AI 一键生成 joinquant 策略代码

JoinQuant聚宽API:ETF的Tick行情提供IOPV字段吗?

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

问题描述

请问ETF的tick行情提供IOPV字段吗?

如果能添加IOPV字段就好了

fields=('time', 'current', 'high', 'low', 'volume', 'money', 'a1_p', 'b1_p', 'a1_v', 'b1_v', 'IOPV')
df=get_ticks('510050.XSHG','2019-10-16 15:30:00','2019-10-16 09:00:00', fields=fields)
df
ValueError: no field of name IOPV

解决方案

聚宽 ETF Tick 行情是否支持 IOPV 字段?

很遗憾,根据 JoinQuant 聚宽当前的 API 文档,get_ticks 接口目前不支持获取 ETF 的 IOPV(基金份额参考净值) 字段。

这就是为什么您在 fields 中添加 'IOPV' 时,会遇到 ValueError: no field of name IOPV 的报错。

get_ticks 支持的字段

对于股票和场内基金(如 ETF),get_ticks 接口支持的 fields 仅包含以下量价和盘口数据:

  • time: 时间
  • open: 当日开盘价
  • current: 当前价
  • high: 截至到当前时刻的日内最高价
  • low: 截至到当前时刻的日内最低价
  • volume: 累计成交量
  • money: 累计成交额
  • a1_v ~ a5_v: 五档卖量
  • a1_p ~ a5_p: 五档卖价
  • b1_v ~ b5_v: 五档买量
  • b1_p ~ b5_p: 五档买价

正确的 ETF Tick 获取代码示例:

from jqdata import *

# 移除不支持的 'IOPV' 字段
fields = ['time', 'current', 'high', 'low', 'volume', 'money', 'a1_p', 'b1_p', 'a1_v', 'b1_v']

df = get_ticks('510050.XSHG', end_dt='2019-10-16 15:30:00', start_dt='2019-10-16 09:00:00', fields=fields, df=True)
print(df.head())

替代方案:获取日频基金净值

如果您需要获取基金的净值数据用于策略分析,虽然无法获取 Tick 级别的 IOPV,但您可以使用 get_extras 函数获取日频的基金净值数据:

  • unit_net_value: 基金单位净值
  • acc_net_value: 基金累计净值

获取日频净值代码示例:

from jqdata import *

# 获取 510050.XSHG 的单位净值
df_net_value = get_extras('unit_net_value', ['510050.XSHG'], start_date='2019-10-01', end_date='2019-10-16', df=True)
print(df_net_value)

关于添加 IOPV 字段的建议,这是一个非常实用的量化需求(常用于 ETF 折溢价套利策略),建议您可以通过聚宽社区的建议反馈板块向官方提出该需求,以便官方在未来的 API 更新中考虑加入。