chundev
日期:2026-05-30 情境:用日頻情緒/部位訊號(以台股 Put/Call ratio 為例)驗證對指數期貨的預測力
把一個訊號分桶、看各桶未來 N 日報酬,是驗證指標預測力最直觀的方法。但兩個陷阱會讓你看到根本不存在的 edge:
結論:信短天期 + 大樣本桶,對小桶的亮眼數字存疑,逐筆看不要只看平均。
驗證一個市場情緒/部位訊號是否有預測力,最常見也最該先做的,就是「分桶 × 前瞻報酬」:把每天依訊號值丟進不同桶,算各桶之後 +5/+10/+20/+60 個交易日的平均報酬與勝率,再跟全樣本基準比。
本文用 Put/Call ratio(選擇權 put/call 成交量比,常被當作多空情緒/法人部位的代理)對台股指數期貨近月收盤做例子(樣本 2018–2026,約 2000 個交易日)。但結論對任何 sentiment / positioning / z-score / factor 訊號都適用。
對每個交易日 i:
forward_return(i, h) = (close[i+h] - close[i]) / close[i] * 100
依訊號值分桶,對每桶聚合 mean、勝率(>0 比例)、樣本數 n,並列出全樣本基準當對照。光看絕對報酬沒意義,要看「比基準好多少」。
可信的短天期欄(+5d / +10d,樣本最多、視窗重疊最少)長這樣:
| 訊號桶(P/C) | n | +5d 平均(勝率) | +10d 平均(勝率) |
|---|---|---|---|
| 110–130 | 576 | +0.53% (52%) | +1.04% (53%) |
| 130–150 | 363 | +1.22% (61%) | +2.19% (65%) |
| 150–170 | 153 | +0.10% (48%) | +0.46% (51%) |
| 170–200 | 79 | +0.47% (47%) | +1.35% (65%) |
| 全樣本基準 | 2043 | +0.64% (54%) | +1.28% (57%) |
報酬與勝率一路爬到 130–150 見頂,過了 150 直接崩成擲銅板(150–170 的 +5d 勝率只剩 48%)。
這非常符合直覺也符合機制:若 P/C 代表多單部位,適度偏多(130–150)= 趨勢健康延續;極端偏多(150+)= 部位已擠到滿、短期續漲空間被透支。訊號的最佳操作區間不是極端值,而是中段甜蜜點。 很多人把「訊號爆表」當最強買點,剛好做反。
最極端的桶(P/C ≥ 200)看起來像「第二個高峰」:
+5d 平均 +4.77%、勝率 100%、+60d +16.0% ← 看起來無敵
但逐筆攤開就現形(n 只有 6–7,且嚴重群聚):
2018-01-16 +60d -5.4% ← 孤立
2019-04-10 +60d -4.1% ← 孤立
2020-03-18 +60d +19.9% ┐
2020-04-15 +60d +23.9% ├ 同一次危機反彈,被算了 3 次
2020-05-20 +60d +45.2% ┘
2026-02-11 +60d +16.6%
6 個樣本裡有 3 個是同一段危機 V 型反彈,它們的 +60 日前瞻視窗彼此高度重疊,等於拿同一段漲幅重複計數三次。把這個 cluster 拿掉,孤立樣本的 +60d 是 −5.4% / −4.1% / +16.6%,平均只剩 +2.4%(反而低於基準 +7.7%)。
也就是說:那個亮眼的 +16% 幾乎全是一段危機反彈撐出來的假象,長天期根本沒有可靠 edge。 短天期(+5d)因為視窗短、重疊少,結論比較站得住,但 n=6 仍是雜訊等級。
這正是學界講的 overlapping returns bias:重疊報酬會機械性地累積自相關(autocorrelation),讓「look-back / look-forward 越長、訊號看起來越強」,而這個單調遞增的假象換成非重疊樣本就會大幅減弱。正自相關還會膨脹檢定統計量的變異數,導致顯著性被高估。
| 做法 | 為什麼 |
|---|---|
| ✅ 逐筆攤開看,不要只看平均 | 平均會被少數重疊樣本帶走 |
| ✅ 把時間群聚的當「一個 episode」 | 同一段行情的 N 天不是 N 個獨立樣本 |
| ✅ 優先信短天期(+5/+10d)+ 大樣本桶 | 視窗重疊最少、n 最大、最接近獨立 |
| ✅ 對小桶(n<幾十)的亮眼數字一律存疑 | 極端訊號天然樣本少且群聚 |
| ✅ 永遠和全樣本基準比,不看絕對值 | +16% 聽起來很多,但要問「比 buy-and-hold 好嗎」 |
| ✅ 想嚴謹就用非重疊樣本,或 Newey-West / Hansen-Hodrick 修正自相關 | 還原真實顯著性 |