一个未被复制的文件。 45分钟内损失4.4亿美元。

一家做市商的部署脚本漏掉了八台服务器中的一台。那台服务器上仍潜伏着一段长达八年之久的测试代码——一个被重新利用的标志位将其唤醒,引发了大量失控交易的洪流,险些在午餐前就让公司倒闭。

Knight Capital交易故障 Knight Capital 4.4亿美元损失 算法交易故障 部署失误成本案例
向下滚动查看时间线
45分钟 从开盘到交易暂停
4.4亿美元 损失——几乎相当于公司全部市值

一张表看懂事情经过。

来源已在正文中标注链接;由于美国证券交易委员会(SEC)随后展开调查并发布公开命令,此次事件的记录格外详实。

日期 2012年8月1日,美国东部时间上午9:30开盘起。
故障原因 一名技术人员在部署新的订单路由代码时,忘记将其复制到Knight八台生产服务器中的一台上。那台服务器上仍保留着一个名为"Power Peg"的旧测试函数,原本已弃用,而新代码中一个被重新利用的标志位意外将其重新激活——向市场发送了大量非预期的买卖订单。
影响规模 在大约45分钟内,Knight的系统发送了超过400万笔订单,而它原本只是想处理212笔合法的客户订单,期间交易了约3.97亿股、涉及约154只股票,并建立了大量非预期的持仓头寸。
发现与止损 Knight的工程师花了将近45分钟才诊断出这一异常交易行为,随后才将系统关闭——当时并没有自动熔断机制或"一键关停"开关,能够独立阻止这个失控进程。
报告成本 Knight Capital披露了一笔4.4亿美元的交易损失——超过公司过去数年利润的总和。这笔损失几乎抹去了公司的全部市值,迫使其紧急融资,数月内Knight被竞争对手Getco收购。

没有回滚方案,没有熔断开关。

这是本系列中损失最快、最集中的一次事故——提醒我们,在自动化系统中,发现速度几乎比任何其他因素都更重要。

01

废弃代码并非无害代码

Power Peg函数已多年未被使用,却从未被彻底移除——代码库中其他地方一个被重新利用的标志位,就足以将其唤醒。只要弃用的代码路径仍然存在,它就会一直带来潜在风险。

02

部分部署比完全不部署更糟糕

八台服务器中有七台正确接收了更新,唯独第八台没有。如果部署流程缺乏自动化校验来确认每个节点都符合预期状态,那么变更后的系统状况可能比变更前更糟。

03

此次事故的全部成本几乎都来自检测耗时

系统每多运行一分钟,造成的损失速度是本系列中其他大多数事故都无法比拟的——对于自动化交易系统而言,一个快速、自动的熔断开关,其价值几乎超过任何其他单项可靠性投入。

关于Knight Capital事件的解答。

在部署安全或交易基础设施案例中引用此事件时常见的问题。

这是黑客攻击还是市场操纵行为? 都不是——监管机构和Knight自身都将其归因于内部部署失误,而非任何外部攻击或蓄意操纵。
Knight Capital后来恢复了吗? 并非独立恢复——公司仅靠投资者的紧急资金注入才得以存续,并在数月内被Getco收购,后来成为KCG Holdings的一部分。
此后行业发生了哪些变化? 这一事件成为一个被广泛引用的案例,用以说明部署前检查清单、金丝雀发布以及自动熔断机制的重要性——适用于任何可以在无人工审核情况下采取金融行动的系统。
如何将此事件映射到计算器中? 参见经纪自营商计算器,它精确模拟了这类低频率、高严重性的交易基础设施风险,并设有较短的MTTR目标。

45分钟的失控自动化,会给您带来多大损失?

使用相同的公式,为您自己的交易系统、营收敞口和恢复时间建模。

模式

主题色