Files
kyugao aef27dcd3f docs: R-007 需求归档,迭代 05 完结
- R-007 移入已完成/(完整需求摘要+决策+实现记录)
- 需求池索引更新(已实现/已归档)
- 迭代 05 复盘更新(验收通过,老师确认完结)
2026-09-01 14:47:26 +08:00

3.2 KiB
Raw Permalink Blame History

迭代 05 复盘:交易记录接入(订单与成交 + 日期导航)(2026-09-01

复盘日期:2026-09-01 | 迭代状态:已完成(老师确认归档,需求 R-007 已移入已完成/) 关联需求:R-007(交易记录接入,范围已定稿) 关联计划:PLAN-006(计划-交易记录接入.md

结果

迭代 05 达成:交易记录 tab 接入当日委托(/trade/orders+ 当日成交(/trade/trades),单表合并展示(委托主行 + 按 m_strOrderSysID 展开成交明细),日期导航(交易日历驱动,历史接口占位),排序默认降序可手动。

过程事实

  1. 需求定稿(R-007:老师指令接入订单与成交 → 技术研究(API 字段全表 / 方向判定澄清 / 数据时效研究 / sample data)→ 范围定稿(当日订单+成交 + 日期导航)→ 展示设计定稿(单表合并 + 排序降序);
  2. 方向判定闭环m_nDirection=48 恒为操作标记(官方 innerApi 字典),真实方向在 m_nOffsetFlag48买/49卖)+ m_strOptName 交叉验证;
  3. 数据时效确认/trade/orders 与 /trade/trades 仅当日数据(get_trade_detail_data 读客户端缓存),历史查询需老师完善 QMT Bridge 接口;
  4. 服务端实现QmtBridgeRestDataSource 新增 getOrders/getTrades/getTradingDates(语义化映射)+ api/trades.js 领域(orders/trades/trading-dates 端点);
  5. 客户端实现TradeRecordsTab(单表合并 + 排序 + 轮询 4s)+ DateNav(交易日历导航,当日默认,历史占位);
  6. 验证:typecheck 通过、构建成功、数据源三方法端到端实测通过(博纳影业卖出 200 股 @6.00,手续费 0.852)、合并逻辑多笔成交场景验证通过(加权均价 6.03);
  7. 未做:历史数据查询实现(等老师 QMT Bridge 接口)、本地持久化(Q5 本期不做)、按策略过滤(Q10 后续)。

经验(待沉淀)

  • 方向判定:大 QMT m_nDirection 恒 48 是操作标记,m_nOffsetFlag 才是方向(48买/49卖)——实现时勿踩坑;
  • 手续费字段m_dCommission 与 m_dComssion(拼写变体)同值,取值优先 m_dCommission
  • 前端轮询:静默刷新不闪 loadingsetOrders 直接更新,不置 loading=true);日期切换时清理轮询定时器;
  • 服务端/客户端加载时机:服务端改动需宿主重启,客户端 bundle 刷新即载(沿用迭代 03/04 经验)。

遗留/后续

  1. 历史成交接口:老师完善 QMT Bridge 后,DateNav 历史日期从占位切换为真实查询(trading-dates 已就绪,orders/trades 加日期参数即可);
  2. 本地持久化:跨日复盘需按日落盘(Q5),待历史接口就绪后评估;
  3. 按策略过滤Q10 后续迭代(strategy_name 与插件策略体系打通)。

验收状态

  • 服务端/数据源端到端验证:(真实数据实测通过)
  • 前端 UI(老师验收通过:单表合并/时间段查询/排序/费用计算/展开明细)
  • 完整验收:2026-09-01 老师确认迭代完结,需求 R-007 归档)
  • 本次迭代 3 次 git 提交:bb3f8bd(迭代03-05/ 8caeb76(佣金合并计费)/ 08c4ad3(箭头样式)