Files
one_divine_lot/docs/04-迭代记录/17-策略会话/产品逻辑设计.md
T

11 KiB
Raw Blame History

迭代 17 产品逻辑设计:策略会话

依据:R-021(合并原 R-019+R-021,已定稿)| 日期:2026-09-08 | 状态:设计稿(D 问题待老师拍板后定稿)

0. 一句话逻辑

会话 = 用户选定「讨论策略」→ 系统把该策略当前数据(当前持仓 + 全历史关联交易摘要)作为会话依据注入 → 之后人机围绕该数据复盘/分析;依据可随时更换/刷新;只读。

1. 概念与数据域

概念 定义 数据来源
策略 settings 中的策略定义(id/name,做T、网格超市…) settings.strategies(现有)
策略当前持仓(活动行) 该策略账本中未清仓的 holdingshares>0 活动) SqliteStore strategy_holdingsR-018 数据域:账本为唯一权威)
行情现价/涨跌 holding code 的实时价格 QuoteHub 内存快照(读穿透;不可得=—)
关联交易记录 归属该策略/持仓的委托(含已清仓历史,trade_orders 归属列 + 历史库) SqliteStore trade_orders/trade_fillsR-009/R-018
数据依据(basis 一次注入到会话的"策略当前数据摘要快照" 服务端按需生成(本设计)

关键语义(沿用 R-018 数据域分界):持仓展示 = 账本(活动行);交易 = 归属账本(历史全量);行情 = 内存快照。摘要生成只读这些域,不写账本。

2. 会话级状态

策略会话不需要跨会话持久存储(设计建议,见 D-3);会话内 UI 状态:

  • basis: none | { strategyId, strategyName, injectedAt }
  • basisState: idle | generating | done | error
  • 注入后的摘要内容随会话消息流存在(可折叠"数据依据"条目),不单独存储。

3. 核心流程

3.1 选择策略 → 注入依据(主流程)

  1. 对话视图(聊天)中,用户在「讨论依据」控件里选一个策略;
  2. 客户端调服务端 strategies/:id/basis-summary(只读)生成摘要文本(规格见 §4);
  3. 摘要通过宿主注入通道进入当前会话上下文(技术通道调研待定,见 §6);同屏在对话流顶部呈现「数据依据」条目;
  4. toast 反馈:已载入「做T」数据依据(3 持仓 / 42 笔交易,快照 14:32:05
  5. 用户开始提问复盘/分析;模型以摘要(及会话中后续补充)为依据回答。

3.2 换策略

  • 重开选择器选另一策略 → 再次执行 3.1(新摘要作为新的依据条目追加;chip 切换为新策略)。旧依据条目保留在历史中(模型自然以最近/明确引用的为准)。

3.3 刷新依据

  • 已选状态下 chip 提供「刷新」:重新生成当前时刻摘要并注入(盘中数据变化后想拿最新)。
  • 语义:每次刷新=新快照依据条目(含新快照时间),不覆盖旧条目。

3.4 清除依据

  • 选择器提供「清除依据」:回到无依据普通会话(chip 复位为「讨论依据:未选择」);已注入的历史条目仍在消息流中,后续对话不再视为策略依据会话。

3.5 边界

场景 行为
无可选策略(未配置) 选择器显示空态「暂无策略,请到 设置→神之一手→策略分组 添加」
会话进行中该策略被删除/改名 chip 下次加载策略列表时按 id 对齐:找不到=显示「策略已删除」+ 可清除;改名后按 id 正常(显示新名);历史依据条目保留
策略当前持仓为空 / 无行情 摘要照常生成:持仓区显示"当前无持仓";现价列显示 —;交易摘要照常(历史)
账本只读 摘要生成与注入路径无任何写操作;UI 无操作按钮(区别于数据 tab 的手动操作)
未选策略的普通聊天 与现状完全一致,不受影响(策略会话是可选增强,不锁定会话)

4. 摘要规格(服务端 basis-summary 输出,markdown 文本)

结构(自上而下):

  1. 快照头【神之一手数据依据】策略:做T | 快照:2026-09-08 14:32:05 数据为只读快照,非实时
  2. 当前持仓(活动行,逐行):code 名称|份额|可用|成本价|现价(— 缺失)|市值|浮动盈亏|持仓天数;尾部合计(N 只 / 总市值 / 总盈亏)。现价/市值缺行情时给—,不阻塞。
  3. 交易摘要(该策略全历史关联委托,聚合):总笔数/买入累计/卖出累计(按归属 holding 聚合):
    • 每 holding 一段:code 名称|状态(持有中/已清仓 清仓日)|买卖笔数|累计买入(量/额)|累计卖出(量/额)|当前份额;
    • 已清仓 holding 标注清仓日期与最后动作摘要;
    • 排序:持有中在前(按成本日/名称),已清仓在后(按清仓日倒序);
    • 规模上限holding 超过 20 行时按最新清仓倒序截断并注明「更多历史见 交易记录 tab」。
  4. 尾注:只读提示「以上为策略数据快照;本会话只读,不执行任何交易/账本操作」。

字段精确取数与空值规则在技术实现方案细化。

5. 非目标(本期明确不做)

  • 宿主工作区/目录注册(原 R-019 R3,已并入 R-021);
  • 账本写/交易执行、任何操作按钮;
  • 按需取数工具(AI 自行调用业务接口);
  • 复盘产物落盘 / 复盘管理(含 DB)——未来 T-002 方向;
  • 通用视图(全部持仓/交易记录)作依据;
  • 关注列表作为依据源。

6. 技术通道(设计假设,待调研确认)

注入的可行通道候选:① 宿主 injected-context/上下文节点(可折叠条目、非用户消息)→ 首选;② 会话 send(文本消息形态进会话)→ 兜底(呈现为一条前置依据消息)。渲染与动作方案以调研结果为准(本期设计保留两种形态的表达,UI 交互设计按"数据依据条目"统一描述)。

0.5 产品逻辑总图(2026-09-08 老师确认:画像 / 模型 / 主线 / 分期草案)

目标交易者画像(Q-画像,2026-09-08 确认)

  • 混合交易模式的多策略分仓管理:同一账户下并存多种交易风格的策略分组(当前:手动做T + 程序化网格超市;未来:情绪流交易风格的管理逻辑);
  • 即"策略 = 分仓 + 交易风格/规则的容器";系统须能承载 手动主观 + 自动化规则 + 未来情绪流 三类玩法(彼此数据/规则/复盘口径不同)。

交易员工作模型(知识库归纳,作为产品逻辑基准)

  • 日循环:盘前计划 → 盘中执行/监控 → 盘后记账核对 → 复盘总结 → 明日计划;
  • 策略循环:规则制定 → 按规则执行 → 规则校验(复盘)→ 规则修订;
  • 复盘闭环:重建事实 → 归因 → 对照规则 → 提炼改进;复盘原料 = 决策时的依据记录(知识库共识:没有决策留痕的复盘只是猜)。

AI 分工定位(人机合一,只读)

  • 盘中 = AI 参谋台(状态聚合 / 规则触发提醒 / 轻问答 / 决策留痕 / 人扣扳机执行),快、准、不打断;
  • 盘后 = AI 复盘主持人(自动重建事实线 → 引导人过结论 → 结论留痕),人不被 AI 下"对错"裁决;
  • 决策依据记录(盘中一键留痕:理由 + 当时快照)是产品逻辑主线之一(2026-09-08 老师确认)——复盘有据的前提。

能力地图(现状 → 缺口)

  • 已具备"事实记录层":对账单快照 / 策略账本(唯一权威)/ 交易记录+归属 / 行情快照 / 策略 configSchema(可承载规则参数);
  • 缺口(按承接排序):①复盘事实线入口+可讨论会话(R-021 合并需求,本迭代)②决策依据留痕(盘中)③规则触发提醒 ④盘后自动日结/统计 ⑤复盘管理库(决策日志+复盘记录结构化存储检索)。

分期草案(2026-09-08 老师认可分步实现;各 Phase 具体内容待讨论细化

阶段 主题 交付设想(草案)
Phase 0(迭代 17 复盘会话闭环 R-021 策略会话复盘(原 R-019+R-021 合并;策略数据依据 + 粒度复盘上下文,事实线 → 会话讨论 → 结论在会话)
Phase 1 盘中辅助(雏形) 决策依据一键留痕(理由+快照落库)+ 规则触发/偏离提醒雏形(configSchema × 行情)+ 会话内盘中快查
Phase 2 盘后日结与统计 自动日结(当日各策略事实线+盈亏+异常)→ 一键入会话复盘;周期统计(轮次收益/胜率/策略健康)
Phase 3 复盘管理库 决策日志+复盘结论结构化沉淀/检索/关联(DB),对接目标-006;情绪流风格管理逻辑另立项

0.6 Phase 0 范围确认(2026-09-08 老师确认:就这样)

  • Phase 0 = 复盘会话闭环,范围 = R-021 单一合并需求(原 R-019 + R-0212026-09-08 老师指令合并、逻辑整合入 R-021)
  • 复盘单元建模(A 拍板):引入"轮次 round"概念(holding 之下的交易周期聚合层):
    • 网格超市:一次买入触发 + 对应卖出配对 = 一轮(每格触发记一轮);
    • 手动做T:一次开仓 → 清仓 = 一轮;
    • 支持人工合并/拆分修正(先人工可调);
    • round 承接"复盘对象"的最小粒度,委托/段为 round 内明细;
  • 行情口径(C 拍板):本期事实线 = 交易记录 + 持仓史 + 现价对照(无历史 K 线/分时);历史行情背景 Phase 3 复盘库时再评估;
  • 决策日志预留(拍板)Phase 0 设计为"决策依据记录"留数据模型位置(时刻/理由/类别/当时快照/关联 round 或 holding),Phase 1 实现,不返工;
  • 风格差异:复盘口径按策略类型可扩展(手动/网格,未来情绪流预留策略类型维度)。

7. D 问题(AI 建议项,待老师拍板)

# 问题 AI 建议
D-1 注入条目的呈现形态 对话流顶部「数据依据」条目:默认折叠为一行(图标+策略+快照时间+行数摘要),点开看全文;不伪装成用户消息
D-2 交易摘要聚合粒度 按持仓聚合(每持仓一段汇总 + 已清仓标注),不逐笔铺开(避免注入过长);如老师要"近期逐笔"可加近 N 笔小表
D-3 依据选择是否跨刷新持久化 本期会话级不持久化(刷新需重选;历史注入条目仍在消息流),与 R-016 会话级偏好一致、不加存储;复盘管理未来再考虑
D-4 选择控件挂载位置 对话视图输入框上方 accessory 行左侧(仿 DSH workspace chip 位置),仅聊天视图可见;替代方案=会话头部(与 QMT chip 并排)待老师定