# 计划:交易关联驱动持仓份额动态调整(阶段航点) > 编号:PLAN-017 | 粒度:阶段航点 | 创建:2026-09-08 | 状态:**已完成(迭代 16 验收通过 2026-09-08)** > 派生自终极目标:目标-006(交易复盘)/ 目标-007(人机合一) > 依据需求:**R-018(已定稿,2026-09-08,老师逐项拍板)** —— 符合入范围门槛 > 设计约束:技术约束-017(变更:幽灵清仓条款)、产品约束-011(变更)、数据存储设计.md §11(变更);新增归属分段存储设计 ## 目标 从交易记录出发的关联操作升级为**账本写操作**:策略级候选 + 统一份额分配器(一笔委托拆 0..N 段 × 策略)、买卖联动调整 strategy_holdings 份额(买入加仓/建新仓、卖出减仓/归零清仓、仓不足自动截断续分)、撤段逆操作回滚(作废第三态 / 恢复活动仓)、**数据域分界**(幽灵清仓等同步机制不再写账本,账本只由交易关联 + 手动份额操作驱动)。 ## 范围 **做**: 1. 数据域分界落地:PositionSync 删除幽灵清仓账本写逻辑(同步机制只维护对账单快照)+ 漏关联软提示检测(账本有活动行 + QMT 快照无此 code → 提示,不动账本); 2. 存储地基:strategy_holdings 增 `void_at` 作废第三态(活动 = closed_at IS NULL AND void_at IS NULL,唯一索引收窄)+ 幂等补列;新增归属分段表 `trade_order_attributions`(order_id → strategy_id/holding_id/volume/direction/created_at)+ 存量归属迁移(trade_orders 两列 → 段表第一段); 3. 归属服务(核心):份额分配器 apply/revoke——判定动作表(买/卖 × 活动仓状态 → open/add/reduce/close/截断/失败)+ 撤段逆操作(撤建仓买入=作废、撤加仓=减回归零作废、撤卖出=恢复活动+份额加回)+ 原子性(改归属 = 撤旧段 + 加新段); 4. 策略级候选 + 分配器 API:候选回归「当前持仓 + 未关联」(R-017 7 天清仓候选退役,holdingId 键控/占位安全逻辑保留); 5. UI:TradeRecordsTab 归属入口改造为份额分配器(策略下拉 + 段量输入 + 余额提示 + 部分关联); 6. 回归:新脚本(分配器动作/撤段/迁移/软提示)+ 存量回归 + typecheck + build。 **不做**:自动归属推导暴露;全部持仓/未分配 tab 份额联动 UI;未分配余额自动兜底;账本写自动化兜底(软提示不改账本)。 ## 实施步骤(阶段划分,供迭代跟踪) 1. 阶段A:PositionSync 幽灵清仓退役 + 软提示检测基础; 2. 阶段B:存储地基(void_at + 段表 + 迁移); 3. 阶段C:归属服务核心(apply/revoke 动作表 + 原子性); 4. 阶段D:策略级候选 + API(含 R-017 退役); 5. 阶段E:UI 份额分配器; 6. 阶段F:回归 + typecheck + build + 存量回归; 7. 迭代复盘 + R-018 索引状态更新 + 需求归档。 ## 验收要点 见 `docs/04-迭代记录/16-交易关联驱动持仓份额动态调整/验收标准.md`。