Files
one_divine_lot/docs/02-计划/计划-交易记录接入.md
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

63 lines
3.8 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.
# 计划:交易记录接入(订单与成交数据 + 日期导航)(阶段航点)
> 编号:PLAN-006 | 粒度:阶段航点(大粒度) | 创建:2026-09-01 状态:**进行中**
> 派生自终极目标:目标-006(交易复盘)、目标-003(按策略监控市场)
> 依据需求:**R-007(范围已定稿,2026-09-01)** —— 符合入范围门槛
> 设计约束:技术约束-001/003/004/010(沿用)、产品约束-007 方向(着色习惯,红买绿卖为交易方向新语义)
## 目标
在「交易记录」tab 接入 QMT Bridge 当日订单(/trade/orders)与成交(/trade/trades)数据:**单表合并展示**(委托主行 + 按 m_strOrderSysID 展开成交明细)+ **基于交易日历的日期导航**(当日默认选中,历史接口占位,为老师完善 QMT Bridge 历史成交接口预留)。
## 范围
**做**
1. **数据源接入**QmtBridgeRestDataSource 新增 getOrders() / getTrades() / getTradingDates()(语义化映射,核心字段见 R-007 2.1/2.2);
2. **服务端 API**:新增 api/trades.jsorders / trades / trading-dates 端点),纳入领域分发;
3. **交易记录 tab 落地**:占位 tab 替换为 TradeRecordsTab——**单表合并**:委托主行(聚合成交)+ 展开/折叠成交明细;
4. **日期导航**DateNav 基于 /data/calendar/trading_dates,前后切换交易日,当日默认选中,历史日期展示「接口开发中」占位;
5. **排序**:委托主行默认降序(最新在前),支持表头点击手动排序;
6. **数据刷新**:服务端中转 + 前端轮询(3-5s,复用 market-snapshot 模式)。
**不做**
- 历史(非当日)交易数据查询实现(老师完善 QMT Bridge 接口后接入);
- 交易数据本地持久化(Q5 本期不做);
- 按策略过滤交易(Q10 后续迭代);
- 下单/撤单等交易操作(目标-007 控制权另议)。
## 程序结构(改造后)
```
src/
├── component/
│ └── QmtBridgeRestDataSource.js # 改:+getOrders/getTrades/getTradingDates
├── api/
│ ├── trades.js # 新增:orders/trades/trading-dates 端点
│ └── index.js # 改:合并 TRADE_METHODS
├── client/
│ ├── views/
│ │ ├── TradeRecordsTab.jsx # 新增:交易记录 tab(日期导航 + 单表合并)
│ │ ├── OrderRow.jsx # 新增:委托主行(聚合成交 + 展开)
│ │ ├── TradeDetailRows.jsx # 新增:展开成交明细行
│ │ └── DateNav.jsx # 新增:交易日历日期导航
│ └── index.js # 改:tradeRecords tab 渲染 TradeRecordsTab
```
## 实现步骤(建议顺序)
1. **文档骨架**PLAN-006 + 迭代 05 子目录(本步);
2. **数据源**getOrders/getTrades/getTradingDates(语义化映射 + 方向判定);
3. **服务端 API**api/trades.js 三端点 + 领域分发注册;
4. **客户端合并逻辑**fetch 两接口 → 按 m_strOrderSysID 分组 → 聚合;
5. **UI**DateNav + OrderRow + TradeDetailRows + TradeRecordsTab;排序(默认降序 + 表头点击);
6. **构建安装**pnpm run build + 页面刷新(客户端)或宿主重启(服务端);
7. **验收**:对照迭代 05 验收标准逐条核验,记录迭代复盘。
## 验收要点
- 交易记录 tab 显示当日委托(单表合并,展开可见每笔成交);
- 委托主行:时间/代码/名称/方向/状态/委托量/成交量/委托价/成交均价/成交额/手续费;
- 方向红买绿卖;状态中文映射;未成交列显示 —;
- 日期导航基于交易日历,前后切换,当日默认,历史占位;
- 排序默认降序 + 表头手动排序;
- 现有功能(持仓/策略/行情/连接配置)不回归。