【歷史重演】1998年LTCM崩盤教你一件事:你在台股跑的Python策略,正在犯諾貝爾天才同一個致命錯誤
LTCM當年用數學模型吞噬萬億美元,其核心謬誤至今仍潛伏在你的回測報表裡。
1998年8月,一群全世界最聰明的人正在對著螢幕發抖。
他們是誰?兩位諾貝爾經濟學獎得主Myron Scholes和Robert Merton,加上華爾街最頂尖的債券交易員John Meriwether。他們的基金叫Long-Term Capital Management,簡稱LTCM。四年來,年化報酬率超過40%。投資人擠破頭想把錢塞進去。高盛、美林、瑞銀,全部是LP。
然後俄羅斯債務違約了。
六週之內,LTCM虧掉46億美元。整個基金的槓桿率高達25:1——意思是每1塊錢的本金,撬動了25塊錢的部位。聯準會緊急召集華爾街14家銀行聯手救援,因為如果LTCM倒了,整個金融體系可能跟著陪葬。
你可能覺得這是古早歷史,跟你在台股用Backtrader跑的均值回歸策略八竿子打不著。
坦白講,我以前也這麼想。直到我仔細拆解LTCM的交易邏輯,才發現一件讓我背脊發涼的事——他們犯的核心錯誤,跟我們這些散戶量化交易者每天在犯的,根本是同一個東西。
那個錯誤叫做:把回測當預言。
LTCM的策略其實不複雜。他們做的是收斂交易(convergence trade),核心假設是「價差終將回歸均值」。舉例來說,兩檔高度相關的債券如果價差異常擴大,就同時做多便宜的、做空貴的,等價差收斂時獲利。統計套利的經典款。聽起來很熟吧?你用Shioaji串接台股報價,抓兩檔金融股跑配對交易的時候,邏輯一模一樣。
問題在哪?他們的模型用了五年歷史數據來校準參數。五年。在那五年裡,市場沒有發生過像俄羅斯違約這種等級的事件。所以模型「學會」了一件事:價差永遠會收斂。但1998年告訴所有人——價差不但可以不收斂,還可以在你爆倉之前繼續擴大到你做夢都想不到的程度。
這就是Overfitting的原罪。
我認識不少在台灣做量化的朋友(包括我自己),跑回測的時候都有一個壞習慣:不斷調參數,直到回測曲線漂亮為止。夏普比率2.5?不夠,再調。3.0?嗯,差不多了。最大回撤只有8%?完美。然後就拿去跑實盤。
等等。你有沒有想過,那條漂亮的回測曲線,到底是策略真的有效,還是你的參數剛好完美擬合了過去的數據?
LTCM的天才們用的是Black-Scholes模型的變體,參數經過嚴格的數學推導。但即使是諾貝爾獎等級的數學,也逃不過一個殘酷的事實:歷史數據裡沒有的事件,模型永遠學不會。這叫做厚尾風險(fat tail risk),或者用更白話的說法——黑天鵝。
好,那我們該怎麼辦?不跑回測了嗎?當然不是。
我的建議很具體。如果你正在用Python做量化交易(不管是用Backtrader、Zipline還是自己刻的框架),至少做到這三件事:
第一,Walk-Forward Analysis。別把所有歷史數據一次餵進去。把數據切成訓練集和驗證集,用滾動視窗的方式測試。你的策略在「沒見過」的數據上還能賺錢嗎?如果不能,那回測報表上的數字就是幻覺。
第二,壓力測試要用極端情境。不要只用2020年到2025年的台股數據。把2008年金融海嘯、2020年三月熔斷、甚至2022年的升息循環都丟進去。用Fugle API或Shioaji拉長期歷史數據不難,難的是你願不願意面對那些讓你策略曲線變醜的真相。
第三——這是LTCM最血淋淋的教訓——控制槓桿。LTCM的數學模型本身其實沒那麼離譜,真正殺死他們的是25倍槓桿。就算你的策略勝率60%,期望值為正,25倍槓桿下只要一次極端虧損就足以讓你歸零。台灣期貨市場的保證金制度本身就帶有槓桿效果,很多人還額外加碼,這跟LTCM當年的瘋狂程度差別沒你想像的那麼大。
說到開源工具,我最近在研究的是Lean(QuantConnect的開源引擎)。它有一個功能我特別喜歡:內建的風險管理模組可以設定最大槓桿上限和單日最大虧損。這種「把紀律寫進程式碼」的思路,比起靠人的意志力控制風險,靠譜太多了。Backtrader的Sizer機制也能做到類似的事,但需要你自己實作得更細緻一些。
(順帶一提,Hummingbot在加密貨幣做市策略上很成熟,台灣幣圈社群用的人不少,但做市策略的存貨風險管理本質上跟LTCM的問題是同一回事——你在賭價差會收斂。)
回到LTCM的故事。基金被清算之後,Scholes在一次訪談裡說了一句話,大意是「模型告訴我們風險很小,但市場不在乎模型怎麼說」。
這句話值得列印出來貼在你的螢幕旁邊。
二十八年過去了,工具從Excel變成Python,交易所從紐約延伸到台北,策略從債券套利變成台股配對交易。但那個致命的誘惑從來沒變——我們總是太容易相信自己的模型,因為回測報表上的數字太漂亮、太令人安心了。
LTCM的教訓不是「量化交易行不通」。恰恰相反,量化交易是個好工具。但工具不會告訴你它的極限在哪裡。那是你的工作。
你下次按下「開始回測」之前,問自己一個問題:如果明天發生一件過去二十年從沒發生過的事,我的策略會怎樣?
如果你答不出來,那你跟1998年的那群諾貝爾天才,站在同一個懸崖邊上。
🛠️ CULTIVATE Recommended Tools | 精選工具推薦
- Codecademy: Learn Python and Data Science interactively from scratch.
Disclosure: CULTIVATE may earn a commission if you purchase through these links.