问题描述
研究环境jqdata和本地jqdatasdk中的get_price取消了pre_close数据?我记得之前是有提供的阿,而且文档中也有这个字段的阿
解决方案
您好!get_price 函数并没有取消 pre_close(昨收价)字段。
您之所以在返回的数据中没有看到 pre_close,是因为 get_price 函数默认返回的字段列表中不包含它。
根据 JoinQuant 的 API 文档,get_price 的 fields 参数默认值是 ['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),都可以正常获取到昨收价数据。