tradingSystem/docs/每日选股计划完善方案与开发规格_2026-10-15.md

415 lines
39 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.

# 每日选股计划完善方案与开发规格
2026-10-15,北京时间。用户已批准三仓联动实施。本文是本轮开发、验收和接续入口。
## 目标与边界
统一研究依据、候选排序、建仓优先级和复盘记录。保留候选准入、线上参数和交易职责。
盘中新评析自动发布完整修订版。自主提议采纳前重核,排名变化本身不撤销提议。
基座提供研究,桥形成计划,PMS 管组合与执行。修订不调用模型。
## 实现契约
- 计划保留原字段;schema_version=2,decision 包含 id、parent_id、cutoff_at、input_hash、params_hash、reason。plan_version 仍为代码版本。
- 每行新增 research_rank(全量顺序)、research、review_ref;展示裁剪不能改写 research_rank。
- 采集输入与确定性装配分离。输入、有效配置、全量输出一起归档。相同内容幂等;文件锁串行发布,原子切换最新指针;晨版固定为首版。
- GET /plan 支持 decision_id,只读发布物。历史缺档明确报错,不以当前来源重构。旧快照可读但注明追溯不完整。
- 07:20—15:10 北京时间交易日每五分钟 plan-refresh,只更新评析与区制。晨版缺失不代造。08:45 区制更新同样发布版本。
- 修订失败保留旧完整版本;已识别的变更股票列入 pending_codes,PMS 暂停其新增自主提议。GET 不做重装配。
- 基座报告按内容指纹保存,最新索引保持原结构。report_version_url 固定内容;旧报告不伪造归档引用。
- PMS 保存 received(收到)、consumed(实际筛选消费)、rechecked(采纳核验)三类记录。后两类记录有效参数、实际顺序、逐票过滤原因与上下文指纹。动作账本保留决策及消费引用。
- 自主扫描继承 selection_rank;现有信号优先仍生效且记原因。命令驱动保留原分配规则并记录来源。
- 自主提议转指令前核对版本;资格、风险、仓位依据变化重新走现有评估,旧批准不复用。仅顺序变化可继续。未知当前版本守成。人工页面版本不匹配返回冲突与新提议。
- 研究增加预期差、周期、材料期、材料数、未知问题、数字核验、论点变化和验证事项。自然语言不自动转交易触发器。
- 复盘读取晨版与真实消费记录。缺档与重构不混入真实效果统计。旧收益口径和期限保持。
## 验收预判
1. A 优先于 B 且仅一名额时产出 A;信号插队有明确原因。
2. 好转差时全出口同步,旧版字节不变;相同输入不重复发布。
3. 同强度证据与无主题裁剪确定;全量名次不随展示参数改变。
4. 历史不含未来评析,当前参数不改变历史消费名单。
5. 提议排名变化、资格失效、仓位缩减、版本缺失和并发采纳逐项测试。
6. 发布中断、重复触发、并发区制更新、失败恢复和重启恢复不破坏旧版。
7. 缺新增字段兼容;修订零模型调用;普通查询不重装配。
8. 两端页面守卫与浏览器验证通过。
## 交付与运行边界
四批为确定排序、不可变版本、消费与重核、研究与页面。先兼容读取,再发布,最后开启修订。
本地验证不能代替部署验收。十二分钟目标按连续交易时段核验。午休等待单列,确保下午开盘后及时实际消费。10-15 用户确认当前即为模拟仓,取消额外五个交易日观察;首个完整晨版通过后启用修订及重核。
容器与生产操作另按授权边界执行。避开 06:10 及 07:10 窗口。
版本至少保存一百二十个交易日。被未结束提议或持仓引用的记录继续保留。
本轮初始记录为未部署;当前已部署,五日等待条件已由用户取消。验收实测在文末与交接追加。
## 开发人员实现说明
### 第一批:确定性与顺序
桥的 `plan._evidence` 在同强度证据后按目标名、来源数、市场统计与日期稳定排序;卡片最终以代码收尾。
`pick_rows` 与 PMS `select_candidates` 均只对明确主题应用主题限额,无主题不构造共同的行业桶。
有效排序开关仍从原配置读取;PMS 筛选结束写 `selection_rank`,动作引擎按此序逐只扣名额和资金。
既有盘中信号优先在它之前,写 `execution_rank/priority_reason`。命令规划保留原命令、白名单和分配次序,
把来源及最终顺序写入命令 progress,再按 plan_id 传到指令 progress 与执行账本。
### 第二批:固定输入、发布和恢复
`plan_inputs.Bundle` 在来源函数边界录制实际结果和错误,并使用 ContextVar 隔离装配。
输入支持 DataFrame、Series、日期、Decimal、集合及缺失值;归档 JSON 可重放。
重放禁止缺项回源,即使上层捕获异常,退出重放作用域时仍会报错。有效业务配置同步冻结。
晨版评析按带时区 cutoff_at 过滤;它与行情 date 独立,因此可以使用今日盘前已知材料。
`plan_versions` 用进程间文件锁覆盖采集至发布。文件路径为:
- `versions/<行情日>/<decision_id>.json`:完整计划、实际输入和有效配置,只追加。
- `plan_<行情日>.json`:原有兼容入口,完整写入临时文件、fsync 后原子替换。
- `versions/<行情日>/morning.json`:首个成功发布版本;中断缺失时沿已发布父链恢复。
- `versions/<行情日>/health.json`:检查时刻、待核验股票和错误原因。
版本身份包含输入、参数、代码版本、行情日和父版本。同有效输入不重复发布;A→B→A 保留三个实际版本。
最新入口带已发布祖先标识,查询固定版本不需要逐次读取整条历史。未切换成功的孤立文件不能对外查询。
Markdown 兼容文件从已发布 JSON 派生并标明决策版本;写入失败不回滚已发布 JSON,下一次发布可恢复。
普通查询只做固定版本读取和展示裁剪。`PLAN_FROM_SNAPSHOT` 的旧“回落现算”语义废止;
`PLAN_REVIEW_SOURCE=live` 也不再允许用当前研究伪造历史。保留两个配置名称用于旧配置兼容。
`plan-refresh` 是 XXL 白名单里的独立步骤,不加入晨间默认三步。调度平台每五分钟触发,
函数再核验北京时间、交易日和当日晨版。时段为 07:20 至 15:10(含端点);日历依赖 chinesecalendar>=1.11,
本地已验证其 2026 年工作日与国庆休市读数。08:45 `regime-append` 走同一锁和发布入口。
只替换新评析及区制,其余来源使用晨版冻结值;修订不写日频逻辑状态表、不重投评析目标、不调用模型。
读取评析前标记观察范围待核验,来源失败保留该标记;成功后仅对实际变化的票保留,发布完成后清除。
桥缓存键包含决策版本和修订状态。PMS 最新计划缓存不超过五分钟;基座最新计划代理缓存一分钟,
指定版本代理可长缓存。目标预算为检查等待五分钟、消费等待最多五分钟,余下两分钟供装配及传播,
十二分钟按连续交易时段测量。午休分别记录总等待时间与下午开盘后的实际消费时延,不修改原执行时段。
### 第三批:消费记录与采纳核验
复用 `pms_plan_snapshot.meta_json/roster_json`,消费指纹含决策版本、有效筛选参数、持仓与黑名单上下文、
实际顺序和逐票过滤原因;正常展示预览不记作实际消费。消费留痕失败仍可展示,但不能新增自主提议。
取消按行数删除的所有调用,旧清理函数也改为不删除;当前保留全部记录,满足至少 120 交易日及在用引用保留。
后续若增加容量治理,必须证明交易日水位与引用保护,不能恢复旧 200 行截断。
`PMS_PLAN_VERSION_RECHECK` 为新增发布控制,默认 False。启用后自动采纳和人工采纳 OPEN 均强制刷新计划核验。
仅排名变化保留提议;复核不再应用 top_n 和主题展示限额,但原档位、风险、黑名单等资格检查仍保留。
研究、风险或仓位参数变化时,以当前组合重新走 `_scan_open`、合议、强制重新研判、建议数量及规则闸,
排除原提议自己的在途占用;人工提议更新内容并产生 proposal_revision,原批准不能沿用。
持仓数量、可用资金、行业归属和其他在途承诺变化也会使旧数量依据失效。重新评估时按已有 force_refresh
接口要求决策系统重新回答,遵守其原有强制次数预算;不能复用股票/动作缓存中的旧批准。
数据库用 WAIT_USER 状态与原 hard_numbers_json 的条件更新拒绝并发重复采纳和旧内容确认。
版本不可用、资格失效或重评未通过时保留待确认提议并给出原因,不产生新的自主买入指令。
已落指令仍沿原执行终检和风控,不因研究名次变化自动撤单或卖出。
复盘主表固定首个成功晨版;日频“交付名单”使用当日最后一条真实消费的已记录顺序与参数。
新增 `版本消费对账_<日期>_<口径>.csv` 单列所有晨版、修订、消费及核验记录,关联父版本、原因、
消费参数、过滤项和追溯资格。盘中多版本不当作多个独立交易日加权。缺档和旧名册排除真实效果统计,
记录覆盖率;既有五、十、二十日观察及执行账本口径保留。
### 第四批:研究信息与报告引用
基座沿用 company_review_runs.summary,新增 review_ref、report_version_path;不改表、不改质地合成。
报告 Markdown 与侧车 JSON 的内容指纹决定对象路径,先保存两种对象,再更新最新索引。
`GET /company/{code}/review?ref=<指纹>` 只读固定对象;无 ref 的最新报告入口保留。
桥透传已有预期差、周期、材料期、数量、未知问题、核验信息与报告生成时刻,计划行保存冻结研究摘要和差异。
来源未给出的日期与阈值保持未知;摘要不冒充历史完整报告。
基座今日页先取计划,再按该 decision_id 取判决。PMS 候选、提议和持仓页面展示版本、原因、
论点、反方论点、材料与报告时间、待核验事项;独立持仓研究另带 observation_at/scope,不能冒充计划版本。
完整指纹保留在详情。报告查询只接受合法指纹,并从已知基座地址取得指定版本。
## 五处登记与运行入口
本轮没有新表。新增任务的存储、调度、手工入口、日检和台账分别为 `plan_versions.py`、
`xxl.py` 的 plan-refresh、`run.py plan-refresh`(及 POST /plan/refresh)、`plan_health.py`(及 GET /health),
桥决定台账 064、PMS 决定台账 018 与同名交接文档。
```bash
# 桥机 · 已确认的桥容器内 /app;部署批准之后才执行,date 不传自动取最新已发布日
python run.py plan-refresh
python plan_health.py
```
平台入口仍是 `/api/v1/xxl/daily-build?steps=plan-refresh`,使用既有 X-Job-Key 鉴权;
实际平台任务为 XXL 137“每日选股计划五分钟修订”,已创建但停止,首个完整晨版通过后启用。日检只读文件,0 正常、1 旧版/待修订/修订检查超十二分钟、2 缺档或结构损坏。
时段外不把停止检查误报成故障;窗口内没有今日晨版也会提示。
## 本地验收与分批上线
四批本地实现及离线、假数据页面验收已完成。10-15 用户批准部署后,基座、155 桥和 155 模拟 PMS 均已部署,
桥最终镜像 33 组断网契约测试通过,11:28:51 完成重建。具体提交、参数和实测见 `交接_每日选股计划完善_2026-10-15.md` 末节。
上线顺序:先基座版本报告与 PMS 兼容读取、留痕;再桥新版发布并核验首个晨版;最后配置五分钟修订任务,
核验传播正常后只在已确认的模拟实例开启 PMS_PLAN_VERSION_RECHECK。不能替用户切换原排序开关、
档位白名单、策略阈值或自动扩大仓位。桥 requirements 更新需要纳入镜像;基座后台代码必须四 worker 一起换,
前端必须重建;这些容器操作仍需用户同意。实际机器、容器名及实例前缀部署前按各仓现行运维文档只读确认。
10-15 已获得本次容器操作批准;不把这次批准延伸为以后维护的常设授权。用户另批准补齐旧排序配置,
桥实际为 PLAN_RANK_AXIS=transmission、CARD_SORT_BY_QUALITY=0,保持原行为。今天旧计划字节不变。
下一交易日 10-16 07:25 由 Codex 心跳 automation-2 核验首个完整晨版;通过后启用已经创建且停止的 XXL 137,并打开模拟仓提议重核。额外五日模拟观察已取消。
按首版与后续实际修订事件记录(不再要求连续五个交易日):晨版与修订版本、输入及配置指纹、评析到达/发布/消费三个时刻、
消费顺序、信号优先原因、待核验股票、重新确认案例、失败恢复及重复指令计数。
目标为同版内容一致、旧版不变、连续交易时段传播不超过十二分钟、午休材料开盘后及时消费、无并发重复指令。按文末实测逐项判收。
回退优先暂停平台 plan-refresh 并关闭新核验控制,保留版本、报告对象与账本;继续提供最后一份完整计划。
禁止把回退解释为删除历史或恢复查询时局部覆盖评析。
## 10-15 补充决定
用户取消额外五日模拟观察,未取消具体技术验收。任务 137 以 A股交易日时间段模式配置 07:20—15:10、300 秒,
当前停止;07:10 与 08:45 原任务保持。首个完整晨版通过后直接按已授权范围启用修订及提议重核,失败则保留当前有效版本并修复。
Codex 心跳 automation-2 负责 10-16 07:25 的接续检查和必要后续验证,不能当作五分钟业务调度。
PMS 三项旧对账差异的防双记修复 e9afc7a 已部署;旧批次成本、盈亏及执行进度仍需有证据的独立修复,不把日终数量归零差额当历史修复完成。
详细实例、测试、证据快照及待判收项见同日交接最后一节。
## 10-15 历史修复补充规格与判收
历史修复遵循“完整备份—逐笔编译—前置原行比较—事务写回—独立读回”,不能只调整持股差额。真实买入须以数量、价格、父指令和入账时间唯一对应批次;重复汇总批次须有下游汇总证据;逐笔数量须等于子单累计数量。卖出沿既有批次核销次序重建成本与盈亏,费用缺失不伪造。所有 SQL 维持单表守卫。原误判完成但未足量的父指令暂停剩余执行,不自动复活旧单;真实超额成交保留事实。
155 已部署 0871885 并恢复三票数量、成本、盈亏和 24 条父指令进度。134 笔成交、122 行原值审计,重复执行幂等,独立读回无差异。本地与候选镜像全部 44 批通过。费用、历史峰值、已删除旧轮次批次与历史全组合绩效的限制见同日交接最后一节。原始成交、回放游标和历史报表不改写。明日 07:25 首晨版核验和通过后启用 XXL 137 / 提议重核的安排不变。
最后补充:已恢复的指令均价有固定观察时点。未来新成交使旧均价失效,原修复金额保留于版本化审计,避免只更新执行量却沿用旧均价。该补齐为 a56dac5,22 个专项回归及完整 44 批本地和候选镜像测试通过,12:50 最终部署与再次读回通过。
## 10-16 晨版验收发现的重复构建边界
目标:已发布日期不能被另一条全量构建链重新采集研究后替换。盘中变化只走完整修订入口。
今晨验收发现,01:50 的既有流水线也触发默认 build、plan、push-pool。
它在当日盘前数据尚未准备时,以 10-14 数据日发布了新的首版,并覆盖旧格式日期文件。
07:10 正常链已另行产出 10-15 数据日的完整晨版。旧格式原文件尚未找到可核验备份,不能声称已恢复。
修复:generate 遇到已有日期直接复用已发布内容,不再采集、写日频逻辑或投评析目标。
底层 publish 拒绝替换没有 decision 的旧格式文件,保留原字节。
复盘以行情日的下一交易日校验晨版截止日期。跨过该日才生成的首版单列,不纳入真实决策统计。
不更改流水线、选股参数或晨版文件,不制造新的历史版本。
预判:旧格式重复构建字节不变;完整版本重复构建不回源;底层直接替换旧格式被拒绝。
复盘应排除 10-14 数据日但 10-16 才发布的首版,保留今晨正常 10-15 数据日版本。
先跑合成输入回归,再在候选镜像断网验证。上线只更换桥容器,核对完整晨版文件哈希保持。
回退保留版本与账本,恢复前一镜像并停止新增修订任务,不覆盖任何计划文件。
10-16 补充判收:e44f770 已部署。本地和候选镜像各 36 组禁网回归通过,07:33:40 桥重建完成。
今晨版本原字节保持,晚生成历史样本已排除;丢失的旧格式原件未恢复。
07:35 XXL 137 首次自动检查成功,未重复发布。07:35:36 提议重核开启,其余参数保持。
真实消费、自然研究传播和重核案例待后续正常调度验证。下一次接续为 10-16 08:55。
详细运行读数与边界以同日交接的 10-16 追加节为准。
## 10-16 08:45 区制与修订调度冲突修复
实测:XXL 122 的 08:45 区制追加与 137 的五分钟修订同时触发。
137 先取得桥全局任务锁,122 返回 409,平台未配置重试,区制未追加。
已发布晨版与修订版保持完整。此次修复只解决这两类完整修订的串行受理。
实现:在桥任务入口为 plan-refresh 和 regime-append 增加有界等待队列。
仅当正在执行与新请求均只含这两类步骤时排队,最多两条等待任务。
其他构建与写池任务继续沿用忙时拒绝。等待任务保持独立标识与结案回调。
完成或失败均释放下一条,单写入锁与输入幂等继续负责计划发布。
等待状态显示 queued,真正执行时才写 started_at,收到时间另记 accepted_at。
队列驻留现有进程内存,服务重启不冒充任务成功;须核对未结案任务后补执行。
不改 08:45 时刻、五分钟周期、候选参数、模型调用或交易行为。
预判与验证:两个方向同时到达均按接收顺序执行,无并行装配。
前一个失败仍放行后一个,各自回调一次;队列满明确拒绝,普通构建仍为 409。
先补合成回归,再跑完整离线及候选镜像禁网测试。部署前保存现有版本文件哈希。
上线后补执行原 122 区制任务,核对新完整版本、原晨版及所有旧归档不变。
回退使用前一桥镜像,保留版本与台账,并暂停冲突任务,不能覆盖归档。
## 10-16 PMS 收到版本身份比对修复
浏览器验收已进入登录后的真实页面。新版快照落库成功却提示未落库。
原因是写入使用版本与查询范围指纹,变化与预览仍使用旧名册指纹。
三个出口共用收到身份函数,保留旧数据回退;实际消费与收到继续分开。
预判:相同版本及查询范围显示一致,任一变化显示不一致,落新记录后恢复一致。
页面删去请求时实时装配、没有版本和始终按分数排序的过期说明。
只影响版本观察与说明,不调整候选、提议、数量或任何参数。
先跑隔离禁网回归与页面三守卫,候选镜像断网复核后仅在 155 部署。
回退保留快照账本并恢复前一 PMS 镜像,不修改历史记录。
10-16 09:30 补充判收:桥 72efc8c 与 PMS 3057250 均已在 155 生效。
桥 7 套本地及候选镜像回归、PMS 44 批本地及镜像禁网回归、三页面守卫均通过。
09:13 补执行原区制任务成功,晨版及旧归档保持;09:25 正常扫描消费区制完整版本。
24 只候选的顺序、有效参数、过滤原因与消费指纹通过核验。
24 份自然新评析在 17 秒至 5 分 9 秒内发布,但盘中评析至实际消费十二分钟仍待自然事件。
登录后候选、提议与持仓页面已核对。旧数据明示缺失,收到记录不冒充实际消费。
真实重核和新成交防双记继续接续,不制造事件,不增加额外五日观察。
详细版本、镜像、备份、运行边界和手工验证命令见同名交接最新追加节。
## 10-16 交易员研究展示修订
用户指出新增版本字段破坏交易员页面风格。本条修正此前“信息可读”的验收结论。
操作卡只保留动作、金额、主要结论及必要风险提示。研究复用原基本面入口,不增加字段清单。
详情按核心判断、风险、预期、待验证事项和研究变化组织;技术来源默认折叠。
报告时间和材料期分开,数值展示适度舍入。缺失项不连续占位,无摘要明确说明。
候选、持仓及运维提议复用同一详情,避免表格撑高;不改冻结依据、数量和交易行为。
预判为侧栏无长标识溢出,裁决按钮紧接摘要,旧记录不伪造研究,来源展开仍可核验。
本地与 155 禁网临时容器三道页面守卫通过。09:47 浏览器核验侧栏和来源区均无横向溢出。
纯静态页面 c2d0dc9 已经 155 源码挂载生效,交易进程未重启。回退需反向提交静态页并拉取。
## 10-16 交易员界面整体检查与补充验收
用户要求将同一原则扩展到整个交易员界面。提议以建议动作、股数、金额和仓位差异为主,重算过程可展开。候选直接显示等待条件,保留原筛选和排序;资金占用说明去除内部代码数组。交易方案、持仓和信号说明同步简化,技术参数及来源置于详情。补齐既有分区折叠样式,方便集中查看候选。
本轮仅修改展示,不更改交易流程与参数。16d8fd7 和 564f553 已在 155 静态挂载生效。两次本地与服务器禁网页面守卫通过。浏览器核验 3 条提议、13 只候选、2 个当前方案,数量差异仍显著,详情入口与折叠正常,无横向溢出或页面错误。四个交易进程未重启,188 未操作。回退使用静态反向提交。备份、哈希与手工验证方法见交接同日 10:20 追加节。自然事件技术验收继续独立记录,本轮不宣称该项完成。
## 10-16 10:40 提议重复确认修复规格与预判
正常操作日志显示科士达提议在 10:02 和 10:04 连续要求再次确认。计划、扫描参数与数量相同,但仓位依据指纹不同。代码将按实时价格计算的在途占用金额纳入指纹,报价变化会被当作承诺变化。先补回归,再修正这一核验依据。
在途读取新增稳定依据,包含来源类型、指令或提议标识、股票、数量与指令成交进度。指纹采用稳定依据,排序后计算;现价仍用于原占用金额计算与执行终检。新增、撤销、替换、数量、成交进度、现金与持仓变化继续触发重核。旧输入缺少稳定依据时保留原保守比较。旧提议因指纹格式升级可重核一次,不直接迁移旧批准。
验收预判:仅报价变化不重跑研判、不反复要求确认;真实数量或承诺变化必须重新评估。保留原金额去重、候选排序、准入及仓位上限。运行本地与候选镜像禁网回归后,仅重建 155 的四个 PMS 容器。核对运行参数、历史修复账本及七条暂停指令不变。自然用户确认留待实际事件,不代替用户操作。回退恢复上一镜像并使用匹配代码的反向提交,保留计划、提议与账本。
### 10-16 10:50 提议重核修复部署与自然成交判收
PMS 15072f7 已于 10:44:28 在 155 四容器统一生效。18 个专项用例及全部 44 批本地、候选镜像禁网回归通过,包含三项页面守卫。新镜像为 7003b81c79000cb61633d94a6529253a412de9c2cbc5522e296aea71a0e2f337,代码指纹 cf0a57a03a76。现有页面保持,188 未操作。
前后 15 项运行参数和三票数量、成本、毛盈亏逐项相同。七条暂停指令保持 CANCELLED,审计 122 行加 1 条汇总不变。QMT ONLINE、resync_flag=0、对账 diffs=[]。旧提议没有被自动采纳;修复后自然确认效果继续等待实际用户事件。
14 笔修复后的自然卖出已逐笔核验,合计 1,000 股、28,270.78 元。对应汇总镜像已存在,数量、父指令进度及批次毛盈亏没有双记。原成本与逐笔舍入边界另见 PMS 三项差异报告。自然成交防双记已有真实证据,不再列为缺失。
10:45 五分钟检查正常,仍为 11 个完整版本、24 份盘前评析修订,晨版与归档保持。研究十二分钟时延仍缺开盘后的自然新评析。后续安排同一心跳于北京时间 11:15 接续核验;任务 137 和提议重核开关保持启用,不增加模拟观察天数。
## 10-16 11:25 自然成交发现网格卖出越界的修复规格
威胜信息 11:05 与 11:13 各生成 700 股网格卖出。原档位 1,000 股,首笔成交后已恢复剩余 300 股;第二笔仍按 per_lot=700 取量,导致额外卖出 400 股底仓。七笔真实成交合计 1,400 股。代码仅以配置档量和总可卖量封顶,遗漏了档位余额与实际 ADD 持仓上限。
修复将网格卖出数量同时限制在配置档量、当前档位余额、实际 ADD 持仓和可卖量内,再沿用既有整手和最小申报要求。档位穿越、买入条件、档距、价格、资金上限和策略档量不改。未成交与部分成交的档位恢复继续使用原逻辑。历史实际成交保留,不伪造恢复底仓,不反向买入。该策略已由原清场流程于 11:16:01 取消,不自行恢复。
先补四组离线反例:剩余 300 不得按配置卖 700、首笔 700 后仅余 300 的连续状态、可卖和实际网格股限制、未成交及部分成交恢复。预判为正常完整档量行为保持,旧小余额不侵入底仓。完整本地和候选镜像禁网回归通过后仅在 155 部署,保存参数与账本基线,四容器统一重建。回退需匹配源代码与镜像,保留真实成交和台账。
### 10-16 11:35 网格数量修复部署判收
PMS bafecb7 已于 11:31:02 在 155 四容器统一生效,包含此前 15072f7 重核修复。四个新增反例在原实现全部失败。修复后 45 个策略用例、全部 44 批本地及候选镜像禁网回归通过,含三项页面守卫。当前镜像 a33ecb004e285ed7991b1492477e222703d1ec89892e36ee7cb51ee2d555b3c8,Python 指纹 12f782622c4d。
11:31:29 真机读回:15 项参数与部署前一致,三票数量、成本及毛盈亏与成交后的基线一致。威胜信息持仓为 0,当前账期已实现毛盈亏 -252.01 元。七条历史暂停指令、122+1 审计及已取消网格状态保持;没有恢复或制造交易。健康、QMT 与对账正常。原事件造成的 400 股底仓卖出事实保留,数量修复不能撤销已成交结果。
桥 11:30:11 检查正常,晨版和旧归档保持;consumed 68 记录持仓变化后的真实消费,顺序和指纹正确。没有新自然评析或用户确认。原心跳已改为北京时间 13:15 接续。技术验收尚有未决项,不关闭五分钟修订或提议核验,不新增五日观察。
### 10-16 13:25 自然传播样本与未达标边界
四份连续交易时段自然评析已通过全链路核验。13:09 的两份经 13:10:16 完整发布,13:11:09 实际消费;13:12 的两份经 13:15:16 发布,13:17:02 消费。耗时 1 分 54 秒至 4 分 12 秒。24 只候选的消费顺序、指纹和有效参数正确,固定报告内容指纹、晨版与此前完整归档均保持。
六份午休评析在 12:05 和 12:10 发布,直到 13:00:03 才被正常扫描消费。实际耗时约 55 分钟,未达到十二分钟目标,必须单列。当前执行任务有交易时段守卫;不删除守卫、不制造午休交易或伪记消费。此处没有自动将原目标改成仅交易时段适用。非交易时段的时延边界仍未收敛,不能宣告全时段达标。
修复后没有新的自然用户确认,提议重核的实际确认效果仍未判收。13:15 参数、数量、成本、毛盈亏和历史修复审计保持,对账无差异,健康与 QMT 正常。本轮没有业务代码、参数、重启或交易写操作。四份通过的样本不替代剩余验收。原心跳 14:15 接续,不新增五日观察。详细时刻、后续版本采样边界与证据见同名交接 13:25 节。
### 10-16 13:30 用户确认时延验收口径
用户确认:十二分钟目标按连续交易时段核验。午休期间的自然材料单列总等待时长,另核对下午开盘后是否及时被实际消费。保持原交易时段,不为验收生成评析、采纳提议或制造交易。本条取代 13:25 节的“非交易时段时延边界仍未收敛”结论,历史实测读数保留。
据已有实际证据,六份午休材料于 13:00:03 被 consumed 71 消费,即下午开盘后三秒。午休恢复消费要求通过;约 55 分钟总等待时间仍单列。四份连续交易时段材料在 1 分 54 秒至 4 分 12 秒内实际消费,十二分钟样本通过。不更改调度、缓存、准入、仓位或执行时段守卫,也不以页面收到记录代替实际消费。
剩余重点为提议稳定依据修复后的自然确认。只有实际用户操作到达时才核验,不代替用户确认。后续自然修订继续核对版本、顺序与失败守成,不增加额外五日观察。
13:35 补充实测:连续交易时段样本扩展到八份,生成至实际消费为 114.360—393.202 秒,均通过。13:27:30 出现首次修复后的自然确认,持仓上下文变化且旧指纹升级,系统重跑并更新为待再次确认的 600 股提议,没有生成指令。更新内容必须再次确认的分支已见实际证据;无变化直接通过的线上路径仍待自然操作。具体账本与时刻见同名交接 13:35 节。
## 10-16 13:55 提议采纳失败反馈修复规格
用户报告采纳后长时间等待,最后仅短暂提示“新版重新评估未通过”。13:39:02 科士达已由用户正常采纳,生成一条 600 股指令。13:40:00 瑞芯微重核返回拒绝,旧代码丢弃具体原因,待确认卡仍展示上午结论。只读研判缓存显示 REJECT、把握度72,原因为资金净流出及短期走势偏弱。不能将这次拒绝改成通过。页面统一60秒超时也短于既有研判90秒上限,容易先报超时而服务端仍在处理。
修复只补采纳结果的表达、留痕与确认保护。沿用原扫描、合议、数量、研判和规则闸。失败提取原拦截原因,区分交易条件、研判、策略与候选不足。最近一次失败写入提议现有JSON,并采用待确认状态与原内容的条件更新。保留原数量、原批准依据和状态;后续即使仓位回到旧值,也须重新核验这条已有失败结论的提议。失败不写影响自动交易判断的拒绝账本,具体原因由原操作日志保存。
确认框持续显示失败原因,不再只弹短提示。卡片仅增加一行“最近核验未通过”和查看入口,技术来源仍折叠。内容更新后在原确认框展示新数量及研判理由,清空旧选择,要求重新确认。请求等待覆盖有效研判超时与额外取数时间。等待时说明用途并阻止重复点击。断网、超时或服务异常视为结果未明,不自动重发采纳,也不声称已经失败或没有指令。
预判:研判拒绝、规则失败、扫描无候选都能显示原始业务原因;失败留痕不得覆盖并发更新;旧批准不能绕过已记录的失败。新数量必须二次确认,依据未变仍可直接采纳。等待结束或异常必须释放按钮状态,重复点击只能发送一次。运行离线专项、完整禁网测试、前端交互替身和三项页面守卫。候选镜像禁网通过后仅重建155四容器,再核对参数、账本和页面。禁止用真实采纳作为验收手段。
回退采用匹配源码的反向提交与旧镜像重建,保留提议JSON和操作日志。没有新增调度、模型调用路径、交易时段、参数或策略阈值。188不操作。
### 10-16 14:05 采纳反馈修复部署判收
4f6b192通过24个专项、44批本地与候选镜像禁网回归,以及Node交互替身和三页面守卫。13:59:00在155四容器统一生效。参数、账本、指令和提议前后保持,QMT在线、健康正常、对账无差异。镜像、指纹、备份和回退见同名交接14:05节。
科士达13:39用户自然确认成功,依据相同直接通过,唯一600股指令留有计划与检查引用。这一自然分支已验收。瑞芯微13:40真实研判拒绝的原因由既有审计确认,未改判或制造交易。旧失败没有补造为新检查。
浏览器只读核验页面正常、风格保持、无错误。自动审批拒绝代点“采纳”以打开确认框,已改用离线交互验证。新失败提示的真实页面闭环仍待自然事件,不假报完成。原心跳14:30接续,不扩展交易时段或增加模拟观察天数。
### 10-16 14:35 提议撤下的实施补充
用户指出:明确否决的提议继续占着待确认列表不合理。本条取代此前“所有失败均保持待确认”的处理。只调整提议生命周期,不修改研判、准入、仓位和交易时段。
明确的研判 REJECT、策略放弃,或可核验完整计划中的资格失效,关闭旧提议。复用 EXPIRED 终态,在原 JSON 标记 withdrawn 和具体原因,不冒充人工驳回。页面移出待确认,确认框只显示撤下原因及关闭。网络、来源、记录失败和暂时性条件不足继续保留,不能依据中文关键词猜测撤下。
关闭提议与拒绝留痕在同一事务,使用 WAIT_USER 加原 JSON 条件更新,防止覆盖并发采纳。研判与策略拒绝沿用现有拒绝、解锁重问规则,不能撤下后立即原样重提。原数量和原依据留存;只有未来正常扫描重新满足条件才产生新提议。
仅从 rejected 结构提取实际拒绝原因。在途名额等非阻断说明不进入失败提示。现存已保存的明确拒绝由原扫描入口确定性收尾,不调用模型,不增加调度。旧记录未保存的重问基线保持缺失,不拿当前行情补造历史。
预判:明确拒绝从待确认移除且零指令;不可用保留;已有成交和指令不动。覆盖并发采纳、重复收尾、事务失败回滚、背景说明过滤、规则临时不足和已有拒绝的正常扫描收尾。离线及候选镜像禁网回归后仅部署155,写前备份,读回核对状态和账务。回退代码时保留撤下历史,不自动恢复失效提议。
### 10-16 14:45 提议撤下与本轮判收
60de23e于14:39:51在155四容器生效,30专项和44批本地及镜像禁网回归通过。14:40:01正常扫描撤下瑞芯微旧提议,保留14:20原拒绝与100股原建议。唯一拒绝账本6858,无该票指令;14:45重复读回无重复收尾。不可用保留、并发保护和事务回滚由离线回归覆盖。前后参数、修复账务及实际指令进度一致,仅既有WAIT时间推进一分钟。
浏览器待确认0条,候选与风格正常、错误日志为空。没有代替用户采纳。原失败持续提示已由用户14:20自然操作验证;新撤下响应确认框仅做离线交互,正常扫描的真实撤下与页面结果已在线核验。具体备份、镜像、参数、局限和回退见交接14:45节。
14:42复查共有18完整版本、39次自然评析变化。新增14:09材料至14:13实际消费227.793秒,连续时段累计9份通过;午休六份恢复消费仍为开盘后三秒。晨版及归档、父子链、冻结来源、排名与消费指纹保持。10-14旧原件缺失仍单列为失败,当前文件哈希与13:25一致,不冒充恢复。本轮启用和自然事件技术验收闭环后暂停同一心跳,业务五分钟调度及提议重核继续;不增加五日观察。
## 2026-10-19:外部数据停更及失败状态修复
北京时间 09:40 只读核验发现,PMS 对两交易日前计划的拦截正确。
收盘行情已到 10-16,外部个股资金流和资金热度仍为 10-15。
资金流源表 `gp_moneyflow_ths` 最新日 5214 行。
热度源表 `stock_fund_heat_scores` 最新日 9118 行。
基座周六 06:20、06:35 正常同步,却只能取得旧资金流。
周六传导仍锚定 10-15,周一按既定安排复用周六产出。
桥周一 07:10 重建旧日因子并复用旧计划,平台仍收到成功回调。
盘中修订持续返回 `no_morning_today`,也被误计成功。
桥修复 `ef873bb` 已提交、推送并在 155 拉取。
自动日更写入前核对传导、收盘行情及热度的日期。
基准是北京时间当前日期之前的最近交易日。
来源失败不再猜今天,部分因子或冻结失败不继续计划及入池。
缺当日完整晨版的修订返回失败,窗口外仍正常跳过。
显式指定日期的历史维护入口保留。
不改交易时段、排序、档位、仓位及 PMS 的一交易日时效上限。
没有补造当日晨版,没有向旧版本混入新材料。
本地 12 个专项用例及版本契约、判决、候选卡测试通过。
本地调度及区制测试因缺依赖未完成,不算通过。
候选镜像 `--network none` 的八套测试全部通过。
其中专项 12 例、调度 13 例、版本契约 17 例。
155 桥于北京时间 09:50:54 重建。
镜像 `sha256:922fc400e06dbe128ad9dc2e822a0e0b949328677f70fa0c85dc2a1c297db58d`。
第一次部署命中空闲守卫,待既有修订完成才执行部署。
写前完整备份 `~/akg_bridge_logs/readiness-before-plan-20261019.tar`,约 598 MiB。
SHA256 为 `c1b90597f141d7acedc72d84f80e5269f17a40f7a8f9d7d9dd88cece52c3d309`。
全部计划 JSON、旧归档和晨版指针的部署前后哈希一致。
回退标签 `akg-factor-bridge-rollback:before-readiness-20261019`。
绑定挂载仍在,回退需开发机反向提交后远端拉取并重建,保留计划与账本。
线上只读输入检查正确返回 1,指出传导与热度缺少 10-16。
桥保持 transmission、CARD_SORT_BY_QUALITY=False。
155 PMS 实读 ws、OPEN propose_only、提议重核 True、过期上限 1。
上游排序 False、质地排序 True、强传导和 TOP_N=50 保持。
本轮未修改 PMS 代码、参数或容器,188 未操作。
外部两路采集仍待恢复,已询问用户其项目或调度入口。
当前不能宣称候选恢复。来源恢复后再补基座同步及扫描,核对后发布完整版本。
不得修改旧榜日期、放宽 PMS 时效,或用验收制造交易。
不新增五日模拟观察,不用心跳替代业务调度。
手工只读检查如下。当前预期退出 1,来源全部恢复后才应退出 0。
```bash
# 155 桥机 · ~/project/akg-factor-bridge
cd ~/project/akg-factor-bridge
docker compose exec -T akg-factor-bridge python -m build_readiness
```
部署、八套测试和只读核验日志分别为 `~/akg_bridge_logs/readiness-deploy-20261019.log`、
`readiness-tests-20261019.log`、`readiness-live-20261019.txt`。
规则登记桥决定台账 074。