🚀 AI 一键生成 joinquant 策略代码

利用 get_extras 获取基金累计净值(acc_net_value)进行筛选

joinquant | 发布时间: 2025/12/23
以下内容由 EasyQuant 生成。

问题描述

怎么获取基金的历史累计净值数据?

解决方案

在聚宽(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,通常表示该基金在对应日期没有公布净值数据,或者该日期处于基金上市前或退市后的时间段。