# R-010 策略持仓行展开关联交易记录(Holding → 交易汇总)· 已完成 > 归档日期:2026-09-02 | 需求状态:**已完成** > 原索引:docs/05-需求池/需求池索引.md(主索引保留 R-010 条目,指向本归档) > 实现迭代:08-策略持仓行展开关联交易记录(老师确认,迭代复盘见 docs/04-迭代记录/08-策略持仓行展开关联交易记录/迭代复盘.md) > 关联计划:PLAN-009(docs/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_id(R-009 已建立:用户手动设置归属时写入 holding_id)。 ## 现状(代码审查 2026-09-02) | 项 | 现状 | |---|---| | 策略持仓 tab | StrategyTab.jsx:表格展示策略持仓(代码/名称/现价/策略份额/总持仓/操作),行不可展开 | | 持仓数据 | strategy-positions 端点返回 QMT 持仓 + shares,**不含 holding_id**(需附加) | | holding 关联 | trade_orders.holding_id(R-009 手动归属写入),按 holding_id 可精确查询交易 | | 交易汇总 | trade_orders 单行即委托汇总(order_volume/traded_volume/amount/费用等),天然是汇总 | ## 待讨论点(Q1-Q3,AI 建议见各条) ### Q1 持仓行如何带出 holding_id(AI 建议: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_id(Q1)+ trades/by-holding 端点(Q2)+ 持仓行展开 UI(懒加载,仅委托汇总)(Q3);**R-010 转已定稿,进入迭代 08 实施**。 - 2026-09-02 老师补充 Q4(成本价 + 最后一笔成交价)并确认规则(取最新有成交的 tradedPrice,无成交默认成本价)。