# v1.11.0 策略可信度与回放执行升级 > 历史版本说明:本文记录 v1.11.0 的实现边界,不是当前 v1.14.0 的完整 report 合同。 > 实现依据:`strategy-optimization-review.md`。 > 定位:工程口径修复,不构成投资建议,也不声称策略已经通过长期样本外验证。 > 当前基线请参阅 [`DESIGN.md`](../DESIGN.md) 的“阶段 0 baseline 与证据状态”章节;v1.14.0 的 report 仍是探索性诊断,v4/v5 历史文件只读且不重算。 ## 本版本完成 ### 1. 统一 ExecutionModel 新增 `lib/execution.js`,由 plan、snapshot 与 replay 共用: ```text buyCost = executableAsk + explicitBuyFee + buySlippage sellProceeds = executableBid - explicitSellFee - sellSlippage pnl = sellProceeds - buyCost ``` - 真实 CMB 客户双边报价直接作为 ask/bid,不再叠加估算点差。 - 估算点差只用于缺少双边报价的 synthetic fallback。 - 显式费用、滑点、报价内点差分别出现在 `components/costBreakdown`。 - 回本、目标、止损、持仓估值、回放 fill 和期末清算共享同一账本。 - 止损直接比较有效退出盈亏;修复 fallback 手续费符号错误。 ### 2. 估值与策略门控分离 - 技术指标或覆盖率不足仍会阻止新建议。 - 只要持仓和新鲜 executable bid 存在,snapshot 继续计算浮盈亏。 - 缺少或过期 bid 时返回 `feeAdjustedPnl: null` 与 `valuationReasonCode`,不再伪造 0。 ### 3. Replay report v5 连续账户不再把建议限价立即当成交: ```text signalAt = 信号 K 收盘 eligibleAt = signalAt + 5 分钟 pending -> 下一根及后续完整 K 判断限价触及 未触及且到期 -> expired ``` - 买单使用 ask path,卖单、回本、目标和止损使用 bid path。 - 同 K 同触目标/止损时记录 `ambiguousBar`,默认按多头止损先到的保守路径。 - 同时报 `bestCaseNet`、`worstCaseNet` 和 `ambiguityImpactCny`。 - 默认只选择已过配置收盘时点且数据到达时段尾部的完整 session。 - `includePartial:true` 才纳入部分日,并按 as-of 标记。 - 新增订单/成交/过期/替换数、fill/expiry rate、平均延迟、真实双边覆盖、成本拆分、equity curve、最大回撤、turnover 和 profit factor。 - 独立信号表也先模拟 next-bar fill/expiry;未成交建议保留 decision/expiry 计数,但没有 execution outcome。 - `replay-stats.json` 持久化 report、orders、fills、pendingOrders 与 trade-compatible 明细。 - v4 报告继续原样读取;Web 仅显示版本、窗口、参数、caveat 与 legacy 警告,抑制旧绩效表/账户卡,不投影为 v5 可执行表现。 ### 4. 双边历史与动态校准 - 新 CMB tick bar 持久化 ask/bid OHLC。 - fallback 校准分别保存 `buyOffset` 与 `sellOffset`,不再把中间价偏移同时用于两侧。 - 旧 `spreadMid` 样本继续兼容,但标记 `dynamic-legacy`。 - 旧单边 K 线只能生成明确标记的 proxy path,不计入真实 bid/ask 覆盖。 ### 5. 数据与配置修复 - compact `YYYYMMDDhhmmss`、epoch 秒/毫秒与 ISO 时间统一规范化;明显未来时间戳阻断策略。 - 10m/30m 按自然时间桶聚合;缺子 K 的 `partial` 桶不进入正式指标。 - `scoreThreshold` 的 normalization、settings schema 与 Web UI 上限统一为真实最大值 8。 - 仓位变化只清空确认 streak,不再清除同向 cooldown 时钟。 ### 6. Generic Webhook Host 防护 - 修复 `/test-notify` generic 分支缺少 `sendGeneric` 导入。 - 通用 webhook 仅允许无凭据 HTTPS 公网目标。 - 拒绝 loopback、RFC1918、link-local、metadata、保留/文档地址、危险 header 与 redirect。 - 增加 missing id、发送成功、发送失败和 URL/header 校验测试。 ## Wire 兼容 - 新生成报告:`version: 5`、`executionVersion: goldboard-execution-v1`。 - 旧 v4:读取与落盘内容不迁移、不重解释。 - `detail=true` 新增 `orders`、`fills`、`pendingOrders`;`trades` 继续提供兼容的已成交行。 - 新增 nullable 估值字段时,客户端显示“未知/无法估值”,不补 0。 ## 仍未完成 以下项目需要长期数据、业务协议或更大的风险模型,不在 v1.11.0 中宣称完成: - CMB 正式费用协议核对和历史真实双边覆盖积累。 - 12-24 个月数据与 walk-forward 样本外验证。 - 真实秒级 bid/ask、队列位置、部分成交和实际成交回填。 - 账户权益风险预算、日/周损失上限、组合回撤约束和波动目标。 - setup 唯一 id、active/suppressed signal ledger、每日加仓上限、价格改善条件和风险增量上限。 - 覆盖率的 expected/actual/missing bucket 审计字段,以及按源延迟/SLA 的运营指标。 - Sharpe/Sortino/Calmar、bootstrap 区间、基准策略对比和正式参数敏感性图。 - CMB、SGE、XAU 各自独立的正式交易日历和运营 SLO。 因此,v5 的净结果、触及率和回撤仍是 5 分钟历史数据上的模拟诊断,不是可直接用于真实仓位决策的业绩证明。