@@ -54,3 +54,35 @@ configured platform prefix, and POSTs only the generated snapshot to
5454` /api/internal/sync-execution-evidence-source ` . It does not need or create a
5555long-lived GCP key. Credentials and runtime-report object URLs must never be
5656added to this repository or emitted to logs.
57+
58+ ## 生产端接入边界
59+
60+ 执行回执是一个通用接口,但不允许平台为了“看起来完整”而猜测成交。当前接入的
61+ 运行时只把已有的、可验证的字段转换为回执;所有策略和插件沿用同一平台适配器,
62+ 不需要为每个策略复制一套规则。
63+
64+ | 平台运行时 | 可发布的最高事实 | 不会推断的事实 |
65+ | --- | --- | --- |
66+ | IBKR | 显式 reconciliation 中的部分/完整成交;其余为已提交或待对账 | 本地执行标记、网关连通性不等于成交 |
67+ | LongBridge | 已提交或待对账 | ` action_done ` 不等于券商确认或成交 |
68+ | Charles Schwab | 已受理订单仍为待对账 | 受理订单不等于成交 |
69+ | Firstrade | 已提交、风控/资金拦截或待对账 | 策略运行阶段不等于成交 |
70+ | Binance | API 返回的明确状态(确认、部分成交或成交) | 意图、通知、状态写入或网络超时不等于成交 |
71+
72+ 任何网络异常、超时或部分结果都优先保守为 ` reconciliation_required ` 或
73+ ` failed/not_observed ` ,而不是“没有下单”。若运行时目标没有完整的
74+ ` strategy_release ` 自证,生产端可以继续运行原有策略,但不得附加回执;控制台会把它
75+ 显示为证据缺失,不能借此获得恢复、扩容、canary 或实盘权限。
76+
77+ QMT 的当前目标是禁用/dry-run,Alpaca 当前只承担研究或数据职责,因此两者不是活跃的
78+ 执行回执生产者。这不是故障:在它们具备受控的 broker execution lane、40 位 release
79+ 自证和只读报告发布前,控制台必须继续显示为不可执行或不适用。
80+
81+ 新平台、策略或插件接入时必须同时满足以下条件:
82+
83+ 1 . 使用 QuantPlatformKit 的 ` resolve_execution_receipt_fact ` 与
84+ ` attach_runtime_execution_receipt ` ,并仅传入平台实际观察到的事实;
85+ 2 . 运行报告必须含有与 ` RUNTIME_TARGET_JSON ` 匹配的 self-attested release;
86+ 3 . 在不改变订单、仓位、权限或环境配置的情况下,为适配器写入正向和拒绝性单元测试;
87+ 4 . 使用本仓库固定版本的 ` publish-runtime-execution-evidence ` Action 发布只读快照;
88+ 5 . 先确认控制台显示的回执和原始报告一致,再单独走既有的 paper/canary/live 准入流程。
0 commit comments