From 8084ea4a27b3ef83611ea1248a17f3b672134f68 Mon Sep 17 00:00:00 2001 From: Pigbibi <20649888+Pigbibi@users.noreply.github.com> Date: Tue, 8 Sep 2026 05:29:53 +0800 Subject: [PATCH] docs(risk): align Policy A wiring and runtime evidence boundaries Co-Authored-By: Codex --- docs/account_new_risk_gate.zh-CN.md | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/docs/account_new_risk_gate.zh-CN.md b/docs/account_new_risk_gate.zh-CN.md index 84c86ce..05c03d0 100644 --- a/docs/account_new_risk_gate.zh-CN.md +++ b/docs/account_new_risk_gate.zh-CN.md @@ -1,6 +1,6 @@ -# 账户新增风险门(D2/D3 已合;W2 只读 probe;未授权 live) +# 账户新增风险门(库与平台接线已合;不授予 live) -> 状态:`D2_D3_MERGED_W2_PROBE_NOT_LIVE_WIRED` +> 2026-09-08 源码核对:库与所选平台 adapter 已合并;生产数据可用性及交易周期验收另行确认。 `quant_platform_kit.risk.account_new_risk_gate` 提供账户级「是否禁止新增风险」的 **注入式只读 adapter**。它与订单级 `RiskEngine` / `risk.gate` 互补,不替代它们。 @@ -10,10 +10,11 @@ | D1 | `evaluate_capital_risk_envelope` 纯函数信封 | 已合 (#576) | | D2 | 账户门注入权益摘要并消费信封 | 已合 (#577) | | D3 | 多账户汇总权益 + 每账户信封只读视图 | 已实现;不含 allocator/下单 | -| W1 | 平台仓接线:真账户读回 → 注入快照 | 独立后续工作 | +| W1 | 平台仓接线:账户读回 → 注入快照 | Schwab / LongBridge / IBKR 已有 adapter;不等于本轮核验了真实账户 | | W2 | 只读 probe:手工 equity/peak/vol → 信封 + gate disposition | 已合;**不读券商** | +| Policy A | 注入生产 drift → 禁新增风险 | QPK #589/#590、Schwab #391、LongBridge #457 已合;不自动 reopt | -**仍未授权 live、未自动 enable 账户、未接生产部署。** +**本库不授予 live,不自动 enable 账户。** 平台接线已存在,不能再笼统描述为“未接生产部署”;既有交接报告的部署与本次源码核对分开,Cloud Run 配置、真实分数及交易周期仍须独立验收。 ## 模块边界 @@ -31,6 +32,7 @@ - `reconciliation_status == VERIFIED` - `circuit_breaker_state == CLOSED` - 注入 `equity_usd` 合法,且资本信封 `new_risk_allowed=True` +- 已注入的 `production_drift_status` 不是 `review` / `critical`,也不是非法状态 ### 交易周期健康语义(cycle-health,异于 RECONCILE_ONLY 恢复) @@ -48,6 +50,20 @@ 可选:`peak_equity_usd` / `drawdown_from_peak` / `realized_vol`。缺权益 → `EQUITY_UNKNOWN_FAIL_CLOSED` 禁止。`ALLOW_NEW_RISK` **不是**下单许可,也不是实盘授权。 +### Policy A:生产偏离只禁新增风险 + +`risk.production_drift_new_risk` 的映射复用上述账户门: + +- `review` / `critical` → `PRODUCTION_DRIFT_REVIEW` / `PRODUCTION_DRIFT_CRITICAL` → `NEW_RISK_PROHIBITED`。 +- `healthy` / `watch` 不增加 drift 禁止原因;非法已注入状态 fail closed。 +- `resolve_production_drift_status_from_store` 是已有 lifecycle store 的只读 adapter,返回可注入状态;不创建第二份分数,不优化、不启用账户、不复位熔断。 +- **缺轴边界保持原实现**:缺分、parked、不可用或读取异常返回 `None`;账户门不会将 `None` 当健康,但也不会仅凭它禁止新增风险。这不是“生产 drift 已有效”的证明,须单独核验启用该保护的消费者及数据可用性;本文不修改缺轴策略。 + +Schwab / LongBridge 的交易 adapter 使用实际 runtime target 的 `strategy_profile`;observe 的 `PRODUCTION_DRIFT_STRATEGY_PROFILE` override 不证明交易链消费了同一 profile。 +平台 env-sync 接线分别由 [Schwab #393](https://github.com/QuantStrategyLab/CharlesSchwabPlatform/pull/393)、[LongBridge #459](https://github.com/QuantStrategyLab/LongBridgePlatform/pull/459) 补齐。GitHub Variables、同步计划和 CI 都不证明 Cloud Run 已应用变量或能够读取分数。lifecycle 写入只使用获准 GHA / Cloud Run WIF,不用本机 ADC 补写分数。 + +有界研究优化属于另获授权的候选研究链;生产 Policy A 不自动调用 `run_research_promotion_cycle` / `optimize`,不调整现行策略参数。禁新增风险不等于自动撤单、平仓或恢复。 + ### 生产 drift 轴(Policy A:禁新风险,零优化) 可选注入 `production_drift_status`(`healthy` / `watch` / `review` / `critical`): @@ -88,8 +104,8 @@ python -m quant_platform_kit.risk.capital_envelope_w2_probe --equity 100000 --dr ## 与 QRT 确定性内核的关系 完整限额/频率判定内核在 QRT `python/scripts/deterministic_risk_gate.py`(仓库 QuantRuntimeSettings)。 -本模块固定「对账健康 + 资金信封 → 禁止新增风险」边界与注入点;W1 挂真账户读回、持久化 -OPEN 熔断与执行网关接线仍属后续独立工作,完成前不得宣称 P4/P5 已接通。 +本模块固定「对账健康 + 资金信封 + 已注入 drift → 禁止新增风险」边界与注入点。 +W1 平台 adapter 已有实现;持久化 OPEN 熔断、实际账户读回和最终下单限制的运行验收须按具体消费者确认,不能从库存在、CI 或旧 P4/P5 编号推导完成。 ## 晋级仓位双口径(勿混淆)