问题描述
解决方案
在聚宽(JoinQuant)平台中,获取基金(包括ETF、LOF、分级基金等)的历史累计净值数据,主要使用 get_extras 函数。
获取方法
使用 get_extras 函数,并将 info 参数设置为 'acc_net_value'。
代码示例
以下代码展示了如何获取 华泰柏瑞沪深300ETF (510300.XSHG) 在指定时间段内的累计净值数据:
# -*- coding: utf-8 -*-
from jqdata import *
# 设置要查询的基金代码
fund_code = '510300.XSHG'
# 获取历史累计净值
# info='acc_net_value' 代表累计净值
# info='unit_net_value' 代表单位净值
df = get_extras(
info='acc_net_value',
security_list=[fund_code],
start_date='2023-01-01',
end_date='2023-02-01',
df=True
)
# 打印结果
print(df)
参数说明
- info: 必须设置为
'acc_net_value'以获取累计净值。如果需要单位净值,请设置为'unit_net_value'。 - security_list: 基金代码列表,例如
['510300.XSHG', '159915.XSHE']。 - start_date / end_date: 查询的开始和结束日期。
- df: 默认为
True,返回 pandas.DataFrame 格式;若为False,则返回字典格式。
Q&A
Q: get_extras 函数除了获取基金净值外,还能获取什么数据?
A: get_extras 还可以获取股票是否ST (is_st)、期货结算价 (futures_sett_price)、期货持仓量 (futures_positions) 以及场外基金的复权净值 (adj_net_value) 等数据。
Q: 如果我想获取基金的单位净值而不是累计净值,应该怎么做?
A: 只需将 get_extras 函数中的 info 参数修改为 'unit_net_value' 即可。
Q: 获取的数据中如果包含 NaN 是什么意思?
A: 如果返回的数据中包含 NaN,通常表示该基金在对应日期没有公布净值数据,或者该日期处于基金上市前或退市后的时间段。