971 字
5 分钟

2010 闪崩与 2012 骑士资本:机器事故双联

两场事故把同一个真相拍在行业脸上:量化机构的生死线,往往不在策略部,在工程部。

一、2010.5.6 闪电崩盘:36 分钟蒸发一万亿#

过程:希腊债务危机当天,堪萨斯的共同基金 Waddell & Reed 启动一个对冲卖出程序:卖出 75,000 手 E-mini 标普期货(约 41 亿美元),算法只盯着”成交量的 9%“执行,不看价格、不设时间。流动性枯竭后,高频做市商互相”击鼓传花”再集体撤出,期货暴跌传导至现货——道指最深下跌 998.5 点(约 9%),市值一度蒸发约 1 万亿美元。埃森哲等 8 只成分股成交在 1 美分,苹果瞬间成交在 10 万美元。CME 一个 5 秒钟的自动暂停给了市场喘息,价格 V 型收复。全程约 36 分钟。

定性争议(并列三说,权重至今无共识)

  1. 官方(SEC/CFTC 报告):大单在脆弱市场触发连锁 + 高频做市商流动性抽逃;
  2. CME 反驳:该大单符合正常对冲惯例,单独不足以引发崩盘;
  3. Sarao 案补充:2015 年被捕的伦敦散户 Sarao 长年在 E-mini 幌骗(挂撤巨量假卖单),当天贡献了压力——但他的算法在崩盘前已关闭,学界普遍认为他更像事后找到的”人形替罪羊”(2020 年判决:免于监禁)。

公允的记法:结构性脆弱是主因,大单是导火索,幌骗与 HFT 撤退是放大器。

遗产:个股熔断(2010)→ Limit Up-Limit Down(2012)→ 整合审计跟踪系统。

二、2012.8.1 骑士资本:45 分钟亏掉 17 年#

美股最大做市商之一,因一次部署事故 45 分钟亏 4.4 亿美元(约为其 2011 年全年净利润的 4 倍)。事故链条值得每个写代码的人背下来:

  1. 新功能复用了一个旧标志位——该标志位原本用于激活 2003 年就停用的测试代码 “Power Peg”(功能:不计成本地买高卖低,专为测试环境造成交),死代码九年没删
  2. 部署靠人工把代码复制到 8 台服务器——漏了第 8 台
  3. 开盘后,带新标志位的订单流入:7 台正常,第 8 台把标志位理解为”激活 Power Peg”,在 154 只股票上疯狂成交约 4 亿股;
  4. 无预设的一键停机开关(kill switch),无人敢拉总闸;工程师慌乱中回滚了 7 台”好”服务器——把灾难扩大到 8 台;
  5. 盘前系统已发出 97 封相关告警邮件,没人当回事。

结局:两日股价暴跌约 70%,靠 4 亿美元紧急注资续命,四个月后被高频做市商 GETCO 以约 14 亿美元合并(2017 年再被 Virtu 收购)。SEC 罚 1200 万美元——首次动用”市场准入规则”(要求券商在接口层设置资本与错单风控阈值)执法。

骑士检查表(个人版)#

这两场事故对个人程序化交易者是同一门课:

  • 死代码删除,不是注释掉;实盘/回测/测试代码物理隔离;
  • 执行算法必须有价格带、时间带、总量硬顶——“按成交量的 X% 卖”在流动性虚假繁荣时等于”越崩越卖”;
  • 单日最大亏损、最大报单量硬编码在券商接口层,不是策略层;
  • 必须有 3 秒内停掉所有报单的 kill switch;
  • 告警要么处理、要么删掉——97 封没人看的邮件等于零封。

本平台虽小,同一课已经内建:数据管线的幂等写入与断点续采(ingest/base.py)就是”部署事故不毁数据”的工程纪律——系统性 bug 比策略错误可怕得多。