WindPy 基金专用字段参考
基金数据通过 w.wsd()(时间序列)和 w.wss()(截面快照)获取。
基金基础字段(wss 截面数据)
| 字段 |
含义 |
说明 |
nav |
单位净值 |
最新净值 |
nav_acc |
累计净值 |
含分红的累计净值 |
nav_adj |
复权净值 |
考虑分红再投资的净值 |
nav_date |
净值日期 |
最新净值对应日期 |
基金信息字段(wss 截面数据)
| 字段 |
含义 |
说明 |
fund_type |
基金类型 |
股票型/债券型/混合型等 |
sec_name |
基金简称 |
|
fund_manager |
基金经理 |
|
fund_corp |
基金公司 |
|
ETF 涨跌幅字段
实时涨跌幅(日内)
| 字段 |
含义 |
函数 |
说明 |
rt_last |
最新价 |
wsq |
实时成交价 |
rt_pct_chg |
实时涨跌幅(%) |
wsq |
相对于昨收的实时涨跌 |
rt_chg |
实时涨跌额 |
wsq |
实时涨跌金额 |
rt_nav |
实时净值 |
wsq |
ETF实时IOPV净值 |
日频涨跌幅(日K)
| 字段 |
含义 |
函数 |
说明 |
close |
日收盘价 |
wsd/wss |
当日收盘价 |
pct_chg |
日涨跌幅(%) |
wsd/wss |
当日涨跌幅 |
change |
日涨跌额 |
wsd/wss |
当日涨跌金额 |
nav |
单位净值 |
wsd/wss |
日终单位净值 |
pct_chg_nav |
净值日涨跌幅(%) |
wsd/wss |
净值日涨跌幅 |
使用场景对比:
- 实时行情(wsq):适合盘中监控、日内交易决策
- 日频行情(wsd/wss):适合日终复盘、历史数据分析、策略回测
使用示例
from WindPy import w
w.start()
# 基金净值时间序列
err, df = w.wsd("510300.SH", "nav,nav_acc,nav_adj", "-30D", "", "", usedf=True)
# 列名: ['NAV', 'NAV_ACC', 'NAV_ADJ']
# 多只基金截面信息
err, df = w.wss("510300.SH,159915.SZ,512800.SH",
"sec_name,nav,nav_acc,fund_type,fund_manager",
"", usedf=True)
# ETF 实时行情(日内)
err, df = w.wsq("510300.SH", "rt_last,rt_pct_chg,rt_nav", usedf=True)
# ETF 日频涨跌幅获取方式
## 方式1:使用 wsd 获取历史日频涨跌幅(推荐)
err, df = w.wsd("510300.SH", "close,pct_chg", "-30D", "", "", usedf=True)
# close: 日收盘价
# pct_chg: 日涨跌幅(%)
## 方式2:使用 wss 获取截面日频涨跌幅
err, df = w.wss("510300.SH,159915.SZ", "close,pct_chg", "tradeDate=20260209", usedf=True)
# 获取指定交易日的收盘价和涨跌幅
## 方式3:获取ETF的历史净值涨跌幅
err, df = w.wsd("510300.SH", "nav,pct_chg_nav", "-30D", "", "", usedf=True)
# nav: 单位净值
# pct_chg_nav: 净值日涨跌幅
w.stop()
常见基金代码示例
| 代码 |
名称 |
类型 |
510300.SH |
华泰柏瑞沪深300ETF |
股票ETF |
159915.SZ |
易方达创业板ETF |
股票ETF |
512800.SH |
华宝中证银行ETF |
行业ETF |
511880.SH |
银华日利 |
货币ETF |
518880.SH |
华安黄金ETF |
商品ETF |
基金信息字段补充(wss 截面数据)
以下字段在 wss() 中已验证可用:
| 字段 |
含义 |
options 参数 |
说明 |
fund_type |
基金类型 |
— |
契约型开放式等 |
fund_investtype |
投资类型 |
— |
灵活配置型/QDII混合型等 |
fund_fundscale |
基金规模 |
rptDate=YYYYMMDD |
元,需指定报告期 |
fund_setupdate |
成立日期 |
— |
datetime |
fund_maturitydate |
到期日期 |
— |
封闭式基金 |
fund_benchmark |
业绩基准 |
— |
文字描述 |
fund_managementfeeratio |
管理费率 |
— |
百分比 |
区间收益率(wss)
| 字段 |
含义 |
必须 options |
NAV_adj_return |
复权净值区间收益率(%) |
startDate=YYYYMMDD;endDate=YYYYMMDD |
# 获取基金近 1 年区间收益率
df = wss("110011.OF,000001.OF", "NAV_adj_return", "startDate=20250225;endDate=20260225")
净值日频涨跌(wsd)
| 字段 |
含义 |
函数 |
nav |
单位净值 |
wsd |
nav_acc |
累计净值 |
wsd |
nav_adj |
复权净值 |
wsd |
NAV_adj_return |
复权净值日收益率(%) |
wsd |
# 基金复权净值及日收益率时间序列
df = wsd("110011.OF", "nav,nav_adj,NAV_adj_return", "-30D")
注意事项
- 净值更新时间: 一般 T 日 21:00 后更新 T 日净值
- QDII 基金: 净值更新可能延迟 1-2 个交易日
- 货币 ETF: 使用
rt_nav 获取实时净值/每万份收益
- LOF 基金: 代码后缀 .SZ/.SH,同时有场内交易和场外净值
- 基金规模:
fund_fundscale 需指定 rptDate,否则返回 None
- 区间收益率:
NAV_adj_return 在 wss 中需 startDate/endDate,在 wsd 中直接返回日收益率
- 风险指标:
return_1m/risk_sharpe 等字段名在 wss 中返回 None(可能需要额外权限或不同的字段名),建议自行用净值序列计算
ETF 涨跌幅获取详解
实时涨跌幅(盘中)
适合日内交易监控和实时盯盘:
# 获取多只ETF实时涨跌幅
etf_list = "510300.SH,159915.SZ,518880.SH"
err, df = w.wsq(etf_list, "rt_last,rt_pct_chg,rt_chg,rt_nav", usedf=True)
# 返回示例:
# rt_last: 最新成交价
# rt_pct_chg: 相对于昨收的涨跌幅(%)
# rt_chg: 涨跌金额
# rt_nav: 实时IOPV净值
日频涨跌幅(日K)
适合盘后分析、历史回测、日线策略:
# 获取ETF历史日频涨跌幅(过去30天)
err, df = w.wsd("510300.SH", "close,pct_chg", "-30D", "", "", usedf=True)
# DataFrame 包含每日收盘价和涨跌幅
# 获取特定日期的截面涨跌幅
err, df = w.wss("510300.SH,159915.SZ,518880.SH",
"close,pct_chg",
"tradeDate=20260209", usedf=True)
# 返回指定交易日的收盘价和涨跌幅
# 获取净值涨跌幅(反映基金实际收益)
err, df = w.wsd("510300.SH", "nav,pct_chg_nav", "-30D", "", "", usedf=True)
# nav: 日终单位净值
# pct_chg_nav: 净值日涨跌幅
实时 vs 日频的区别
| 维度 |
实时行情 (wsq) |
日频行情 (wsd/wss) |
| 更新频率 |
秒级/分钟级 |
日终更新 |
| 适用场景 |
盘中交易、实时监控 |
盘后分析、策略回测 |
| 字段前缀 |
rt_ (real-time) |
无前缀 |
| 涨跌幅基准 |
相对于昨收价 |
相对于前一日收盘价 |
| 数据存储 |
通常只保留当日 |
长期历史数据 |
常用ETF涨跌幅监控代码
def get_etf_daily_performance(etf_list, date=None):
"""
获取ETF日频涨跌幅表现
Parameters:
-----------
etf_list : list
ETF代码列表,如 ['510300.SH', '159915.SZ']
date : str, optional
日期,格式 'YYYYMMDD',默认最新交易日
Returns:
--------
DataFrame : 包含ETF名称、收盘价、涨跌幅
"""
if date is None:
from datetime import datetime
date = datetime.now().strftime('%Y%m%d')
codes = ','.join(etf_list)
err, df = w.wss(codes, "sec_name,close,pct_chg",
f"tradeDate={date}", usedf=True)
if err == 0:
df.columns = ['ETF名称', '收盘价', '涨跌幅(%)']
df = df.sort_values('涨跌幅(%)', ascending=False)
return df
return None
# 使用示例
etf_codes = ['510300.SH', '159915.SZ', '518880.SH', '512800.SH']
df = get_etf_daily_performance(etf_codes)
print(df)