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

为什么 JoinQuant 的 get_price 函数返回的数据没有 pre_close 字段?

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

问题描述

研究环境和本地的get_price取消了pre_close?

研究环境jqdata和本地jqdatasdk中的get_price取消了pre_close数据?我记得之前是有提供的阿,而且文档中也有这个字段的阿

解决方案

您好!get_price 函数并没有取消 pre_close(昨收价)字段。

您之所以在返回的数据中没有看到 pre_close,是因为 get_price 函数默认返回的字段列表中不包含它

根据 JoinQuant 的 API 文档,get_pricefields 参数默认值是 ['open', 'close', 'high', 'low', 'volume', 'money']。如果您不显式指定 fields,系统只会返回这 6 个标准字段。

解决方法

如果您需要获取 pre_close 数据,必须在调用 get_price 时,通过 fields 参数显式地将 'pre_close' 包含进去。

代码示例:

# 导入 jqdata (在研究环境中)
from jqdata import *

# 显式指定 fields 包含 'pre_close'
df = get_price('000001.XSHE', 
               start_date='2023-01-01', 
               end_date='2023-01-10', 
               frequency='daily', 
               fields=['open', 'close', 'high', 'low', 'volume', 'money', 'pre_close']) # 在这里加上 'pre_close'

print(df)

文档参考说明:

fields: 字符串list, 选择要获取的行情数据字段, 默认是None(表示 ['open', 'close', 'high', 'low', 'volume', 'money'] 这几个标准字段), 支持 SecurityUnitData 里面的所有基本属性,包含:['open', 'close', 'low', 'high', 'volume', 'money', 'factor', 'high_limit','low_limit', 'avg', 'pre_close', 'paused','open_interest']

所以,只要在 fields 列表中加上 'pre_close',无论是官网的研究环境 (jqdata) 还是本地环境 (jqdatasdk),都可以正常获取到昨收价数据。