我幫波動預測模型多裝了兩個零件,跑完 4090 天:它追平冠軍,就是超不過去
讀者互動
0 次瀏覽,登入會員可按讚與收藏。
持續追蹤這項研究
收藏、追蹤與明日提醒只保存必要識別資料,可在會員中心檢視或刪除。
研究資訊不構成個人投資建議;提醒僅代表研究更新,不代表交易訊號。
我幫波動預測模型多裝了兩個零件,跑完 4090 天:它追平冠軍,就是超不過去
賣選擇權的人每天早上要回答一個很窄的問題:今天這檔標的大概會晃多大。
晃得比預估的大,賣出去的保險會賠;晃得比預估的小,買進來的保險就白花錢。保證金、避險頻率、部位大小,整條估值鏈往下走全都掛在這個數字上。
回答這個問題最老的一套工具已經三十幾歲。它的規則短到一句話講得完:今天的震盪幅度看昨天的震盪幅度推,而且昨天如果是下跌收黑,權重再加重一點。
它到現在還是我們每次做模型比較時的預設對照組。這篇要講的,是它又擋下一次挑戰。
這次要挑戰它的新零件
我拿來試的新做法出自 2025 年一篇計量經濟學期刊論文。核心構想是把波動拆成兩層相乘。
第一層是慢的:用過去 66 個交易日的實際震盪,算出一條緩慢移動的水位線,代表「這陣子市場整體上大概是什麼量級」。
第二層是快的:把每天的震盪先除掉那條水位線,只留下相對於當下水位的偏離,再對這個偏離跑一次前面那套老規則。
慢的管趨勢,快的管抖動,兩層乘起來就是當天的預測。舊做法要用 4 個零件描述市場,新做法用 5 個,多出來的那個專門負責調整水位線移動的速度。
聽起來合理。所以我把它跟另外四種常見做法排在同一條起跑線上,用同一批資料、同一套規則,跑一次。
比法:不准偷看未來
標的是 SPY,也就是追蹤標普 500 的那檔美股 ETF。資料取自 yfinance 的日收盤價,全期從 2007-01-04 到 2026-03-31,共 4840 個交易日。
模型只准用當天以前的資料估參數,估完往後預測一天,然後往前滾。最短要累積 750 天才開始出手,每 63 個交易日重估一次參數,整段跑下來重估 65 次。
真正拿來評分的區間是 2009-12-24 到 2026-03-31,共 4090 個交易日。
評分方式是拿每天的預測值,去對照當天實際發生的震盪幅度,算出一個誤差分數。分數越低越準。
這個分數有一個好處:就算拿來當標準答案的「當天實際震盪」本身是個粗糙的近似值,這種算法也不會因此偏袒任何一方。
成績單
| 方法 | 零件數 | 樣本外誤差分數(越低越好) | 名次 |
|---|---|---|---|
| 壞消息加權版(老規則) | 4 | 1.536481 | 1 |
| 慢快相乘版(新方法) | 5 | 1.549047 | 2 |
| 平方報酬直接版 | 5 | 1.571453 | 3 |
| 基本回聲版 | 3 | 1.581942 | 4 |
| 三段長度平均版 | 4 | 1.658306 | 5 |
新方法第二名。跟第一名差 0.012566。

