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

63 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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,无成交默认成本价)。