Files
kyugao bb3f8bd28d feat: 迭代03-05 交易记录接入、行情实时、QMT连接配置、data store 标准化
- R-004 QMT连接配置:多配置管理 + 会话头部快捷切换(03-QMT连接配置)
- R-005 WS盘中价格实时更新:服务端中转+缓存+前端轮询(04-WS盘中价格实时更新)
- R-006 策略数据 JSON data store 标准化(store.json/market.json/schema.json)
- R-007 交易记录接入:当日订单+成交单表合并(委托主行+展开成交明细)、时间段查询(今日/本周/本月+手动起止)、费用计算(佣金费率万m_dCommission+最低5元、印花税卖出万5、过户费双向万0.1)
- 架构治理:api 按领域拆分、component 目录、QmtHealthMonitor
2026-09-01 13:21:49 +08:00

49 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# R-005 WS 盘中价格实时更新 · 已完成
> 归档日期:2026-09-01 需求状态:**已完成**
> 原索引:docs/05-需求池/需求池索引.md(主索引保留 R-005 条目,指向本归档)
> 实现迭代:04-WS盘中价格实时更新(验收通过,迭代复盘见 docs/04-迭代记录/04-WS盘中价格实时更新/迭代复盘.md)
> 讨论记录:需求从 T-005 草稿转正,2026-08-31 定稿;实现过程中的架构演进(前端直连→服务端中转+行情缓存)见迭代 04 迭代说明/复盘
---
> 状态:**已定稿**(2026-08-31,老师确认)| 登记日期:2026-08-31
> 来源:T-005 草稿转正(docs/05-需求池/草稿/通过ws长连接做市场数据的实时反映.md)
> 关联:T-005ws 实时数据草稿)、R-002/R-003/R-004(已实现)
## 需求描述
在现有分仓管理工具(one-divine-lot 插件)中,实现**盘中价格实时更新**:
- 前端直连 QMT Bridge 原生 WebSocket`ws://<激活配置host>:8610/ws`),订阅 `whole`(全市场 tick 增量推送);
- 事件驱动:收到推送后,自动更新 3 个监控表格(全部持仓 / 手动做T / 网格超市)中**关注股票列表**的**盘中价格**(现价,字段 `lastPrice`);
- 本期只更新**现价**一项数据,不做市值/盈亏/五档等扩展。
## 核心逻辑(定稿版)
1. **连接拓扑**:前端直连 QMT Bridge WS(老师确认,非插件服务端中转);
2. **订阅范围**:订阅全市场行情流(`type: whole``codes: ['SH','SZ']`),前端按关注列表过滤(老师确认);
3. **关注列表来源**:3 个表格自动汇总(全部持仓 + 手动做T + 网格超市出现过的 code 合集),无需手动维护(老师确认);
4. **现价展示**3 个表格新增「现价」列(显示 `lastPrice`),红涨绿跌着色,价格变化时轻微高亮提示(老师确认);
5. **刷新机制**:现价叠加层 —— WS 维护 code→lastPrice 实时价格 Map,表格行渲染时叠加;份额/持仓仍由 REST 拉取,不整表重拉(老师确认);
6. **协议事实**2026-08-31 实测 GEMWIN 100.110.38.78:8610):
- WS 端点:`ws://<host>:8610/ws`(与 REST 同端口,OpenAPI servers 注明);
- 订阅:`POST /data/subscribe`body `{ type: 'whole', codes: ['SH','SZ'] }` → 返回 `{ ok, sub_id }`
- 退订:`POST /data/unsubscribe`body `{ sub_id }`
- 推送:`{ type: 'whole', data: { '<code>': TickSnapshot } }`TickSnapshot 含 `lastPrice / open / high / low / lastClose / volume / amount / askPrice / bidPrice / askVol / bidVol / stime / time` 等;
- 快照:`GET /data/tick?codes=<code1,code2>` 返回 `{ ok, data: { code: TickSnapshot } }`(WS 只推增量,无 prime;前端可先拉一次快照补齐初值)。
## 边界(不做)
- 不做市值/盈亏/五档等实时数据的展示(本期仅现价);
- 不做插件服务端中转 WS(老师确认前端直连);
- 不做断线重连 UI 引导(先做静默重连 + 状态提示);
- 不做关注列表手动配置(自动汇总)。
## 验收要点(详见迭代 04 验收标准)
1. 3 个表格出现「现价」列,显示关注股票的 lastPrice;
2. 价格变化自动更新(无需手动刷新);
3. 红涨绿跌着色 + 变化高亮;
4. 连接激活配置的 host 变化时,WS 随之切换(复用 QMT 多配置热切换)。