0.012566 到底算多還算少
這種問題不能靠肉眼。4090 天裡每一天都有一個誤差差距,把這些差距攤開來看,它們自己的抖動幅度大到什麼程度,決定了平均差距 0.012566 能不能當真。
算出來的訊號強度是 0.69。這個數字要跨過 2 才勉強算站得住。
換個說法:如果兩種方法其實一樣準,光靠運氣也跑出這麼大差距的機率是 48.76%。差不多是丟一次銅板。
排在後面的三個就不同了。老規則對上平方報酬直接版,訊號強度 2.7758;對上基本回聲版是 3.6763;對上三段長度平均版是 5.1621。後兩個差距扎實到可以下結論。
誰有資格留在名單上
還有一個更嚴格的問法:把五個方法丟進同一個池子,重複抽樣 5000 次,一輪一輪把「明顯比別人差」的踢掉,最後誰留下來。
| 出局順序 | 方法 | 出局時的分數 |
|---|---|---|
| 第一個出局 | 三段長度平均版 | 0.0 |
| 第二個出局 | 基本回聲版 | 0.0016 |
| 第三個出局 | 平方報酬直接版 | 0.0222 |
| 留下 | 壞消息加權版 | 0.4984 |
| 留下 | 慢快相乘版 | 0.4984 |
淘汰標準訂在 0.1。三段長度平均版第一輪就被清出去,分數 0.0。基本回聲版 0.0016,平方報酬直接版 0.0222,都沒撐到最後。
剩下兩個並列,分數同樣是 0.4984。老規則和新方法一起留在名單上,誰是冠軍分不出來。
所以新方法沒有輸。它只是沒贏。
換三個年代再問一次
只看一個總平均容易被某幾年帶著走。把 4090 天等分成三段,每段各自重算:
| 方法 | 2009-2015 | 2015-2020 | 2020-2026 |
|---|---|---|---|
| 壞消息加權版 | 1.509247 | 1.664034 | 1.436344 |
| 慢快相乘版 | 1.510555 | 1.674610 | 1.462110 |
| 平方報酬直接版 | 1.561740 | 1.663485 | 1.489302 |
| 基本回聲版 | 1.577264 | 1.673139 | 1.495606 |
| 三段長度平均版 | 1.634339 | 1.846457 | 1.494449 |
第一段和第三段,老規則都是第一,新方法都是第二。
中間那段冠軍換人:平方報酬直接版 1.663485,壓過老規則的 1.664034。兩者差 0.000549,這種幅度不足以說明任何事。
同一段裡新方法掉到第四,1.674610,被基本回聲版的 1.673139 擠下去。三段裡它的名次在第二和第四之間晃。
第一段老規則和新方法差 0.001308,貼得最近。到了第三段,差距拉開到 0.025766。新方法在最近這幾年反而落後得比較多。
市場劇烈的時候呢
還有一種切法:按當時的實際波動水位,把 4090 天砍成安靜的一半和劇烈的一半。
| 方法 | 安靜期 | 劇烈期 |
|---|---|---|
| 壞消息加權版 | 1.533567 | 1.539393 |
| 慢快相乘版 | 1.545294 | 1.552796 |
| 平方報酬直接版 | 1.569722 | 1.573183 |
| 基本回聲版 | 1.578671 | 1.585209 |
| 三段長度平均版 | 1.694924 | 1.621725 |
前四個方法在劇烈期都稍微變差,幅度很接近,落在 0.003461 到 0.007502 之間。
最後一名的表現方向相反。它在安靜期是 1.694924,劇烈期反而降到 1.621725,改善了 0.073199。
原因藏在它的設計裡:它靠三種不同長度的歷史平均值來推估,本來就反應遲鈍。市場一路平穩的時候,遲鈍會讓它一直高估;市場真的動起來,遲鈍反而剛好接住那些持續好幾天的大震盪。
它整體還是最差的那個。這只說明「總平均最差」跟「在哪一種市況下最差」是兩件要分開看的事。

換個角度看還是同一個順序
誤差分數之外,我另外量了一個東西:把每天的預測值排序,跟當天實際震盪幅度的排序比對,看兩串順序有多一致。
老規則 0.3874,新方法 0.3812,接著是 0.3445、0.3369、0.3211。
名次跟誤差分數那張表完全一樣。兩種完全不同的量法給出同一個排序,這個結果就不太可能是評分方式挑出來的巧合。
一個我沒預期的細節
估出來的參數裡有一個位置特別刺眼。新方法快速那一層裡,負責「昨天震盪幅度的一般影響」的零件,被估成 0。
短期反應全部由另一個零件承擔:「昨天是不是下跌」,係數 0.320320。
新方法在快速那一層自己把一個零件關掉了。多裝的兩個零件,實際上只有一個在動。
老規則那邊的持續性參數是 0.978365,新方法快速層是 0.921767。慢的那層把長期記憶接走以後,快的那層就不需要記那麼久。設計本身是合理的,只是合理不等於更準。
我從這次得到的東西
「慢的乘上快的」在紙上是漂亮的分工。實際跑 4090 天,它換來的是第二名,跟第一名的差距小到丟銅板都分不出來。
多花的成本是真的:多一個零件要估、多一層要維護、出問題時多一個地方要查。換回來的預測力,量不出來。
但我不會寫成新方法失敗。真正被淘汰的是三段長度平均版、基本回聲版、平方報酬直接版,這三個確實輸得有統計上的把握。新方法是跟冠軍並列的那一個。
對做部位的人來說,這篇的用處很直接:如果手上已經在跑那套三十年前的老規則,這次沒有理由換掉它。想升級,得往別的方向找,往「拆得更細」這條路走已經有人試過了,這是結果。
一個實驗跑完 40.4 秒,結論是「維持現狀」。這種答案不好看,但省下來的是未來幾個月的維護成本。
懶人包圖組




相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