BinaryBlogBUILD

BUILD · M / W / F

量化实验室系列 * 闪崩实验室 5

Editorial image for 量化实验室系列 * 闪崩实验室 5

一个值得反复思考的观点。

第一幕:Production V4 上线

P4 上线时,我们以为最难的工作已经结束。策略回到 M0 的结构核心,风险单位缩小,最多三条逻辑腿,StopMove_B1 启用,黑盒记录器覆盖扫描、信号、机会、生命周期、交易所回读与对账。系统终于显得无聊,而在生产量化里,无聊通常是好消息。

LIVE_00003 出现后,信号、下单、成交、保护单都按预期工作。市场先朝有利方向运行,随后反转,交易所止损被触发。从策略角度,这是一笔干净的 1R 损失:假设得到了一个负样本,但没有宪法危机。

第二幕:LIVE_00003 表现得很漂亮

真正的成功是生命周期没有撒谎。交易所接受入场,保护单存在,止损执行,持仓归零。MFE、MAE、持续时间、成交与保护状态都进入黑盒。市场亏损与软件故障终于可以分开。

然而本地退出处理器在读取交易所响应时遇到一个畸形 JSON 结构。一个字段的形状与代码预期不同,序列化包装器没有 fail closed,而是让后续本地计算继续完成。局部状态因此产生了一个看似合理、实则虚构的结论。

第三幕:Telegram 宣布胜利

Telegram 报警率先讲出漂亮故事:LIVE_00003 盈利约 +0.5R。屏幕上的文字很干净,格式也正确,正因为如此更危险。真实交易所账本显示它是约 -1R 的止损亏损。

本地系统没有恶意伪造数据。它只是从错误形状的 payload 中取出不完整值,再用自己的入场、退出和仓位假设补齐空白。每个局部步骤都能解释,最后的总体结论却错了。金融系统最危险的谎言往往不是随机垃圾,而是结构完整、语气确定、恰好符合操作者期待的错误答案。

第四幕:交易所提出异议

交易所回读推翻了 Telegram。实际成交、止损订单、费用、最终持仓与余额变化共同确认:这是一笔真实亏损。本地 ledger、通知与外部事实出现冲突,证据状态因此必须是 CONFLICTED,而不是挑一个更舒服的数字。

我们还发现了一个直接的订单标识符,已在公开版本中删去。标识符对内部取证有用,却不属于公共叙事。保留决策所需的 R、损益和状态,移除能指向具体账户或订单的细节,是证据完整与隐私边界同时成立的方式。

第五幕:侦探故事

调查从时间线开始:信号何时生成,订单何时提交,交易所何时成交,保护单何时确认,止损何时触发,payload 在哪一层变形,Telegram 在何时读取了哪一个字段。黑盒的五张表把一个模糊的“数字不对”拆成可复现的因果链。

交易所像物理犯罪现场,Telegram 是第一位报案人,本地日志是日记,黑盒是法证实验室,合成状态偶尔会给出假口供。我们不再让最后写入的文件自动赢得争议,而是按来源主权与时间顺序审理每条证据。

第六幕:现实获得主权

修复建立四条法律。第一,交易所 readback 是成交、订单与持仓的主权事实;本地模型只能提出假设。第二,任何通知都必须能追溯到已验证遥测。第三,未知或解析失败必须 fail closed:停止更新结论,发出警报,保留原始响应。第四,会计必须用外部成交、费用和余额变化完成主权对账。

异常发生后,系统不能继续写出“可能没事”。允许的状态只有已保护、无敞口,或紧急未解决。若保护单无法确认,新入场必须停止,人类被呼叫,现有保护保持不动。连续运行不再高于说真话。

第七幕:又亏两笔,没有人恐慌

LIVE_00004 与 LIVE_00005 随后止损。两笔都是干净的策略损失:订单、保护、退出、记录与对账全部一致。过去每次亏损都夹带软件故障、状态竞赛或未处理边缘情况;这一次生命周期平静地走完。

三连亏当然会降低对策略的信心,却没有理由重写系统。历史分布已经包含五连亏与约 5.5R 回撤。只要亏损仍在预先接受的分布内,执行事实干净,资本边界未被突破,它们就是证据,不是紧急事故。

系统工程的学费

LIVE_00003 是昂贵的运营喜剧。一段畸形 JSON 让我们付出约 1.5R 的预期价值与约 2,300 美元的会计教训。作为交易,它很差;作为系统工程学费,它价值极高。

它暴露了序列化边缘情况,迫使合成状态让位于交易所事实,验证了黑盒在压力下的价值,并促成 fail-closed truthfulness。职业早期,人会问市场为什么打掉止损;管理生产系统以后,更重要的问题是:执行栈有没有遵守自己的结构法律,并且没有对自己撒谎。LIVE_00004 和 LIVE_00005 的答案终于是“有”。