Files
one_divine_lot/docs/05-需求池/已完成/R-010.md
T
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

4.1 KiB
Raw Blame History

R-010 策略持仓行展开关联交易记录(Holding → 交易汇总)· 已完成

归档日期:2026-09-02 | 需求状态:已完成 原索引:docs/05-需求池/需求池索引.md(主索引保留 R-010 条目,指向本归档) 实现迭代:08-策略持仓行展开关联交易记录(老师确认,迭代复盘见 docs/04-迭代记录/08-策略持仓行展开关联交易记录/迭代复盘.md) 关联计划:PLAN-009docs/02-计划/计划-策略持仓行展开关联交易记录.md)


R-010 策略持仓行展开关联交易记录(Holding → 交易汇总)

状态:已定稿2026-09-02,老师确认 Q1-Q3)| 登记日期:2026-09-02 来源:老师指令(2026-09-02 优先级:P1 关联:R-009(交易记录本地存储 + holding_id 关联)、迭代 07

需求描述

策略持仓 tab(如「网格超市」「手动做T」)中,每个持仓记录(Holding)行可展开,展开后显示与该 holding 关联的交易记录(仅委托汇总,不分笔成交)。

  • 展开效果类似交易记录 tab 的展开效果;
  • 展开内容只显示委托汇总(一笔委托一行,聚合成交信息),不显示分笔成交明细
  • 关联依据 = trade_orders.holding_idR-009 已建立:用户手动设置归属时写入 holding_id)。

现状(代码审查 2026-09-02

现状
策略持仓 tab StrategyTab.jsx:表格展示策略持仓(代码/名称/现价/策略份额/总持仓/操作),行不可展开
持仓数据 strategy-positions 端点返回 QMT 持仓 + shares不含 holding_id(需附加)
holding 关联 trade_orders.holding_idR-009 手动归属写入),按 holding_id 可精确查询交易
交易汇总 trade_orders 单行即委托汇总(order_volume/traded_volume/amount/费用等),天然是汇总

待讨论点(Q1-Q3,AI 建议见各条)

Q1 持仓行如何带出 holding_idAI 建议:strategy-positions 附加 holding_id

  • 方案:PositionManager.getStrategyPositions 返回时,查 strategy_holdings 附加 holding_id(同策略同 code 的当前持仓);
  • 一票多策略:当前策略下的该 code 只有一个当前持仓(idx_active_holding 约束),可精确匹配;
  • 需确认:是否接受服务端附加 holding_id 到 strategy-positions 响应?

Q2 查询端点(AI 建议:新增 trades/by-holding 端点)

  • 新增端点:按 holding_id 查 trade_orders(返回委托汇总列表,含状态/方向/量/价/金额/时间);
  • 复用 SqliteStore 查询(WHERE holding_id=? ORDER BY insert_ts DESC);
  • 需确认:端点命名与返回结构?

Q3 前端展开 UI(AI 建议:持仓行展开 + 内嵌汇总表)

  • 展开效果:类似交易记录 tab(行点击展开/折叠,箭头指示);
  • 展开内容:内嵌小表格显示该 holding 的委托汇总(时间/方向/状态/委托量/成交量/均价/金额/费用);
  • 懒加载:展开时才查询 trades/by-holding(不展开不请求);
  • 需确认:展示列是否与交易记录 tab 的委托汇总一致(可精简)?

Q4 成本价 + 最后一笔成交价(2026-09-02 老师补充,已确认)

  • 成本价:持仓数据源已有 avgPrice(QMT 持仓字段,如博纳影业 6.8393),直接展示;
  • 最后一笔成交价
    • 该 holding 关联交易记录(trades/by-holding)按时间取最新一笔有实际成交tradedVolume > 0)的委托的 tradedPrice(成交价);
    • 无关联交易 / 关联委托均未成交 → 默认等于成本价(avgPrice);
  • 展示位置:策略持仓 tab 持仓行加「成本价」「最后一笔成交价」两列。

定稿记录

  • 2026-09-02 老师确认 Q1-Q3 全部定稿:strategy-positions 附加 holding_idQ1+ trades/by-holding 端点(Q2+ 持仓行展开 UI(懒加载,仅委托汇总)(Q3);R-010 转已定稿,进入迭代 08 实施
  • 2026-09-02 老师补充 Q4(成本价 + 最后一笔成交价)并确认规则(取最新有成交的 tradedPrice,无成交默认成本价)。