2010 年閃電崩盤:演算法如何把一筆賣單變成急殺
2010 年閃電崩盤中,一筆約七萬五千口 E-mini 的自動賣單啟動下殺,其他自動化交易者隨後放大跌勢,並無單一程式失控。系統化交易人的啟示是:除了進場訊號,也要在歷史中的急跌日測試部位大小與執行假設。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
演算法是 2010 年閃電崩盤的成因嗎?
演算法是 2010 年閃電崩盤的成因,但只是其中一環:一筆約七萬五千口 E-mini 的自動賣單啟動下殺,其他自動化交易者再放大跌勢。並無單一程式失控。對回測的啟示是:除了訊號,也要在急跌日測試部位大小與執行。
CFTC 與 SEC 的聯合幕僚報告(2010)描述了一連串普通程式:各自照設計運作,彼此互相反應。執行演算法是把一筆大單拆成許多小單、分時送出的程式。造市演算法是同時報出買價與賣價,並盡量在收盤時幾乎不留部位的程式。平常的午後,這兩類程式彼此成交,相安無事;2010 年之前的演算法交易研究也發現,它通常會縮小價差、增加流動性(Hendershott、Jones 與 Menkveld,2011)。5 月 6 日,同樣的程式遇上稀薄而緊張的市場,每個程式的行為都讓其他程式的行為更糟。這種放大如何發生,見下方的流動性一節。
這對散戶系統化交易人之所以重要,是因為幾乎每個回測都藏著同樣兩個假設:你這個口數的委託單,總能在接近最新價的位置成交;持有幾口只是細節。閃電崩盤是這兩個假設同時失效最清楚的公開紀錄。本文的主張只有一個:崩盤日的損害取決於你的部位大小與成交假設,而非進場訊號。最後兩節用 ES 的實際回測來檢驗這個主張。
2010 年 5 月 6 日,逐分鐘發生了什麼事?
整段下跌與大部分的回升,都發生在午後約一小時之內。2010 年 5 月 6 日原本就是疲弱的一天:歐洲債務疑慮讓美股指數走低、波動率上升,到午後稍早,E-mini S&P 500 的買方流動性已遠低於正常水準。在這個背景下,報告以美東時間列出以下順序:
- 下午 2:32 一家大型基金在 E-mini S&P 500(代號 ES;合約說明見 S&P 500 期貨說明:ES 與 MES)啟動自動賣出程式。程式的設定是以前一分鐘成交量的 9% 作為賣出速度,沒有價格限制,也沒有時間限制。
- 下午 2:41 至 2:44 跌勢加速。E-mini 在約三分鐘內下跌約 3%。造市者與高頻交易者開始撤退。
- 下午 2:45:28 E-mini 較先前水準下跌約 5%,CME 的停損邏輯功能讓該合約暫停交易 5 秒。當後續成交即將穿過一整排等待中的停損單時,暫停會自動觸發。
- 下午 2:45:33 恢復交易。買方回到 E-mini,價格開始回升。相對地,股票市場最糟的時刻在此之後才出現:由於報價已撤回,有些股票成交在 1 美分,有些則成交在 10 萬美元。
- 約下午 3:00 多數指數期貨與多數股票回到接近下午 2:40 的水準。道瓊工業指數在最低點時曾下跌近一千點。
期貨交易人要看的關鍵細節,是反轉出現在哪裡。一家期貨交易所內的 5 秒暫停,就足以讓買方重新評估,期貨也比股票更早回升。速度正是重點:5 月 6 日的日 K 棒只留下一根長下影線,把每一分鐘都藏了起來。因此本文後面的壓力測試,讀取的是最糟的一天與其前後的回撤,而不只是收盤對收盤的報酬。
Waddell & Reed 的賣單有多大?
這筆委託約七萬五千口 E-mini,價值約 41 億美元,問題不在規模,而在速度。報告將賣方描述為一家為持股避險的大型共同基金集團。媒體後來指出該公司是 Waddell & Reed。這家基金先前執行過規模相近的賣出。當時耗時逾五小時,因為委託單分散在一整天,市場把它當成例行成交量消化。
5 月 6 日,這家基金使用的執行演算法只有一條指令:賣出前一分鐘成交量的 9%。沒有價格下限,也沒有最短執行時間。成交量參與演算法是指市場成交增加時賣得較快、成交減少時賣得較慢的程式。當成交量代表真實的買進意願時,這種設計合理。但成交量若因市場恐慌而上升,設計就會失靈,因為演算法會把下跌的市場讀成加快賣出的訊號。5 月 6 日,整筆委託在約 20 分鐘內全數成交。
散戶交易人不會送出這種規模的委託,但同樣的錯誤會以小規模出現。回測若在委託簿空空如也的日子,把市價單成交在 K 棒收盤價,就和賣出演算法犯了同一個假設:成交量等於流動性。這個假設藏起來的成本,見 回測中的交易成本:手續費、滑價與平均每筆損益。停損單是等價格觸及觸發價才轉為市價單的委託,所以在下跌的委託簿中,它成交在下一個買方所在的價位,而不是觸發價。
流動性為何消失,還自我加劇?
流動性消失,是因為平常向賣方買進的交易者不會長時間持有庫存。價格快速下跌時,他們停止買進,或把合約轉手給彼此,而賣出演算法把這種轉手誤當成需求。流動性是指在不推動價格的前提下,能在現價附近買進或賣出的數量。平常的日子,E-mini 的流動性多半來自造市者與高頻交易者,他們持有部位數秒到數分鐘,並設法讓部位回到持平。
下午 2:41 到 2:44 之間,這些交易者向賣出演算法買進,發現自己在下跌的市場中持有多單,於是彼此賣出以回到持平。報告稱這種現象為「燙手山芋」效應。暫停前的 十四秒內,高頻交易者成交逾兩萬七千口,約占該時段成交量的一半,而他們合計的淨部位只變動約兩百口。成交量暴增,實際的買進深度卻不存在。Kirilenko、Kyle、Samadi 與 Tuzun(2017)根據交易所的帳戶層級紀錄指出,高頻交易者並未引發崩盤,但他們持有時間短,無法吸收那樣規模的單向委託。
想像一個只有一個出口的擁擠大廳。幾個人開始衝向出口,門口的人群移動得更快,看起來像更多人正在離開。實際上沒有人出得去,大家只是互相推擠。若有程式計算門口的移動量,會判定出口寬闊,並加大力道。成交量參與演算法正是這樣做的。5 秒暫停則像管理員把門暫時關上,讓人看清大廳並沒有失火。
落到你自己的研究上:依賴成交量衡量交易興趣的規則,必須在急跌日檢驗,因為那時成交量與流動性方向相反。台指期的同類檢驗,見 如何在台指期崩盤情境下對策略做壓力測試。
閃電崩盤之後,規則有哪些修改?
監管機關與交易所為個股加入自動暫停,後來改以價格區間取代;訂定固定門檻來取消明顯錯誤的成交;並保留曾讓 E-mini 暫停的交易所層級停損邏輯。熔斷機制是指價格在設定時間內波動逾設定幅度時,自動停止交易的規則。2010 年 5 月 6 日以前,美國股市只有與道瓊指數大幅單日波動連動的全市場熔斷,當天沒有任何一個觸發。
| 防護機制 | 2010 年 5 月之前 | 之後 |
|---|---|---|
| 個股暫停交易 | 無 | 2010 年 6 月引入:5 分鐘內漲跌 10% 後暫停 5 分鐘,先從 S&P 500 成分股實施 |
| 漲跌停價格區間 | 無 | 後續分階段實施,以價格區間取代個股暫停,區間外的價格不予成交 |
| 明顯錯誤成交的規則 | 逐案處理 | 2010 年議定的固定百分比門檻,讓交易者事先知道哪些成交會取消 |
| E-mini 的交易所停損邏輯 | 已存在 | 保留;正是它在 2:45:28 讓期貨暫停 5 秒的機制 |
取消規則與任何在回測中包含 5 月 6 日的人有關。崩盤當晚,交易所與 FINRA 取消了下午 2:40 至 3:00 之間、成交價偏離下午 2:40 價格逾六十% 的股票交易。落在區間內的交易則維持有效。某檔股票的停損單若成交在前一價格下方 40%,那是實際損失,而使用清理過資料的回測不會顯示它。E-mini 的成交未取消;期貨委託簿沒有像部分股票委託簿那樣掏空。在從自己的資料讀出崩盤日結果之前,先確認哪些成交仍保留在資料中。
今天,同樣的連鎖會更早中斷。價格區間擋得住股票成交在 1 美分。但期貨端的機制沒變:沒有價格限制的賣方,與不願持有庫存的造市者,仍可能在稀薄的委託簿相遇。規則縮小了迴圈能延伸的範圍,卻沒有消除迴圈。
如何用崩盤日對策略做壓力測試?
用貼近實際的交易成本執行策略,歷史要包含急跌日,然後讀取單日最糟的一天與其前後的回撤,而不是平均每筆損益。平均值會掩蓋崩盤;2019 年起 ES 的日 K 棒回測涵蓋 2020 年 3 月,當時指數在數週內下跌約三分之一,最糟的一天就在這段期間。最大回撤是權益曲線從高點到下一個低點的最大跌幅,計算至創下新高為止。步驟如下:
- 選擇至少包含一段急跌期的歷史。ES 的話,2019 至 2025 年涵蓋 2020 年初。台指期的同一段期間,也包含這個事件在台灣交易時段的表現。
- 每筆交易都計入手續費與滑價,第二次回測再把滑價加倍。崩盤日只假設差 1 個跳動點成交,屬於樂觀情境。
- 以下一根 K 棒成交,而非訊號 K 棒。讀取日收盤價的規則,無法在該收盤價成交。
- 讀取急跌週前後的交易明細。找出單筆最差交易與單日最差表現,並確認跌勢開始時策略是持有多單、空單或空手。
- 以預定帳戶資金的比例,讀取事件前後的回撤,再把權益數列輸入免費的最大回撤計算機,了解回復花了多久。
下方方框是依照這些步驟做的實際回測。測試使用 2019-01-02 至 2025-06-30 的 ES 日 K 棒,多空皆做,1 口,每筆交易手續費 $20、滑價 $25。規則只是替代用的:以標準差指標規則作為唯一的進出場條件,沒有停損、停利與濾網,由標準指標建立,而非出自閃電崩盤本身。搜尋共嘗試 1,024 個候選策略,只留下這一個,依報酬相對回撤的比例挑選。事後挑出留下的那一個,會讓它的數字好看:同一份資料上的其他候選策略表現較差,而留下的這個帶有選擇加成,新資料不會重現。AlphaPrime(Valynox)在 1,024 次評估的每一次,都透過其回測套用 $20 手續費、$25 滑價與下一根 K 棒成交,所以下方的回撤數字已經包含急跌日的執行成本。
來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。ES 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $25。
| 項目 | 結果 |
|---|---|
| 淨利(已平倉) | $51,142.5 |
| 最大回撤 | $15,520 |
| 交易筆數 | 151 |
| 勝率 | 59.6% |
| 獲利因子 | 1.436 |
| 平均每筆 | $338.69 |
| 在場時間 | 14.83% |

