diff --git a/docs/execution-price-account-audit-20260911.md b/docs/execution-price-account-audit-20260911.md new file mode 100644 index 0000000..dc0a8c9 --- /dev/null +++ b/docs/execution-price-account-audit-20260911.md @@ -0,0 +1,71 @@ +# 执行价风控与共享信号账户隔离验收 + +## 结论 + +本次修复已通过测试并发布 177。只证明一元股请求阶段价格修复、同一共享信号的账户隔离和既有真实样本结果不变;完整生产闭环尚未完成。next-open 全天容量、动态滑点的日内可见性及逐成交腿风控仍是未关闭项,不能称为全部成交无未来信息。 + +## 修复 + +- `risk_control.rs` 的 Buy 一元股规则改用本次 `check_price`,不再读取日线 `is_one_yuan` 或当天更早的 `day_open`。无效价格拒绝,其他缺失风险事实仍拒绝;显式 Selection 规则保留。 +- Trading 共用 `risk.rs` 的 Paper/Live 订单前检查使用新鲜 `last_price`,不再被日线标记或开盘价覆盖。选股阶段的开关和日线标记单独处理。 +- 缺执行价格继续输出具体 `missing_execution_price field=open`,保留 `historical_price_fallback=false`;停牌等权威状态仍优先,不因新通用校验丢失根因。 +- 没有修改共享信号内容、模型、账号权限、运行配置、Source Lake、研究 checkpoint 或既有回测数据。 + +## 账户隔离组合 + +隔离共享核心测试使用同一份经过原生校验的 `fidc.signal-book/v2`,信号只表达保留 50% 持仓。当前价 10、止损 10%、止盈 20%;每个账户独立计算实际订单。 + +| 原数量 | 买入价 | 买入费用总额 | 预期剩余 | 结果 | +| ---: | ---: | ---: | ---: | --- | +| 1,000 | 8.00 | 0 | 0 | 止盈优先于半仓目标 | +| 1,000 | 10.00 | 0 | 500 | 按本账户数量减半 | +| 3,000 | 10.00 | 0 | 1,500 | 不共用其他账户数量 | +| 1,000 | 12.00 | 0 | 0 | 止损 | +| 1,000 | 11.11 | 0 | 500 | 尚未跨过止损阈值 | +| 1,000 | 11.11 | 2.00 | 0 | 含费用成本跨过止损阈值 | + +六种账户卖出后,当天再消费同一买入目标均不得买回;独立未卖出账户可正常买入。同一信号版本不变,策略规划不预先修改持仓。这些是隔离合成账户测试,不是券商委托/成交证据。 + +## 回归与真实回放 + +- Engine:656 通过,8 个专用测试忽略。 +- Trading 工作区:537 通过,9 个专用测试忽略。 +- Backtest Runner:370 通过、3 忽略;API:99 通过、1 忽略。 +- 一元股专项覆盖真实执行价为 0.9/1.0/1.2、旧标记与新价格相反、缺失其他风险事实、NaN/无效价及开关独立性。 + +实际 HTTP 回测使用原始冻结请求、信号和 bundle,未复制结果: + +- 原基准:`btr_req_260d0f3179d40fda5c918d48eba0a239bd335406c82a1cbe`。 +- 新运行:`btr_1789091571964_2429476_0`。 +- 区间:2025-02-05 至 2025-02-10;初始资金 10,000,000;目标 10 仓;next-open;滑点 0.002;佣金万三、最低 5。 +- 两次均 28 成交,最终资产 10,089,448.918844,收益 0.89448918844%。 +- 订单、成交、账户事件、权益、持仓、风险审计六项摘要相同。 +- Canonical SHA256:`befa50b3ec5b94adafede459903db7e2542797cf0eefe2de32900afc83ca1481`。 +- 服务端 3.954 秒,客户端含轮询 6.072 秒。此短区间已有缓存样本不能代表全市场冷态或多年性能。 + +## 发布 + +- Engine `d3c36e947894fd220b62ecd6fbfe02473f70bd2c`,tag `v2026.9.11`。 +- Trading `dfcec36bd1c0f92e73cd30073540eb39dbd02835`,tag `v2026.9.11`。 +- Backtest service `75202cc3b876daf99d0d2dffb988ca456c34aabf`,重新链接上述引擎。 +- 只使用官方 installer,以 Boris 构建和运行。发布后各服务健康,运行二进制核对独立清单,不仅检查源码 HEAD。 +- 原 3 Paper / 1 Live 配置和状态摘要前后相同;本次投影 Paper 为 `52a909117fe8f01ae35a327bd86310e2583d291609bba6596dc0f49a2b10559c`,Live 为 `aaec1e9dbc984012e9fe677e54db1efb860edd59d5840d1dc87c4b230b26bac6`。仅与本次相同投影的发布前数据对比,不与此前其他字段投影混比。 +- Source PID 2267019、因子主进程 PID 2178403、NRestarts 均不变。本轮未调用 Source/因子重启入口;不能由主 PID 不变推断全部因子子任务已经验收。 + +## 未关闭问题 + +独立依赖探针确认:保持 next-open 订单和开盘价不变,仅修改执行日后来形成的全天量,成交量从 100 变为 1,000;仅修改全天 high/low,动态滑点成交价从 10.305 变为 11.000。探针是合成输入,不冒充市场证据。 + +详见 `/Users/boris/WorkSpace/docs/fidc/execution-time-capacity-coordination-20260911.md`。下一步须分离实测执行时点容量和声明的容量估计、冻结校准数据时钟、覆盖挂单逐成交腿;不能偷偷改为昨日成交量、关闭限制或使用未来一分钟量。V18 研究只允许新不可变后继评估,不能改现有结果。 + +自然 Paper 观察与正式 Live 仍需真实合格版本和正式审批。当前研究控制模型仅 23 个验证日,2026 留出期继续封存;不得为演示闭环降低门槛、伪造 observed、代替审批或手工发证券订单。 + +## 证据 + +177 根目录:`/srv/fidc/canonical/run/research/execution-risk-signal-audit-20260911/`。 + +- `engine-full-tests-v2.log`、`trading-full-tests.log`、`backtest-full-tests.log`。 +- `deploy-before.json`、`deploy-after.json`、`running-binary-verification.json`。 +- `same-signal-backtest/request.json`、`submission.json`、`result.json`、`comparison.json`。 +- `execution-time-dependency-probe.json` SHA256:`feeb69275b8ad537f16e4c119cc7e59dd3a15773334fb591e27d7afdf34311d3`。 +- 官方部署日志与独立探针源码保存在相同证据根,不写入交易数据库或修改原始行情。