Files
one_divine_lot/docs/05-需求池/已完成/R-010.md
T
kyugao 35f2ad1a23 docs(归档): 迭代 07/08 归档整理(R-009/R-010 归档文件规范化)
- R-009 归档头更新为二次定稿结论(手动归属 + 冗余),清理重复标题
- R-010 归档头补充讨论记录,清理重复标题
- 需求池索引:R-009 描述与最终实现一致(手动归属,非零冗余推导)
2026-09-02 09:42:28 +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) 讨论记录:Q1-Q3 定稿(2026-09-02),补充 Q4(成本价 + 最后一笔成交价)确认


状态:已定稿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,无成交默认成本价)。