tradingSystem/docs/开发规格_买卖方向冲突修复_2026-10-19.md

49 lines
3.1 KiB
Markdown
Raw Normal View History

# 买卖方向冲突修复开发规格
2026-10-19,北京时间。用户已授权修复并检查其他流程。
## 目标与已核实反例
科士达旧建仓目标600股,累计买入400股。今天09:51风控清仓400股,卖出200股。
旧建仓仍活跃,剩余200股可能隔日再买。实际子委托均已成交,页面却写已挂单。
原始卖出理由在audit_reason及component_scores.reason,PMS解析遗漏。
证据保存在155 ~/pms_logs/kstar-conflict-20261019-1402.json及kstar-signal-20261019.json。
## 实现与边界
1. 停止依据追加到动作账本,不依赖可被并发覆盖的进度JSON。下发回写不得复活终态指令。
全部完整清仓指令在执行前统一停买入侧。复用既有策略、提议、指令撤销路径。
覆盖信号自动清仓、命令清仓、人工采纳、技术面离场及跟踪止盈。
每跳重试未完成收尾,也覆盖上线前遗留的清仓指令。不修改已成交数量、成本或盈亏。
2. 同票有活跃EXIT或TRIM时,买入发出前再检查。查询失败停止买入。
普通减仓只暂缓买入,不永久撤销建仓或策略。做T自身T0_ROUND不当清仓。
完整清仓期间,做T买回也不能抵消清仓;没有清仓时原有配对流程不变。
3. 待确认卖出仅阻止新的自主增持提议,不自动撤销已有买单。
用户采纳买入前核对已生效的卖出指令,冲突时保留提议和说明,不写已采纳。
4. 出口队列先处理撤单,认领时排除待撤单。发送前重查买入冲突及父指令状态。
尚未发出且已失效的买单本地作废,已经发出的买单走撤单回执。
撤单受理不冒充成交撤回,迟到成交继续按已有逐笔路径记账。
5. 页面读取实际子委托状态。没有活跃子单时显示等待下一批、等待可卖或执行等待。
技术单号只在详情出现。卖出理由采用原文,不新调用模型。
## 预判与验证
先建立科士达跨日反例,再验证各入口共用的执行终检。
覆盖部分成交、T+1、普通减仓、T0配对、撤单失败重试、排队后清仓、查询失败、重复执行。
页面验证已发出且终态的子单不能显示为挂单,取数失败明确为状态待核实。
全部测试使用配置隔离与禁网入口。运行三页面守卫。
155部署前保存参数、账务、指令与镜像证据。只修模拟实例,188不动。
上线后先查自然调度清理旧建仓,保留真实400股买入与200股卖出。
不采纳提议、不制造成交,不改交易时段或业务阈值。
## 回退
保留成交与撤销审计。155挂载/app,须反向提交、git pull后重建四容器。
回退不恢复已经撤销的买入指令。撤销前保存旧镜像与证据。
## 本地验证记录
22项专项回归通过,覆盖五类清仓入口共用执行器、撤单失败与旧进度覆盖、T0不误挡、人工确认被拦时保持待确认。
45批配置隔离、禁止联网的回归通过,包含三页面守卫。生产状态另记部署判收。
原临时虚拟环境被系统清理,本轮另建 /private/tmp/pms-conflict-20261019-venv。