解讀方式:最大回撤 $15,520,約為六年半淨損益 $51,142.5 的 30%,且策略只有 14.83% 的時間持有部位。持倉時間占比低,是崩盤那幾週沒有造成更大傷害的主要原因:一條多數時間空手的規則,在多數糟糕的日子也是空手,這既是設計使然,也是運氣使然。該研究的是 2020 年初前後的權益曲線,而不是摘要表,因為摘要無法告訴你,回撤來自一個崩盤週,還是緩慢的失血。這些都不是預測;這只是這個留下的候選策略,在這段歷史、扣除成本之後的紀錄。
部位大小對崩盤日回撤有多大影響?
進出場固定不變時,下方九種資金管理方法產生的最大回撤相差數倍,代表在急跌日,你持有的口數比訊號更能決定損害。部位大小是決定每個訊號要交易幾口的規則。第二個方框取用上方方框中同樣的 151 筆交易,給定 $100,000 資金與 10 口上限,並以各方法報表的預設值套用九種部位大小方法。各列之間的所有差異,都只來自部位大小。
來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。與上表同一批交易,初始資金 $100,000,上限 10 口。
| 方法 | 淨損益 | 最大回撤 | 平均口數 |
|---|---|---|---|
| 固定口數 | $159,468 | $45,720 | 3 |
| 固定名目金額 | $120,768 | $40,065 | 2.5 |
| 權益百分比 | $235,868 | $90,695 | 4.09 |
| 固定金額風險 | $139,443 | $39,795 | 2.67 |
| 固定比例風險 | $302,543 | $134,658 | 5.46 |
| 波動率目標 | $139,443 | $39,795 | 2.67 |
| 固定比率 | $98,580 | $46,558 | 2.19 |
| 權益曲線交易 | $66,155 | $55,965 | 1.95 |
| 凱利 | $48,155 | $28,895 | 1.11 |
從回撤欄位開始讀這張表。固定比例風險平均 5.46 口,最大回撤達 $134,658,高於 $100,000 的起始資金。凱利平均 1.11 口,最大回撤 $28,895。九列之中,進場訊號、出場訊號與每筆交易的日期完全相同。唯一改變的,是糟糕時期來臨時持有幾口。這是 5 月 6 日教訓的縮影:賣方的訊號(為投資組合避險)是合理的;部位大小與速度則不然。
另外有兩點。以近期波動率或固定金額風險決定部位大小的方法(此處固定金額風險與波動率目標的平均都是 2.67 口),把最大回撤控制在約 $39,795,同時保有 $139,443 的淨損益,因為市場劇烈時它們會縮小部位,而那正是最可能出現急跌日的時候。此外,這張表中每一種方法較高的淨損益,都是以較大的回撤換來的;兩個欄位同向變動。這個回撤對應你自己的帳戶需要多少口,可用免費的期貨部位大小計算機算出,回測中口數的運作方式見 口數如何改變期貨回測。持有部位通過交易時段開盤的當沖交易人,在更短的時間尺度上面對同樣的問題。
接下來,打開你自己的回測報表,找出歷史中跌得最快的一週,記下兩個數字:開始下跌時你持有幾口,以及口數加倍時回撤會是多少。若第二個數字大於你能撐過的幅度,最先該改的是部位大小規則,而非進場規則。
常見問題
2010 年閃電崩盤花了多久回復?
大部分跌幅約 20 分鐘內回復。E-mini S&P 500 約在美東時間下午 2:41 開始急跌,2:45:28 暫停 5 秒,到約下午 3:00,多數指數期貨與多數股票已回到接近下午 2:40 的價格。道瓊工業指數在最低點時曾下跌近一千點,當天收盤下跌約 3%。
閃電崩盤是演算法造成的嗎?
每一步都有演算法參與,但沒有任何單一程式造成崩盤。一筆沒有價格或時間限制的自動賣單啟動了下跌,而幾乎不持有庫存的造市與高頻程式,以彼此轉手合約而非吸收的方式放大了跌勢。CFTC 與 SEC 的聯合幕僚報告將它描述為一連串普通程式,在本就稀薄而緊張的市場中互相反應。
什麼是「燙手山芋」效應?
指高頻交易者向大賣方買進,發現自己在下跌的市場中持有多單,隨即彼此賣出以回到持平的模式。成交量急升,整個群體的淨部位卻幾乎不變。2010 年 5 月 6 日,高頻交易者在約 十四秒內成交逾兩萬七千口 E-mini,合計部位只變動約兩百口。
今天還會再發生閃電崩盤嗎?
2010 年以來新增的規則會更早中斷同樣的連鎖:個股暫停與後來的價格區間,讓股票無法成交在 1 美分,固定門檻則事先決定哪些成交會取消。不過底層機制並未改變。沒有價格限制的賣方,仍可能在稀薄的委託簿中遇上不願持有庫存的造市者,所以系統化交易人實際的對策,是依歷史中已有的急跌日來設定部位大小。
演算法交易風險對散戶交易人是什麼意思?
散戶帳戶的風險鮮少是失控的程式,而是把每一天都當成平均日來設定部位大小、並假設以最新價成交的策略。回測若計入貼近實際的手續費與滑價、以下一根 K 棒成交,並報告歷史中最糟階段前後的回撤,就能在動用真金白銀之前顯示這種風險。該養成的習慣是讀最糟的一天,而不是平均每筆損益。
參考文獻
- Staffs of the CFTC and SEC (2010). Findings Regarding the Market Events of May 6, 2010. Report to the Joint Advisory Committee on Emerging Regulatory Issues, September 30, 2010.
- Kirilenko, A., Kyle, A. S., Samadi, M., & Tuzun, T. (2017). The Flash Crash: High-Frequency Trading in an Electronic Market. The Journal of Finance, 72(3), 967–998.
- Hendershott, T., Jones, C. M., & Menkveld, A. J. (2011). Does Algorithmic Trading Improve Liquidity? The Journal of Finance, 66(1), 1–33.

