240 lines
7.5 KiB
Markdown
240 lines
7.5 KiB
Markdown
|
|
# 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)
|
|||
|
|
```
|