恐懼貪婪指數調倉策略

CNN Fear & Greed Index 低於 20 時大幅加碼、高於 75 時減碼。除了蒙地卡羅與 1970–2025 的歷史回測,還要回答一個更關鍵的問題:這個策略的超額報酬到底來自訊號、來自槓桿,還是來自市場本身的均值回歸?並與最直接的替代方案 2× LETF 正面比較。

CNN Fear & Greed Index 是什麼

由 CNN Business 維護的市場情緒指標,把七項等權重的市場數據標準化後合成 0–100 的分數。 七項成分:市場動能(S&P 500 對 125 日均線)、股價強度(52 週新高 vs 新低家數)、 股價廣度(上漲股成交量 vs 下跌股)、賣權/買權比、市場波動度(VIX 對其 50 日均線)、 避險需求(股票 vs 債券的 20 日報酬差)、垃圾債需求(高收益債與投資級債的利差)。

0–24極度恐懼
Extreme Fear
25–44恐懼
Fear
45–55中性
Neutral
56–75貪婪
Greed
76–100極度貪婪
Extreme Greed

實際歷史分布(2011–2026,3,916 個交易日)

平均 / 中位數
48.75 / 50
標準差
20.94
最小值 / 最大值
0 / 97
極度恐懼佔比
15%
低於 10 的天數
131 天(3.3%)
單日最大跌幅 / 漲幅
−35 / +24
2026-07-30 讀數
34(恐懼)
資料彙整自 FinHacker(原始來源 CNN Business 與 Wayback Machine)。

為什麼不能直接拿歷史回測就下結論

  • 指數只有 2011 年起的資料,涵蓋期間幾乎是一段大多頭 —— 任何「逢低加碼」的策略在這段期間都會好看。
  • 七項成分裡至少五項是價格與波動的函數。所以 FGI 很大程度上是「跌幅 + 波動」的重新包裝,而不是獨立資訊。
  • CNN 曾調整過成分與計算方式,歷史序列並非同一個指標的連續紀錄。
因此本頁改用合成 FGI:從模擬的價格路徑重建一個統計性質與真實指數相符的情緒指標, 再把市場的均值回歸強度 κ 當成可調參數。這樣才能分離「訊號有效」與「市場剛好會反彈」兩件事。

策略規則:恐懼加碼

目標股票曝險倍率 mt = f( FGIt−1 ) ← 訊號延遲 1 日,避免前視
目標曝險 E* = min( mt × w0 × Vt , Lmax × Vt )
現金 C = Vt − E* (C < 0 即為借款,付融資利率)
只有當 |實際倍率 − 目標倍率| > 緩衝帶 時才調倉(降低換手)

五個級距的加碼倍率都可以直接改。預設值把「極度恐懼」設成 2.0×(大幅加碼)、 「極度貪婪」設成 0.5×(減碼一半),中性時維持 1.0×。

四個對照組(這才是重點)

  • 買進持有:永遠 1.0× 曝險,基準線。
  • 2× LETF:每日重設兩倍曝險的槓桿 ETF(SSO 型,內扣 0.89%)。 它代表「不看訊號、單純吃滿槓桿」的路線 —— 平均曝險 2.0×,遠高於恐懼加碼的 1.1×。 兩者的勝負完全取決於取樣期間,這是本頁歷史回測最刺眼的一張表。
  • 反向策略:把倍率表左右顛倒 —— 貪婪加碼、恐懼減碼。如果恐懼加碼有效,反向就該顯著更差。
  • 訊號位移:把同一條 FGI 序列環狀位移一段隨機天數後,套用完全相同的規則。 位移後的訊號保留了一模一樣的分布、自我相關結構與換手率,唯一被破壞的是它與價格的時間對齊。 這是檢驗「訊號時點是否真的有資訊」最乾淨的對照組 —— 如果恐懼加碼贏不過位移版本,那超額報酬就只是平均曝險與運氣。

蒙地卡羅模擬

四個策略跑在同一條價格路徑與同一條 FGI 序列上(隨機訊號組只打亂訊號順序),因此差異純粹來自規則。

① 市場模型

κ = 0 是純隨機漫步(效率市場);κ = 1 表示偏離 125 日均線 20% 時,每年產生約 20% 的回歸拉力。 κ 是這一頁最重要的旋鈕。

② FGI 合成參數

雜訊代表 FGI 中與價格無關的成分(選擇權、信用利差等)。設 0 表示 FGI 完全由價格與波動決定。

③ 加碼倍率表

④ 成本與投入

⑤ 2× LETF 對照

每日重設,融資成本沿用上方的借款年利率(SSO 內扣約 0.89%、UPRO 0.91%)。

⑥ 模擬設定

四策略的中位數淨值路徑(對數刻度)。

結果摘要

合成 FGI 的分布檢驗

合成指標若與 CNN 實際分布差太多,後面的結論就不能外推。

FGI < 20 之後的前瞻報酬

直接檢驗訊號的預測力:極度恐懼之後的報酬是否真的高於全樣本平均。

示範路徑:價格、FGI 與曝險倍率

第一條模擬路徑的前 8 年,看訊號實際上長什麼樣子、策略在什麼時候加碼。

上:價格指數(對數)。背景色帶為 FGI 級距。
下:合成 FGI(綠)與策略的股票曝險倍率(深綠)。

歷史回測:S&P 500 實際年度報酬

用 S&P 500 的實際年度總報酬(Damodaran 1970–2025,含 1973–74、2000–02、2008、2022 的空頭)合成日資料, 年度複利精確等於歷史值;再由這條路徑計算合成 FGI,五個策略各跑一次。

期間
期初單筆投入,對數刻度。所有策略共用同一條價格路徑與同一條合成 FGI。
這段回測的三個必要保留: ① 年內路徑是合成的 —— 真實的 2008 年是連續數月的下跌,合成版本把跌幅平均分散,會低估 LETF 的耗損與恐懼加碼的回撤深度。 ② FGI 是代理指標,不是 CNN 官方數值;2011 年以前根本不存在這個指數。 ③ 只有一條路徑,沒有信賴區間。上方蒙地卡羅的分位數才是判斷依據。

關鍵檢驗:策略的超額報酬來自哪裡

固定所有其他參數,只改變市場的均值回歸強度 κ,看「恐懼加碼 − 買進持有」的年化差距如何隨 κ 變化。 按上方的「掃描均值回歸強度 κ」執行。

尚未執行掃描。

怎麼看這些結果

合成 FGI 的建構方式

以四個可由價格路徑計算的成分近似 CNN 的七項指標,每項用指數加權移動平均做標準化(只用過去資料,無前視偏誤):

z₁ = 動能:log(Pt / MA125) 標準化  (對應 市場動能)
z₂ = 距 52 週高點的跌幅 標準化    (對應 股價強度、廣度)
z₃ = −(20 日已實現波動 標準化)   (對應 VIX 波動度)
z₄ = 20 日報酬 標準化        (對應 避險需求、垃圾債需求)
FGI = clamp( 50 + 21 × gain × ( z̄ + 雜訊 ) , 0 , 100 )

三個必須誠實面對的結論

實務上的其他問題

指數規格與歷史統計取自 CNN Business 與 FinHacker(2011–2026,3,916 個交易日)。取得日 2026-07-30。 本頁的 FGI 為合成代理指標,非 CNN 官方數值。教學用途,不構成投資建議。