2026-10-15 10:27:12 +08:00
|
|
|
|
# 每日选股计划完善交接
|
|
|
|
|
|
|
2026-10-15 11:35:16 +08:00
|
|
|
|
2026-10-15,北京时间。状态先行:基座、155 桥与 155 模拟 PMS 均已部署并重建相关容器。
|
|
|
|
|
|
用户批准补齐旧排序配置,桥保持 transmission 与 CARD_SORT_BY_QUALITY=0;11:28:51 完成最终重建。
|
2026-10-15 12:09:50 +08:00
|
|
|
|
新版发布代码已生效。已安排 10-16 07:25 核验首个完整晨版;XXL 任务 137 已创建且停止,判收后启用五分钟修订及 PMS 提议重核。用户已取消额外五日模拟观察。PMS 三项差异已定位为成交双记,防双记代码于 12:02:54 部署;历史账本尚未修复,详细证据见末节。
|
2026-10-15 10:27:12 +08:00
|
|
|
|
正式契约与实现原理见同目录《每日选股计划完善方案与开发规格_2026-10-15.md》。
|
|
|
|
|
|
|
|
|
|
|
|
## 用户已决定的范围
|
|
|
|
|
|
|
|
|
|
|
|
允许 astock-kg、akg-factor-bridge、tradingSystem 联动。保留准入门槛及真实运行参数;
|
|
|
|
|
|
盘中评析变化发布完整修订;采纳前核验,只有排名变化不撤销。基座只提供研究,桥负责版本与计划,
|
2026-10-15 10:49:22 +08:00
|
|
|
|
PMS 负责组合和执行。择时能力不扩展,bionic_trader 只同步文档。用户本次明确批准部署和容器重启;
|
|
|
|
|
|
该批准不改变禁止机器重启和禁止自动切换排序、档位及仓位参数的边界。
|
2026-10-15 10:27:12 +08:00
|
|
|
|
|
|
|
|
|
|
## 工作区与原有修改
|
|
|
|
|
|
|
|
|
|
|
|
| 仓库 | 本轮开始的本地基线 | 本轮范围 |
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
| astock-kg | codex/review-asof-export-20261012,a6d8c7c | 报告对象归档、固定引用接口、计划代理和今日页、离线测试、规格与交接入口 |
|
|
|
|
|
|
| akg-factor-bridge | main,ca46a95 | 确定排序、输入录制与重放、不可变版本、修订任务、只读查询缓存、复盘及契约测试 |
|
|
|
|
|
|
| tradingSystem | main,afec4f7 | 消费记录、顺序与核验、命令和指令来源、研究页面、回归及台账 |
|
|
|
|
|
|
| bionic_trader | main,ec533d9 | 仅方案和交接同名副本 |
|
|
|
|
|
|
|
|
|
|
|
|
PMS 初始已有 docs/复盘决定台账.md 未提交修改,以及方案讨论稿、probe_both_offline.py、probe_crash_live.py 三个未跟踪文件。
|
|
|
|
|
|
本轮仅在该台账末尾追加 018,不覆盖原内容。bionic 已见 .DS_Store、.claude/.DS_Store 修改和第三方接入指引未跟踪文件,均未触碰。
|
2026-10-15 10:49:22 +08:00
|
|
|
|
以上为本轮开始的基线,不能当作本轮部署版本。实际提交见末节;提交已逐文件选取,未带入其他会话文件。
|
2026-10-15 10:27:12 +08:00
|
|
|
|
|
|
|
|
|
|
## 四批实际交付
|
|
|
|
|
|
|
|
|
|
|
|
1. 排序:桥证据次级键与股票代码稳定收尾;无主题不限额桶;PMS 消费顺序进入自主扫描,信号插队留原因;命令保持原分配规则。
|
|
|
|
|
|
2. 版本:桥新增 plan_inputs.py、plan_versions.py、plan_refresh.py、plan_health.py,来源与配置冻结、文件锁、原子入口、固定晨版、父链、失败待核验、版本缓存。旧实时覆盖入口已删除,历史不现算。
|
|
|
|
|
|
3. PMS:新增 plan_revision.py、plan_recheck.py;received/consumed/rechecked 三类 JSON 记录;计划到提议及执行的来源关联;人工确认版本令牌及状态/原内容条件更新;停止按行数清理。PMS_PLAN_VERSION_RECHECK 默认 False,尚未启用。
|
|
|
|
|
|
4. 研究:基座 archive.py 按内容归档并提供 ref 查询;桥完整透传已有研究字段,保存变更;基座今日页和 PMS 候选/提议/持仓页显示材料时间、报告时间、论点与未知项;固定报告不可用时明确缺失。
|
|
|
|
|
|
|
|
|
|
|
|
新增任务五处登记已写入规格书:发布存储、XXL 独立步骤、run.py 手工入口、plan_health 日检、桥台账 064/PMS 台账 018 与本交接。
|
|
|
|
|
|
实际 XXL 平台任务没有创建;requirements 新增 chinesecalendar>=1.11,部署镜像须包含它。
|
|
|
|
|
|
|
|
|
|
|
|
## 预判与离线实测
|
|
|
|
|
|
|
|
|
|
|
|
所有命令均在本地执行;PMS 及桥测试在空临时工作目录、清理业务环境变量并禁止所有网络连接的护栏内运行。
|
|
|
|
|
|
本地 Python 使用已存在的测试运行时,不安装生产依赖、不连接任何库或模型。
|
|
|
|
|
|
|
|
|
|
|
|
| 预判 | 实测证据 |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| 基座引用确定、内容或材料变化产生新引用;代理保持指定版本及研究字段 | 全套 190 项 unittest,OK,退出码 0;含 6 项新增归档/代理用例 |
|
|
|
|
|
|
| 好转差同步改变判决、质地带和排序,晨版不变;查询不读取新评析 | 桥 test_daily_plan_contracts 32 个用例/断言组,OK,退出码 0,含真实 collect 的合成来源修订测试 |
|
|
|
|
|
|
| 重复发布幂等、并发只有一版、断电后保留完整旧版、孤立文件不可查、晨版指针可恢复 | 同桥版本回归;健康检查能发现超过十二分钟无检查及入口损坏 |
|
|
|
|
|
|
| 历史不得回源、当前参数不改旧消费、无主题和同证据强度确定 | 桥历史/缓存/排序断言组通过;缺档明确排除 |
|
|
|
|
|
|
| 单一名额优先给消费顺序靠前者;信号优先有原因 | PMS 全套隔离入口 ALL SUITES PASS;包含新第 38 批 15 项 OK |
|
|
|
|
|
|
| 仅排名变化保留,材料变化重评数量,旧确认拒绝,状态条件更新防重复采纳 | 第 38 批覆盖资格失效、版本不可用、缩量 300→100、旧令牌、SQLite 两线程竞争仅一次成功 |
|
|
|
|
|
|
| 120 交易日与引用保留不能被行数清理破坏 | 清理函数已变为不删除;15 项中有不允许触发 DELETE 的回归;真实留存天数未判收 |
|
|
|
|
|
|
| 页面可读、未知不伪造、旧确认返回后要求重新确认 | 三个 PMS 页面守卫退出码 0;基座 JSX 构建成功;本地浏览器显示中文研究字段及再次确认提示,两端无 JS error |
|
|
|
|
|
|
|
|
|
|
|
|
PMS 最终全套回归已包含第 38 批 15 项;另覆盖名次裁剪复核、历史清理、在途承诺变化和旧研判缓存失效。
|
|
|
|
|
|
页面改动也通过全部三个页面守卫。桥日历的 2026 年日期另以现有 chinesecalendar 1.11.0 离线验证一项,OK。
|
|
|
|
|
|
浏览器服务只监听 127.0.0.1,所有接口为合成数据,任何 POST 都返回过期确认提示;它不能连接或产生真实交易。
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 本地 · astock-kg 根;实测使用 Codex 附带 Python 运行时
|
|
|
|
|
|
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=backend /Users/baobao/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/bin/python3 -m unittest discover -s backend/tests -t backend
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 本地 · akg-factor-bridge 根;测试入口复用 PMS 的配置隔离、断网护栏
|
|
|
|
|
|
/Users/baobao/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/bin/python3 ../tradingSystem/scripts/unit_test_guard.py test_daily_plan_contracts.py
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 本地 · tradingSystem 根;既有离线测试虚拟环境
|
|
|
|
|
|
/private/tmp/pms-codex-20261012-venv/bin/python scripts/run_tests.py
|
|
|
|
|
|
/private/tmp/pms-codex-20261012-venv/bin/python scripts/unit_test_guard.py scripts/test_batch38_units.py
|
|
|
|
|
|
/private/tmp/pms-codex-20261012-venv/bin/python scripts/unit_test_guard.py scripts/test_page_copy_guard.py
|
|
|
|
|
|
/private/tmp/pms-codex-20261012-venv/bin/python scripts/unit_test_guard.py scripts/test_page_enum_guard.py
|
|
|
|
|
|
/private/tmp/pms-codex-20261012-venv/bin/python scripts/unit_test_guard.py scripts/test_page_wiring_guard.py
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
本次原始输出位于本机 /private/tmp/base-final.log、bridge-contracts-final.log、pms-final.log、pms38-final.log;
|
|
|
|
|
|
临时目录可被系统清理,不把它当长期验收库。需要复核时用上述离线入口重跑。
|
|
|
|
|
|
页面截图在本机 /private/tmp/daily-plan-ui/,内容均为假数据,不能充作生产读数。
|
|
|
|
|
|
|
|
|
|
|
|
## 尚未完成的生产验收
|
|
|
|
|
|
|
2026-10-15 10:49:22 +08:00
|
|
|
|
本地实现阶段没有生产操作。下列原上线步骤中的核对、提交和首批部署已完成,状态以末节为准:
|
2026-10-15 10:27:12 +08:00
|
|
|
|
|
|
|
|
|
|
1. 只读核对真实运行参数、部署 Git 版本、容器和模拟/真实实例身份;明确当前排序轴、档位白名单及仓位参数。
|
|
|
|
|
|
2. 整理仅包含本轮文件的提交,按仓库中文提交约定处理文档副本;容器操作前取得用户同意,避开北京时间 06:10 与 07:10。
|
|
|
|
|
|
3. 先部署兼容读取及留痕,再部署桥发布并核验晨版;最后在模拟实例启用五分钟修订与 PMS_PLAN_VERSION_RECHECK。
|
|
|
|
|
|
4. 按规格每天核对版本一致性、源到发布到消费的时刻、顺序、核验和重复指令。完成五个连续交易日后才宣布模拟判收。
|
|
|
|
|
|
|
|
|
|
|
|
真实时延、平台调度互斥、进程重启恢复、数据量下磁盘容量及全部生产接口形状仍待真机验证。
|
|
|
|
|
|
本地恢复测试不能替代真实机器断电/重启证据;不得以此请求或执行机器重启。
|
|
|
|
|
|
回退保留全部版本及账本,停修订并提供最后有效版本;不恢复历史现算或局部覆盖。
|
|
|
|
|
|
|
|
|
|
|
|
此前财报历史导出的来源修订不完整限制仍有效,本轮没有解除旧实验的研究资格限制或投资验证暂停记录。
|
2026-10-15 10:49:22 +08:00
|
|
|
|
|
2026-10-15 11:35:16 +08:00
|
|
|
|
## 2026-10-15 首阶段部署记录(桥切换前,后续以末节为准)
|
2026-10-15 10:49:22 +08:00
|
|
|
|
|
|
|
|
|
|
时间均为北京时间。用户本轮指令为“继续,完成部署和重启”。未重启机器,未操作数据库容器,未执行交易、提议采纳或账本修复命令。
|
|
|
|
|
|
|
|
|
|
|
|
| 对象 | 实际结果 |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| 178 基座,`~/project/astock-kg` | 功能提交 `148745a`,时间显示补正 `4a603d5`,均已推送 master 并快进部署。10:27:28 重建 API 与四组 worker,各一副本;10:33:02 前端补正后完成再次构建与重建。beat 及数据服务未动。 |
|
|
|
|
|
|
| 155 模拟 PMS,`/home/factor/project/tradingSystem` | 功能提交 `65d2940`、时间显示补正 `6a5ae12`,10:42:37 四服务完成重建。镜像 `sha256:ff022b05645d77bc7d204f3344036f41ad585de2e07d1ed5e2cd02e67c0abaf7`;镜像内与运行目录 Python 指纹均为 `eb4b4cbbff7f`。 |
|
|
|
|
|
|
| 155 桥,`/home/factor/project/akg-factor-bridge` | 正式运行仍为 `3d3f317`;待部署 `20431fe`,含功能 `5eac6f6` 及远程历史台账合并。候选镜像 `akg-factor-bridge-candidate:20261015` 已就绪,32 项断网契约测试 OK。未拉正式目录、未重建运行容器。 |
|
|
|
|
|
|
| 188 真实 PMS | 只读核对为 `51bd6dc`,只运行 web 与 ws;未更新、未重启。先完成模拟观察。 |
|
|
|
|
|
|
| bionic_trader | 仅同步方案及交接副本;未部署或重启服务。 |
|
|
|
|
|
|
|
|
|
|
|
|
**运行态判收为真机见过的部分:**
|
|
|
|
|
|
|
|
|
|
|
|
- 基座 API 与前端 HTTP 200,四个 worker 均回应 ping,六个重建服务重启计数为零。日检 17 项通过、0 错误、2 警告;警告为 10 月国庆休市日缺档。行情与传导日均为 10-14,投影为 10-15。
|
|
|
|
|
|
- 基座真实浏览器页面显示旧计划“追溯不完整”,缺失研究字段为未知;旧无时区时间改为“时区未记录”,不再误标北京时间。浏览器未见 JS 错误。
|
|
|
|
|
|
- PMS 在服务器临时目录和新镜像内分别运行配置隔离、禁止联网的完整回归;新镜像 42 批 `ALL SUITES PASS`,新增 15 例 OK。页面三道守卫通过。四服务健康、DB 连通、交易日历正常;QMT ONLINE,水位继续推进,待入账与在途出口委托均为零。
|
|
|
|
|
|
- PMS 自动调度已落 received 记录 54(10:42:50)和 consumed 记录 55(10:43:04)。消费记录保存 13 只实际顺序、过滤条件、参数及消费指纹;排序为 quality_bucket,rank_by_upstream=False。旧桥没有 decision,记录保留空值,未伪造版本。
|
|
|
|
|
|
- 部署前后既有参数一致:下发 ws、自主 full、新建仓 propose_only;仅强传导、TOP_N=50、上下游主题限额 0、盘中信号优先 True;总规模 200 万、总仓上限 0.70、单股上限 0.08、最多 40 只、行业最多 4 只/0.40。PMS_PLAN_VERSION_RECHECK=False。
|
|
|
|
|
|
|
|
|
|
|
|
**桥暂缓的具体原因。** 正式代码还没有 PLAN_RANK_AXIS 与 CARD_SORT_BY_QUALITY;容器环境和 .env 都没有这两项。旧行为是传导主轴加档内质地加减分。main 中此前未上线的提交默认改为 quality 与卡内质地排序。直接更新会违背本轮“不得自动修改线上排序开关”。已向用户请求确认仅补 `PLAN_RANK_AXIS=transmission` 与 `CARD_SORT_BY_QUALITY=0` 保持当前行为;未收到答复前不修改配置、不切桥容器。已有 `CARD_REQUIRE_STARTED=0` 和质地降档门保持。
|
|
|
|
|
|
|
|
|
|
|
|
**未判收。** 桥完整晨版、固定历史版本、真实修订与十二分钟传播、提议重新核验、并发采纳及连续五个交易日观察仍未判收。XXL 五分钟任务尚未建立,新核验仍关闭。不能在盘中补造 07:10 晨版;桥部署后等待首个真实晨版再启用后续阶段。
|
|
|
|
|
|
|
|
|
|
|
|
**既有异常。** PMS 部署前监视已出现 8—9 月出口委托缺父指令的历史记录。部署后轻量对账还报告 3 项差异,原因未在本轮定位;未改账、未清理。这些不能写成“全系统全绿”。
|
|
|
|
|
|
|
|
|
|
|
|
**保留与回退。** 基座服务器原有临时数据删改和未跟踪文件保留;155 的 deploy.sh 可执行位和未跟踪文件保留。PMS 原有台账 017、讨论稿及两个探针未随本轮提交。基座旧前端镜像为 `astock-kg-frontend:rollback-20261015-3207417`,PMS 旧镜像为 `pms:rollback-20261015-afec4f7`。155 源码挂载,回退必须匹配源码与镜像;任何回退均保留新版本及消费账本。
|
|
|
|
|
|
|
|
|
|
|
|
**证据位置。** 基座宿主 `~/akg_logs/daily-plan-deploy-20261015.log`、`daily-plan-postdeploy-check-20261015.log`;155 宿主 `~/pms_logs/daily-plan-deploy-20261015.log`、`daily-plan-postdeploy-watch-20261015.log`。镜像测试临时证据分别在 `/tmp/pms-dailyplan-20261015.SX6G8I/` 与 `/tmp/bridge-dailyplan-20261015.v6U7Wo/`,临时目录不能代替本交接中的实测摘要。
|
|
|
|
|
|
|
|
|
|
|
|
部署期间 155 SSH 曾返回 Exceeded MaxStartups,10:33 恢复并复用同一连接,未修改 SSH 设置。台账临时还原命令曾被自动审批拒绝;之后采用先完整提交再合并远程条目的方式解决,没有丢弃内容。
|
2026-10-15 11:35:16 +08:00
|
|
|
|
|
|
|
|
|
|
## 2026-10-15 桥部署完成及最终核验
|
|
|
|
|
|
|
|
|
|
|
|
时间均为北京时间。用户明确答复“补齐旧排序配置,保持当前行为”。已在 155 桥 .env 补入
|
|
|
|
|
|
`PLAN_RANK_AXIS=transmission` 与 `CARD_SORT_BY_QUALITY=0`。原配置备份保存在
|
|
|
|
|
|
`~/akg_bridge_logs/bridge.env.before-20261015`,未将配置或凭据提交到仓库。
|
|
|
|
|
|
|
|
|
|
|
|
桥 11:21:06 首次重建后,继续修复旧格式计划直接读取的兼容问题,提交为 `fe443f6`。
|
|
|
|
|
|
原底层时间守卫还会因代码哈希变化拒绝旧计划;HTTP 缓存入口原本已正常返回 200,不能把它记成线上接口中断。
|
|
|
|
|
|
修复后直接读取也保留有效期内旧计划,仍保留原代码版本、时间约束和追溯缺失标记,不回源、不伪造新决策版本。
|
|
|
|
|
|
本地断网契约测试 33 个用例/断言组通过。仅含已提交源码的候选镜像内同样 33 组通过,才切换容器。
|
|
|
|
|
|
首次镜像测试因护栏挂载层级错误在入口退出,未计为通过;修正挂载后重跑成功。
|
|
|
|
|
|
|
|
|
|
|
|
最终 `akg_factor_bridge` 于 **11:28:51** 启动,运行镜像为
|
|
|
|
|
|
`sha256:107929c3366d271eb762aee8687dac56dbabcae134d7856770dc6fcd2af7639b`。
|
|
|
|
|
|
可读标签为 `akg-factor-bridge-candidate:fe443f6`,旧镜像保留为 `akg-factor-bridge:rollback-20261015-3d3f317`。
|
|
|
|
|
|
11:31 核对桥及 PMS 四服务全部 running,重启计数均为零。基座六个已重建服务也持续运行。
|
|
|
|
|
|
|
|
|
|
|
|
| 验收对象 | 真机读数 |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| 桥有效配置 | PLAN_RANK_AXIS=transmission,CARD_SORT_BY_QUALITY=False,CARD_REQUIRE_STARTED=False,CARD_COMPANY_QUALITY_GATE=True。 |
|
|
|
|
|
|
| 最新与日期查询 | `/plan` 与数据日 2026-10-14 查询均 200;两次主榜前 50 名查询分别约 1.47 秒、0.84 秒,前五名相同。缺失历史与非法版本均 404,不重装配。 |
|
|
|
|
|
|
| 旧计划保留 | 部署前后及查询后 `plan_2026-10-14.json` SHA256 均为 `f849119c78b0f3ff780c69fa111a315d4c56a70ff3651e9347eabf3c2cd457cb`。全量主榜 551、观察 595,decision 为空。 |
|
|
|
|
|
|
| 修订手工入口 | `python run.py plan-refresh` 返回 no_morning,未补造晨版,旧计划文件未变。健康提示“旧快照,追溯不完整”,为阶段内预期提示。 |
|
|
|
|
|
|
| PMS 实际读取 | 11:30 以真实参数只读拉取 300 条主榜、100 条观察档,日龄检查通过。没有触发扫描、采纳或执行。 |
|
|
|
|
|
|
| 自动留痕 | 正常调度于 11:23:02 写 received 56 与 consumed 57。与切换前 consumed 55 比较,13 只完整入选顺序、参数、rank_mode 全同;过滤记录变化另存新消费指纹。旧记录未改。 |
|
|
|
|
|
|
| 最终顺序 | consumed 57 前五为 002979.SZ、300274.SZ、002518.SZ、688147.SH、601138.SH;消费指纹 `227b078ec947375b4f9a4d1684aa8bbc49117d7ac06aec69a8e442f9dfa9ebd8`。 |
|
|
|
|
|
|
| PMS 控制与健康 | ws、propose_only、信号优先 True、总规模 200 万、总仓 0.70、单股 0.08 保持;PMS_PLAN_VERSION_RECHECK=False。/health 为 200、db_ok=True、calendar_degraded=False。 |
|
|
|
|
|
|
| 基座浏览器 | 桥切换后今日页正常显示旧计划、追溯不完整、截止时刻未知和旧时间未记录时区;浏览器错误数 0。 |
|
|
|
|
|
|
|
|
|
|
|
|
本阶段完成的是部署、兼容读取、消费留痕和现有行为核对。既有 07:10 晨间入口下次运行才形成首个完整晨版,
|
|
|
|
|
|
预期最早为 10-16;必须实际核验后,再配置 XXL 五分钟任务并在模拟仓开启新版核验。
|
|
|
|
|
|
本轮未新增宿主 cron,也未建立自动检查或自动启用任务。XXL 平台任务尚未创建,后续需从现有平台入口接续。
|
|
|
|
|
|
十二分钟传播、新版提议重核及五个连续交易日观察仍未判收。188 真实仓和择时服务未部署、未重启。
|
|
|
|
|
|
前节记载的 PMS 历史异常与轻量对账三项差异继续待查,本轮没有据此改账或清理。
|
|
|
|
|
|
|
|
|
|
|
|
桥日志在宿主 `~/akg_bridge_logs/daily-plan-deploy-20261015.log`、
|
|
|
|
|
|
`daily-plan-compat-tests-20261015.log`、`daily-plan-postdeploy-check-20261015.log`。
|
|
|
|
|
|
本地补充回归为 `/private/tmp/bridge-deploy-compat-20261015.log`。PMS 最终读取追加到原 postdeploy-watch 日志。
|
|
|
|
|
|
此前连接问题出现在开发机到 155:2280,尝试从 178 到 155 也遇到相同限流;已恢复,之后部署持续使用开发机到 155 的 SSH 连接。
|
2026-10-15 12:09:50 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 10-15 12:05 接续决定、差异根因及修复部署
|
|
|
|
|
|
|
|
|
|
|
|
用户最新要求:先排查 PMS 三项对账差异,安排下个交易日核验首个完整晨版,通过后启用五分钟自动修订与提议重核。
|
|
|
|
|
|
当前实例本身就是模拟仓,不再增加五个交易日观察。本条覆盖前文、规格书与台账 064 的五日上线等待要求;
|
|
|
|
|
|
版本一致性、顺序、幂等、故障恢复和十二分钟传播的技术验收继续保留,五/十/二十日策略复盘口径不变。
|
|
|
|
|
|
|
|
|
|
|
|
### 三项差异
|
|
|
|
|
|
|
|
|
|
|
|
| 股票 | PMS / QMT 数量 | 核对结果 |
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
| 002050.SZ | 800 / 700 | 同一委托重复买入 100。WS 为 73+27 股,汇总表又以 31.560 记 100;重复批次 1361。 |
|
|
|
|
|
|
| 002979.SZ | 0 / 1900 | 四个委托的 1300+500+100+100 股被 WS 与汇总各扣一遍,账本下限截断为零。 |
|
|
|
|
|
|
| 688100.SH | 2400 / 1400 | 700 买、400 卖、700 买被双记,净多 1000;重复部分还被误认外部 BASE。 |
|
|
|
|
|
|
|
|
|
|
|
|
八个委托的 instruction_id/order_id、broker_order_id/qmt_order_id 均逐笔相同,WS 全部 processed=1,
|
|
|
|
|
|
汇总全部已在 replay cursor.seen。原因是 ledger_service.replay_fills 的“汇总只兜外部成交”停留在注释,实际没有归属排除。
|
|
|
|
|
|
差异发生于本次计划部署前。另有 ws 与 trading_position 表的两个代码覆盖差异(562590.SH、688825.SH),
|
|
|
|
|
|
属于事实源分歧提示,与上面三项账本数量差异分列;本次仍按现行 ws_first 规则。
|
|
|
|
|
|
|
|
|
|
|
|
修复 e9afc7a 已推送并在 155 拉取。按出口身份分流,已归属 ws 的汇总只留跳过记录和 seen,等待逐笔;
|
|
|
|
|
|
身份读取失败或矛盾不落账不记 seen。无归属的外部人工成交保持原流程。新增 12 例,开发机隔离全量 43 批、
|
|
|
|
|
|
155 候选镜像 --network none 全量 43 批均通过。真机只读分类覆盖八笔实际委托,全部正确命中。
|
|
|
|
|
|
|
|
|
|
|
|
12:02:54 北京时间重建 pms-web、pms-worker、pms-beat、pms-ws,镜像为
|
|
|
|
|
|
`sha256:c17af17aeb09d151bbe932395b879add1ed336b16739703f9acc594bee30b3f1`,标签 `pms:replay-fix-e9afc7a`,
|
|
|
|
|
|
镜像与运行工作树 Python 指纹同为 `cc988cd762bf`。回退标签 `pms:rollback-before-replay-fix-20261015`。
|
|
|
|
|
|
12:04:59 /health 正常,db_ok=True、calendar_degraded=False,QMT ONLINE,seq/acked_seq 都为 1226149,
|
|
|
|
|
|
待入账与在途出口委托均为 0。ws、propose_only、信号优先 True、200 万、0.70、0.08 及完整计划筛选参数未变,
|
|
|
|
|
|
PMS_PLAN_VERSION_RECHECK 仍 False。午休正常返回 not_in_session;修复后自然成交回放尚待真实事件判收。
|
|
|
|
|
|
|
|
|
|
|
|
历史账本没有直接调平。日终 RECON 调数量不能还原被污染的成本、已实现盈亏和指令执行进度,不能声称账已修好。
|
|
|
|
|
|
需根据逐笔与可用历史批次快照另做可逆修复设计;证据不足部分显式保留不确定性,不虚构准确历史。
|
|
|
|
|
|
详细排查与修复规格在 tradingSystem 的 `docs/PMS三项对账差异排查_2026-10-15.md`,台账 019。
|
|
|
|
|
|
原始证据位于 155 `~/pms_logs/reconciliation-evidence-20261015-before-fix-v2.json`(340982 字节,
|
|
|
|
|
|
SHA256 `8e0badf4d771fbf8a3227250c6cc2c2bf3c8234dda2fc33a31f0ab00920f5501`)。首次导出的空文件是失败初稿,v2 才有效。
|
|
|
|
|
|
部署、候选镜像测试、判收分别见 `~/pms_logs/replay-fix-deploy-20261015.log`、
|
|
|
|
|
|
`replay-fix-tests-20261015.log`、`replay-fix-postdeploy-20261015.log`。服务器原有 deploy.sh 修改与未跟踪文件未覆盖。
|
|
|
|
|
|
|
|
|
|
|
|
### 已建立的接续入口
|
|
|
|
|
|
|
|
|
|
|
|
- Codex 心跳 `automation-2`,名称“每日计划首个晨版核验与启用”,ACTIVE,按北京时间每天 07:25。
|
|
|
|
|
|
首次预期 2026-10-16,155 日历确认该日为交易日且未降级。不是业务修订调度,不替代 XXL。
|
|
|
|
|
|
完成启用与必要技术验收后暂停;等待期间只报告实质变化,不能加回五日观察条件。
|
|
|
|
|
|
- XXL 平台 `http://192.168.16.165:8080/xxl-job-admin`,通用执行器,任务 **137“每日选股计划五分钟修订”**。
|
|
|
|
|
|
已复制既有 08:45 区制任务的通用 HTTP GLUE(Python3) 脚本并只改入口步骤为 plan-refresh;
|
|
|
|
|
|
A股交易日模式、07:20—15:10、间隔 300 秒,回调开启。已有鉴权值沿用,不写入文档。
|
|
|
|
|
|
当前 **已停止**,没有执行一次、没有提前启用;以后找到 137 启用即可,不重复创建。
|
|
|
|
|
|
- 原 07:10“知识图谱每日股票池生成”与 08:45“知识图谱每日股票池重检索”均保持启用,未改配置。
|
|
|
|
|
|
平台记录 10-15 07:10 构建成功,耗时 1 分 28 秒;08:45 成功,耗时 3 秒。
|
|
|
|
|
|
|
|
|
|
|
|
07:25 首版验收要逐项核对:实际行情日与今日 cutoff、schema/decision、morning 指针、冻结输入及有效配置、
|
|
|
|
|
|
全量名次、最新/日期/固定版本查询一致、旧版本不变、缺档不重构。通过后启用任务 137,核对下一次触发与回调结果,
|
|
|
|
|
|
随后仅用 ParamStore.set_param 打开 155 的 PMS_PLAN_VERSION_RECHECK。保持其余运行参数。
|
|
|
|
|
|
消费必须来自正常 received/consumed 记录,预览读取不充作实际消费。自然新评析才能测实际传播时延;
|
|
|
|
|
|
不得为验收采纳提议或制造交易。若该时点还没有消费或自然修订证据,调整同一心跳后续核验时间继续。
|
|
|
|
|
|
当前历史账本差异不能被记录为已解决,但不以额外模拟天数代替具体技术验收。
|