跳转至

基金数据

中国公募基金数据获取指南。

净值历史

import finvista as fv

# 获取易方达中小盘混合的净值历史
df = fv.get_cn_fund_nav("110011", start_date="2024-01-01")

参数说明

参数 类型 必需 说明
symbol str 基金代码
start_date str 开始日期
end_date str 结束日期

返回字段

字段 说明
date 净值日期
nav 单位净值
acc_nav 累计净值
change_pct 日涨跌幅

实时估值

# 获取基金实时估值
df = fv.get_cn_fund_quote(["110011", "000001"])

基金信息

info = fv.get_cn_fund_info("110011")

返回字段

字段 说明
name 基金名称
type 基金类型
manager 基金经理
company 基金公司
size 基金规模
inception_date 成立日期

基金列表

# 股票型基金
df = fv.list_cn_fund_symbols(fund_type="stock")

# 债券型基金
df = fv.list_cn_fund_symbols(fund_type="bond")

# 货币型基金
df = fv.list_cn_fund_symbols(fund_type="money")

# 指数基金
df = fv.list_cn_fund_symbols(fund_type="index")

# 全部基金
df = fv.list_cn_fund_symbols()

搜索基金

# 搜索沪深 300 相关基金
df = fv.search_cn_fund("沪深300")

# 搜索基金公司
df = fv.search_cn_fund("易方达")

使用示例

计算基金收益

df = fv.get_cn_fund_nav("110011", start_date="2024-01-01")
total_return = (df['nav'].iloc[-1] / df['nav'].iloc[0] - 1) * 100
print(f"区间收益率: {total_return:.2f}%")

比较多只基金

funds = ["110011", "000001", "519300"]
data = {}

for fund in funds:
    data[fund] = fv.get_cn_fund_nav(fund, start_date="2024-01-01")

筛选优质基金

# 获取所有股票型基金
df = fv.list_cn_fund_symbols(fund_type="stock")

# 获取基金信息并筛选规模大于 10 亿的
large_funds = []
for _, row in df.head(100).iterrows():
    info = fv.get_cn_fund_info(row['symbol'])
    if info.get('size', 0) > 10:
        large_funds.append(info)