skills/windpy-sdk/references/fund-fields.md

240 lines
7.5 KiB
Markdown
Raw Permalink Normal View History

# 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**:适合日终复盘、历史数据分析、策略回测
---
## 使用示例
```python
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` |
```python
# 获取基金近 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 |
```python
# 基金复权净值及日收益率时间序列
df = wsd("110011.OF", "nav,nav_adj,NAV_adj_return", "-30D")
```
---
## 注意事项
1. **净值更新时间:** 一般 T 日 21:00 后更新 T 日净值
2. **QDII 基金:** 净值更新可能延迟 1-2 个交易日
3. **货币 ETF** 使用 `rt_nav` 获取实时净值/每万份收益
4. **LOF 基金:** 代码后缀 .SZ/.SH同时有场内交易和场外净值
5. **基金规模:** `fund_fundscale` 需指定 `rptDate`,否则返回 None
6. **区间收益率:** `NAV_adj_return` 在 wss 中需 `startDate/endDate`,在 wsd 中直接返回日收益率
7. **风险指标:** `return_1m/risk_sharpe` 等字段名在 wss 中返回 None可能需要额外权限或不同的字段名建议自行用净值序列计算
---
## ETF 涨跌幅获取详解
### 实时涨跌幅(盘中)
适合**日内交易监控**和**实时盯盘**
```python
# 获取多只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
适合**盘后分析**、**历史回测**、**日线策略**
```python
# 获取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涨跌幅监控代码
```python
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)
```