部署到 8 台伺服器中的 7 台,損失了 4.6 億美元。45 分鐘。
美國東部時間 2012 年 8 月 1 日上午 9:30:騎士資本 (Knight Capital) 是美國股票交易約十分之一的做市商,剛剛將新的訂單路由代碼部署到其八台 SMARS 伺服器中的七台。
美國東部時間 2012 年 8 月 1 日上午 9:30:騎士資本 (Knight Capital) 是美國股票交易約十分之一的做市商,剛剛將新的訂單路由代碼部署到其八台 SMARS 伺服器中的七台。第八台仍然運行著 2003 年退役的「Power Peg」代碼,位於新功能重複使用的旗標後面。在 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 億美元。 SEC 後來統計超過 4.6 億,罰款 Knight 一千兩百萬, 並自行撰寫事後報告:十頁,零形容詞。
0:25 它是如何發生的,為什麼可能,以及誰應該真正受到指責。 這裡是 The Daily Diff,事後報告。 7 月 27 日。紐約證券交易所將於 8 月 1 日啟動零售流動性計劃,因此 Knight 手動將新代碼複製到其訂單路由器 SMARS 上, 每天複製幾台伺服器。 一名技術人員,八台伺服器,七份副本。 沒有人檢查;沒有規定說任何人必須檢查。 上午 8:01。內部系統開始向員工發送一封錯誤電子郵件,內容是:Power
0:51 Peg 已禁用。開盤前共發送了九十七封電子郵件。 它們並非設計為警報,所以沒有人閱讀它們, 這是一個代價不菲的設計決策。 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 年,以及沒有第二雙眼睛的手動部署。 不是技術人員。 SEC 命令從未點名他,我也不會。 影響範圍:4.6 億美元,大約每分鐘一千萬美元。 股價下跌 63% 至 2.58 美元,以每股 1.50 美元進行 4 億美元救援, 聖誕節前與 Getco 合併。 Hacker News,週四:它是如何在沒有人介入的情況下運行 45 分鐘的? 它沒有。人類讓它變得更糟。
2:25 判決,事後報告:REVERT。 Knight 從未撰寫自己的事後報告;監管機構在 十四個月後撰寫,而解決方案是罰款和合併。 星期一:新功能,新旗標;刪除死代碼, 而不是禁用;任何發送訂單的東西都有一個關閉開關。 在評論中,或在 the daily diff dot dev 上,向我發送您仍然不允許談論的事件。 在評論中,或在 the daily diff dot dev 上,向我發送您仍然不允許談論的事件。 這就是今天的差異。
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



