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

3.8 KiB
Raw Blame History

计划:交易记录接入(订单与成交数据 + 日期导航)(阶段航点)

编号: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. 服务端 APIapi/trades.js 三端点 + 领域分发注册;
  4. 客户端合并逻辑fetch 两接口 → 按 m_strOrderSysID 分组 → 聚合;
  5. UIDateNav + OrderRow + TradeDetailRows + TradeRecordsTab;排序(默认降序 + 表头点击);
  6. 构建安装pnpm run build + 页面刷新(客户端)或宿主重启(服务端);
  7. 验收:对照迭代 05 验收标准逐条核验,记录迭代复盘。

验收要点

  • 交易记录 tab 显示当日委托(单表合并,展开可见每笔成交);
  • 委托主行:时间/代码/名称/方向/状态/委托量/成交量/委托价/成交均价/成交额/手续费;
  • 方向红买绿卖;状态中文映射;未成交列显示 —;
  • 日期导航基于交易日历,前后切换,当日默认,历史占位;
  • 排序默认降序 + 表头手动排序;
  • 现有功能(持仓/策略/行情/连接配置)不回归。