Files
one_divine_lot/docs/02-计划/计划-策略持仓行展开关联交易记录.md
kyugao 2aacd8a25d docs(迭代07/08): 交易记录本地存储 + 策略持仓展开全量文档 + 需求归档(R-009/R-010)
- PLAN-008/PLAN-009 计划(已完成)
- 迭代 07/08 四件套(目标/技术方案/验收标准/复盘)
- 设计约束:数据存储设计 §10/§10.1、技术约束-012/013、产品约束-008
- R-009/R-010 需求归档(含二次定稿:手动归属、Q4 成本价/成交价)
- 需求池索引同步
2026-09-02 01:21:10 +08:00

2.8 KiB
Raw Permalink Blame History

计划:策略持仓行展开关联交易记录(Holding → 交易汇总)(阶段航点)

编号:PLAN-009 | 粒度:阶段航点(大粒度) | 创建:2026-09-02 | 状态:已完成(2026-09-02 迭代 08 老师确认) 派生自终极目标:目标-006(交易复盘)、目标-003(按策略监控市场) 依据需求:R-010(已定稿,2026-09-02Q1-Q3 确认) —— 符合入范围门槛 设计约束:技术约束-012(数据存储设计)、技术约束-001/003/004(沿用)

目标

策略持仓 tab 每个持仓行(Holding)可展开,展开显示与该 holding 关联的交易记录(仅委托汇总,不分笔成交),实现「持仓 ↔ 交易」的双向追溯(R-009 反向:交易→持仓已实现,本迭代持仓→交易)。

范围

  1. strategy-positions 附加 holding_idPositionManager.getStrategyPositions 返回时,查 strategy_holdings 附加当前持仓的 holding_idQ1);
  2. trades/by-holding 端点:按 holding_id 查 trade_orders,返回委托汇总列表(时间/方向/状态/委托量/成交量/均价/金额/费用)(Q2);
  3. 持仓行展开 UIStrategyTab 持仓行加展开(类似交易记录 tab 展开效果),展开后内嵌小表格显示该 holding 的委托汇总;懒加载(展开时才请求)(Q3)。

不做

  • 分笔成交明细展示(老师明确只要汇总);
  • 交易记录 tab 改动;
  • 归属设置入口(R-009 已有)。

程序结构

src/
├── component/
│   ├── PositionManager.js   # 改:getStrategyPositions 附加 holding_id
│   ├── SqliteStore.js       # 改:+getOrdersByHolding(holdingId)
│   └── DataStore.js         # 改:+getTradeOrdersByHolding
├── api/
│   └── trades.js            # 改:+trades/by-holding 端点
src/client/views/
└── StrategyTab.jsx          # 改:持仓行展开 + 内嵌委托汇总表(懒加载)

实现步骤

  1. 文档骨架PLAN-009 + 迭代 08(本步);
  2. SqliteStoregetOrdersByHoldingWHERE holding_id=? ORDER BY insert_ts DESC);
  3. DataStore:委托方法;
  4. PositionManagergetStrategyPositions 附加 holding_id
  5. api/trades.jstrades/by-holding 端点;
  6. StrategyTab:持仓行展开 + 懒加载 + 内嵌汇总表;
  7. 构建测试pnpm run build + typecheck + 独立数据目录回归(技术约束-011);
  8. 验收 + 复盘

验收要点

  • strategy-positions 每行含 holding_id(同策略同 code 当前持仓);
  • trades/by-holding 返回该 holding 的委托汇总(无成交的委托也显示);
  • StrategyTab 持仓行可展开,展开显示委托汇总表(不分笔成交);
  • 懒加载:不展开不请求;
  • 现有功能不回归。