🚀 AI 一键生成 joinquant 策略代码

JoinQuant API 教程:如何使用 get_extras 获取基金净值、期货结算价等补充数据?

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

问题描述

我该如何查询基金的累计净值数据?

解决方案

在 JoinQuant 聚宽平台上,查询基金的累计净值数据主要使用 get_extras 函数。

核心函数说明

get_extras(info, security_list, start_date, end_date, df=True, count=None)

该函数用于获取多只标的在一段时间内的额外数据。要获取基金累计净值,需将 info 参数设置为 'acc_net_value'

  • info: 字符串,设置为 'acc_net_value' 表示获取基金累计净值。
  • security_list: 基金代码列表(如 ['510300.XSHG'])。
  • start_date / end_date: 查询的开始和结束日期。
  • df: 布尔值,默认为 True,返回 pandas.DataFrame;设为 False 则返回字典。

代码示例

以下代码展示了如何获取 华泰柏瑞沪深300ETF (510300.XSHG) 在指定时间段内的累计净值数据:

# -*- coding: utf-8 -*-
from jqdata import *

def initialize(context):
    # 设定要查询的基金代码
    fund_list = ['510300.XSHG']
    
    # 设定查询时间段
    start_date = '2023-01-01'
    end_date = '2023-02-01'
    
    # 调用 get_extras 获取累计净值
    # info 参数必须为 'acc_net_value'
    acc_net_value_df = get_extras(
        info='acc_net_value', 
        security_list=fund_list, 
        start_date=start_date, 
        end_date=end_date,
        df=True
    )
    
    # 打印结果
    print("基金累计净值数据:")
    print(acc_net_value_df)

    # 如果是在回测或模拟交易中,通常不需要运行后续逻辑,这里仅做演示
    # 实际策略中可以在 handle_data 或定时函数中调用

返回数据格式

df=True(默认)时,返回的数据格式为 pandas.DataFrame

  • 索引 (Index): 日期 (datetime.datetime 对象)。
  • 列名 (Columns): 基金代码。
  • 值 (Values): 对应日期的累计净值。

Q&A

Q: get_extras 函数除了累计净值还能查询哪些基金数据?
A: 除了累计净值 (acc_net_value),get_extras 还可以查询基金的单位净值 (unit_net_value) 以及场外基金的复权净值 (adj_net_value)。

Q: 如果查询的日期是基金成立之前的日期,返回值是什么?
A: 如果查询日期早于基金上市或成立日期,返回的数据中对应的值通常为 NaN (Not a Number)。

Q: 如何同时查询多只基金的累计净值?
A: 只需将多个基金代码放入 security_list 列表中即可,例如 ['510300.XSHG', '159915.XSHE']。返回的 DataFrame 将包含多列,每一列对应一只基金。

Q: 这个函数可以在研究环境中使用吗?
A: 可以。get_extras 函数在回测环境、模拟交易环境以及研究环境(Notebook)中均可使用。