部署到 8 個伺服器中的 7 個,損失 4.6 億美元。45 分鐘。
美國東部時間 2012 年 8 月 1 日上午 9:30:Knight Capital 是美國股票交易中約十分之一的做市商,剛將新的訂單路由代碼部署到其八個 SMARS 伺服器中的七個。
美國東部時間 2012 年 8 月 1 日上午 9:30:Knight Capital 是美國股票交易中約十分之一的做市商,剛將新的訂單路由代碼部署到其八個 SMARS 伺服器中的七個。第八個仍執行「Power Peg」,這是 2003 年停用的代碼,位於新功能重新使用的旗標之後。45 分鐘內,它不斷發送子訂單:400 萬次執行、3.97 億股,約 70 億美元的倉位,損失 4.6 億美元。開盤前已收到 97 封警告電郵。事後分析,來自美國證券交易委員會 (SEC) 自己的指令:無人審查的手動部署,具有兩種含義的旗標,2005 年移動且從未重新測試的停止計數器,不存在的緊急停止開關,以及在實時市場中使情況惡化的「修復」。關於修復的結論:REVERT。
本影片涵蓋的內容
- 2012 年 7 月 27 日至 31 日:RLP 代碼手動複製到 8 個 SMARS 伺服器中的 7 個;沒有第二位審閱者,沒有書面程序
- 8 月 1 日上午 8:01:開盤前收到 97 封「Power Peg 已禁用」電郵;未設計為警報,無人閱讀
- 8 月 1 日上午 9:30 至 10:15:212 筆訂單在 154 隻股票中產生 400 萬次執行;35 億美元做多,31.5 億美元做空;損失 4.6 億美元;卸載新代碼使情況惡化
- 8 月 2 日至 12 月 19 日:股價下跌 63% 至 2.58 美元,以每股 1.50 美元進行 4 億美元救援,與 GETCO 合併;2013 年 10 月:1200 萬美元 SEC 罰款,首個市場准入規則案例
翻譯的文字記錄
從英文原文旁白翻譯。可用的音頻和字幕由 YouTube 控制。
0:00 一間交易公司將新代碼部署到八個伺服器中的七個, 而第八個在 四十五分鐘內買賣了近七十億美元的股票,這是一筆巨款,即使對於星期三來說也是如此。 2012 年 8 月 1 日。 佔美國所有股票交易十分之一的 Knight Capital 報告損失 4.4 億美元。 美國證券交易委員會後來統計超過 4.6 億美元,罰款 Knight 1200 萬美元, 並親自撰寫事後分析:十頁,零形容詞。
0:25 它是如何發生的,為什麼會發生,以及誰真正該受責備。 這是 The Daily Diff,事後分析。 7 月 27 日。紐約證券交易所於 8 月 1 日啟動零售流動性計劃,因此 Knight 將新代碼複製到其訂單路由器 SMARS 上, 每天手動複製幾個伺服器。 一名技術人員,八個伺服器,七份副本。 沒有人檢查;沒有規定說任何人必須檢查。 上午 8:01。一個內部系統開始向員工發送一封錯誤電郵,內容是:Power
0:51 Peg 已禁用。開盤前有 97 封電郵。 它們並非設計為警報,所以沒有人閱讀它們, 這是一個代價不菲的設計決定。 9:30,市場開盤。 七個伺服器運行新代碼。 第八個看到相同的旗標,並運行 Power Peg:Knight 於 2003 年停用且從未刪除的代碼。 它為 212 個客戶訂單發送子訂單,且從不停止。
1:13 四百萬次執行。 三億九千七百萬股。 一個持有賬戶超出其二百萬美元的上限, 而該上限沒有連接任何東西。 工程師在實時市場中,從七個正常運作的伺服器中卸載新代碼, 這使得 Power Peg 在所有地方都開啟。 大約 10:15 停止:做多三十五億, 做空三十一點五億。
1:31 一:Power Peg 的停止條件,即表示主訂單已 填滿的計數器,於 2005 年移動且從未重新測試,因此停用代碼 永遠循環。二:新功能重新使用 Power Peg 的舊旗標, 因此在兩個伺服器上,相同的「是」表示兩件事。 三:沒有緊急停止開關。 沒有什麼將輸入訂單與輸出訂單進行比較;沒有什麼停止 SMARS。 風險監控器是一個由人類監視的屏幕;它沒有顯示限制。 git blame:重新使用旗標而不是新的旗標,九年內可調用的死代碼,
2:00 以及沒有第二雙眼睛審查的手動部署。 不是技術人員。 美國證券交易委員會的指令從未點名他,我也不會。 爆炸半徑:4.6 億美元,大約每分鐘 1000 萬美元。 股價下跌 63% 至 2.58 美元,以每股 1.50 美元進行 4 億美元救援, 聖誕節前與 Getco 合併。 Hacker News,星期四:它如何在沒有人介入的情況下運行 45 分鐘? 它沒有。人類讓它變得更糟。
2:25 結論,事後分析:REVERT。 Knight 從未撰寫自己的事後分析;監管機構撰寫了, 十四個月後,修復方案是罰款和合併。 星期一:新功能,新旗標;死代碼被刪除, 而不是禁用;任何發送訂單的東西都獲得一個關閉開關。 在評論中,或在 the daily diff dot dev 上,將你仍然不被允許談論的事件發送給我。 在評論中,或在 the daily diff dot dev 上。 這就是今天的 diff。
2:48 我是 Axrisi 的 Niko。 負責地合併。
來源
- SEC Administrative Order, Release No. 34-70694 (Oct 16, 2013), In the Matter of Knight Capital Americas LLCwww.sec.gov
- SEC press release 2013-222, "SEC Charges Knight Capital With Violations of Market Access Rule"www.sec.gov
- Knight Capital Group 8-K, Aug 2, 2012 (the $440M statement)www.sec.gov
- Knight Capital Group 8-K, Aug 6, 2012 (the $400M convertible preferred)www.sec.gov
- Knight / GETCO merger announcement, Dec 19, 2012www.sec.gov
- NYT DealBook, "Knight Capital Says Trading Glitch Cost It $440 Million" (Aug 2, 2012)archive.nytimes.com
- Hacker News, Aug 2, 2012 (73 points)news.ycombinator.com
- Hacker News, "The $440M software error at Knight Capital" (294 points)news.ycombinator.com



