159 lines
7.9 KiB
Markdown
159 lines
7.9 KiB
Markdown
# C-05 行情 / 净值数据源选型对比
|
||||
|
|
|
|||
|
|
> 场景 ID:**C-05**(客户查产品净值 · 「这只基金现在净值多少」)
|
|||
|
|
> 用途:答辩 / 发群 / Phase B 外部同步拍板
|
|||
|
|
> 关联:[接口契约-代销平台API-v0.1.md](./接口契约-代销平台API-v0.1.md) · [接口契约-代销平台API-v0.2-行情扩展草案.md](./接口契约-代销平台API-v0.2-行情扩展草案.md) · [Core模拟底座/01-表结构与种子说明.md](./Core模拟底座/01-表结构与种子说明.md) · [需求拆解/用户故事/平台与行业背景.md](../需求拆解/用户故事/平台与行业背景.md)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. 需求边界(本项目)
|
|||
|
|
|
|||
|
|
| 要 | 不要 |
|
|||
|
|
| --- | --- |
|
|||
|
|
| 代销 **场外公募/理财** 产品 **最新净值 + 日涨跌 + 净值日期** | 股票 **实时 tick / 分时 / K 线** |
|
|||
|
|
| 数据进 **Core L0**(`core_product_nav`)→ Platform API → 前端/Agent | 前端/Agent **直连** 第三方行情 REST |
|
|||
|
|
| 开发 Demo:**静态种子** 即可 | 毫秒级行情、自选股、全市场看盘终端 |
|
|||
|
|
| 合规叙事:**持牌代销平台** 自有产品货架 | 爬虫蚂蚁/天天基金/雪球内部接口 |
|
|||
|
|
|
|||
|
|
PRD / 风控 PRD 已明确:**不做**真实 TA/清算/毫秒级行情。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. 一句话结论
|
|||
|
|
|
|||
|
|
> **国内头部互联网代销(蚂蚁、天天基金等)没有面向第三方的官方「看盘 API」。**
|
|||
|
|
> **本项目 P0 用 Core 模拟库;Phase B 可选付费 REST 数据商做 T+1 同步进 Core;生产级走 Wind/Choice/iFinD 或 TA/登记披露对账。**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. 数据源对比总表
|
|||
|
|
|
|||
|
|
| 类别 | 代表 | 能否用于 C-05 净值 | 本项目阶段 | 合规/稳定 | 备注 |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| **Core 模拟种子** | `scripts/core/06-seed-nav.sql` | ✅ 完全匹配 | **P0 · 当前** | ✅ | `GET /api/products/{id}/nav` 已实现 |
|
|||
|
|
| **互联网代销开放 API** | 蚂蚁开放平台、天天基金、雪球 | ❌ 无官方通用净值 API | **禁止** | ❌ | 内部 JS/爬虫非授权 |
|
|||
|
|
| **页面爬虫 / 逆向** | fundgz、pysnowball | ⚠️ 能抓到但不稳定 | **禁止** | ❌ | 与持牌平台叙事冲突 |
|
|||
|
|
| **第三方 REST 数据 API** | 咕咕数据、iTick、次方量化 | ✅ 场外基金净值 | **Phase B PoC** | 🟡 需合同+字段核对 | 经 `sync_market_nav` 落 Core |
|
|||
|
|
| **金融终端数据商** | Wind、Choice、同花顺 iFinD | ✅ 全品种+历史 | **生产方案** | ✅ 机构签约 | Demo 阶段不必签 |
|
|||
|
|
| **券商 OpenAPI** | 富途、长桥、华盛 | 🟡 偏场内/港美 | **不适用** | ✅ 开户即用 | 与场外公募代销主场景不对题 |
|
|||
|
|
| **券商 QMT/PTrade** | 国内券商 | 🟡 本地 Python | **不适用** | ✅ 门槛高 | 量化交易,非净值展示 |
|
|||
|
|
| **交易所 / 基金通 B2B** | 上证基金通 snapshot | 🟡 场内 ETF/LOF | **未来扩展** | ✅ 需机构接入 | 与当前 14 只种子产品不同线 |
|
|||
|
|
| **登记中心 / TA 披露** | 理财登记、基金公司 TA | ✅ 权威净值来源 | **生产对账** | ✅ 批量日终 | 非实时 REST,文件/专线 |
|
|||
|
|
|
|||
|
|
图例:**✅ 推荐** · **🟡 有条件** · **❌ 不推荐/禁止**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. 禁止清单(团队硬规则)
|
|||
|
|
|
|||
|
|
以下 **不得** 进入 `scripts/sync/` 或生产代码:
|
|||
|
|
|
|||
|
|
1. 天天基金 `fundgz.1234567.com.cn` 等非官方内部 URL
|
|||
|
|
2. 雪球 Cookie / Token 逆向(pysnowball 等)
|
|||
|
|
3. 任何 **未签约** 的页面 scraping
|
|||
|
|
4. 前端或 Agent Tool **携带第三方 appkey 直连** 外网行情
|
|||
|
|
5. 将外部 API 响应 **伪造为实时 tick** 展示(监管与产品口径不允许)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. 分阶段推荐路径
|
|||
|
|
|
|||
|
|
| 阶段 | 数据源 | 接入方式 | 对外 API |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| **P0 开发/Demo** | Core 种子 | `reset.ps1` + `06-seed-nav.sql` | `GET /api/products`、`/nav` |
|
|||
|
|
| **P0 前端** | 同上 | `web/` 产品行情页真调平台 API | 页眉:**静态模拟净值** |
|
|||
|
|
| **Phase B 验证** | 咕咕 / iTick / 次方 等 **择一 PoC** | `scripts/sync/sync_market_nav.py` → UPSERT `core_product_nav` | 新增 `GET /api/products/nav-snapshot`(见 v0.2 草案) |
|
|||
|
|
| **生产** | Wind / Choice / iFinD + TA 披露 | 日终批处理 + 对账 | 同上;`quote_mode=external_t1` |
|
|||
|
|
| **Phase C(可选)** | 历史净值 / 场内 ETF 实时 | 历史表或交易所 B2B | `GET .../nav/history` 等待定 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Phase B PoC 第三方 REST 细对比(候选,非背书)
|
|||
|
|
|
|||
|
|
> 以下为 **调研摘要**,签约前须自行核对最新文档、价格与授权范围。
|
|||
|
|
|
|||
|
|
| 维度 | 咕咕数据(示例) | iTick(示例) | 次方量化(示例) |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| **典型能力** | 公募基金净值 REST | 场内 ETF/LOF 报价 | 场内基金 spot |
|
|||
|
|
| **与 C-05 匹配度** | 高(场外净值) | 中(偏场内) | 中 |
|
|||
|
|
| **接入成本** | appkey + 按量 | API key | x-api-key |
|
|||
|
|
| **入库方式** | sync 脚本 | sync 脚本 | sync 脚本 |
|
|||
|
|
| **Demo 推荐度** | **优先试** | 有场内产品时试 | 备选 |
|
|||
|
|
|
|||
|
|
**PoC 验收标准(4 条):**
|
|||
|
|
|
|||
|
|
1. 能映射到种子库 `PROD-*`(或配置 `MARKET_NAV_PRODUCT_MAP`)
|
|||
|
|
2. 返回含 `nav` + `nav_date`(或等价字段)
|
|||
|
|
3. 日终 T+1 延迟可接受(页眉标明,不冒充实时)
|
|||
|
|
4. 商业授权允许 **入库再展示**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. 生产级数据商(文档/答辩用)
|
|||
|
|
|
|||
|
|
| 服务商 | 典型用途 | 门槛 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| **Wind Client API** | 全市场历史+实时 | 机构付费终端 |
|
|||
|
|
| **东方财富 Choice EMQuantAPI** | 基金净值、基本面 | 机构试用/付费 |
|
|||
|
|
| **同花顺 iFinD QuantAPI** | 多资产 REST/SDK | 机构账号 |
|
|||
|
|
|
|||
|
|
**与第三方小 REST 的分工:**
|
|||
|
|
|
|||
|
|
- PoC:**小 REST** 验证 sync 管道与 UI
|
|||
|
|
- 生产:**数据商** 替换 adapter 实现,**Platform API 路径不变**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. 架构对齐(为什么不是「接代销 App API」)
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
┌─────────────────────────────────────────────────────────┐
|
|||
|
|
│ XX 科技持牌代销平台(本项目) │
|
|||
|
|
│ 卖的是自有货架 core_product · 净值权威在 core_product_nav │
|
|||
|
|
└───────────────────────────┬─────────────────────────────┘
|
|||
|
|
│
|
|||
|
|
P0: 种子 SQL │ Phase B+: sync_market_nav
|
|||
|
|
▼
|
|||
|
|
jinrong_core.core_product_nav
|
|||
|
|
│
|
|||
|
|
▼
|
|||
|
|
GET /api/products/nav-snapshot
|
|||
|
|
│
|
|||
|
|
┌─────────────┴─────────────┐
|
|||
|
|
▼ ▼
|
|||
|
|
web 产品行情页 Agent / 其他 Agent
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**行业常态:** 代销平台 **采购** 数据或接 **TA/登记披露**,而不是调用竞品 App 的接口。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 9. 与场景 / 矩阵映射
|
|||
|
|
|
|||
|
|
| 场景 | 数据需求 | 当前状态 | 数据源 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| **C-05** | 最新净值 | API v0.1 已有;Agent T-40 未做 | Core 种子 |
|
|||
|
|
| **C-01** | 持仓市值 | `core_holding.market_value` 种子 | Core(非实时重算) |
|
|||
|
|
| 前端「产品行情」 | 全产品净值表 | P0 设计已定 | Platform API |
|
|||
|
|
| R-02 / 适当性 | 产品 R 等级 | Core | 与净值源独立 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 10. 决策记录(建议拍板)
|
|||
|
|
|
|||
|
|
| # | 决策 | 建议 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 1 | P0 是否接外部 API | **否**,Core 种子 + 静态页眉 |
|
|||
|
|
| 2 | Phase B 是否做 sync | **是**,选一个 REST PoC + `sync_market_nav.py` |
|
|||
|
|
| 3 | 是否做实时看盘 | **否**(Phase C 再评估场内 ETF) |
|
|||
|
|
| 4 | 生产数据商 | 文档登记 Wind/Choice/iFinD,实施时再签 |
|
|||
|
|
| 5 | 禁止爬虫 | **是**,写入开发规范 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 11. 修订记录
|
|||
|
|
|
|||
|
|
| 日期 | 说明 |
|
|||
|
|
| --- | --- |
|
|||
|
|
| 2026-09-09 | 首版:互联网代销/API 调研结论 + 分阶段选型 + Phase B PoC 对比 |
|