docs(迭代07/08): 交易记录本地存储 + 策略持仓展开全量文档 + 需求归档(R-009/R-010)

- PLAN-008/PLAN-009 计划(已完成)
- 迭代 07/08 四件套(目标/技术方案/验收标准/复盘)
- 设计约束:数据存储设计 §10/§10.1、技术约束-012/013、产品约束-008
- R-009/R-010 需求归档(含二次定稿:手动归属、Q4 成本价/成交价)
- 需求池索引同步
This commit is contained in:
2026-09-02 01:21:10 +08:00
parent 859938c4f1
commit 2aacd8a25d
16 changed files with 821 additions and 6 deletions
+63
View File
@@ -0,0 +1,63 @@
# 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,无成交默认成本价)。