返回档案库

案例库 · 交易与投资 · 技术决策 · 2012

骑士资本 45 分钟亏掉 4.4 亿美元——只因一台服务器上留着旧交易代码

八台服务器中有一台少了一个标志位,触发了一套失控的算法,它高买低卖,烧钱的速度快过任何人拔掉插头的速度。

骑士资本 · 2012-08

怎么回事

2012 年 8 月 1 日,骑士资本为它的美国股票做市业务部署了一套新交易软件。这次部署本该在全部八台服务器上同时生效,但只因其中一台少了一个配置标志位,那台机器就把一个过时的算法版本和新版一起跑了起来。旧代码里有一个 bug:它把正常的市场活动当成了执行巨额订单的信号。

这套失控的算法开始以卖价买入股票,再立刻以买价卖出,在数百万股上锁定一笔笔微小的亏损。不到 45 分钟,公司在几十只股票上累积了逾 300 万股,每分钟亏损约 1000 万美元。在交易员手动切断与纽约证券交易所的连接之前,总损失已达 4.4 亿美元。

这一事件几乎让骑士资本破产,它当时处理着美国约 15% 的散户股票交易量。公司被迫接受 Citadel Securities 的救助方案,后来与 Getco 合并组建 KCG Holdings,骑士资本作为独立公司的存在也就此终结。

为什么会这样

  • 部署流程没有核验那个用来停用旧逻辑的“标志位”是否在全部八台服务器上都存在;只有七台被正确更新。
  • 没有一个交易前的紧急停止开关或熔断机制,能在资金耗尽之前自动叫停失控的订单流。
  • 测试没有模拟新旧版本混合运行这一特定故障模式,默认部署会一致成功。
  • 风险限额是按单个策略而非全公司总敞口设定的,让这个错误绕过了各项上限。
代价45 分钟亏掉 4.4 亿美元灾难级

教训

部署的完整性本身就是一项风险控制。如果你的保险措施要靠人在毫秒级的事件中介入,你已经输了。

后来呢

骑士资本于 2012 年底被 Getco 收购,组建 KCG Holdings。这一事件促使高频交易公司普遍采用自动紧急停止开关和严格的金丝雀测试规程。

资料来源

发现哪里写错了?告诉我们。

Comments · 0

    登录 后就能评论。

    类似的案例

    这家公司栽倒的地方,别处有人漂亮地解开过。 第二意见 →