Heston 隨機波動率模型與快速傅立葉變換:Carr-Madan FFT 定價全拆解|Quant Math 第 7 講筆記
第 7 課・共 14 課
目錄
這是 Roman Paolucci 量化金融數學系列第 7 講的筆記,緊接第 6 講的有限差分法。上一講解決了「PDE 沒有解析解怎麼辦」的一般問題,本講針對 Heston 隨機波動率模型給出一條快得多的專用路線:蒙地卡羅模擬在校準場景下太慢,而 Carr-Madan 的快速傅立葉變換 Fast Fourier Transform(FFT)反演技巧,可以在不模擬任何路徑的情況下直接由特徵函數還原期權價格。全講把概率論(特徵函數)、訊號處理(傅立葉變換)與金融工程(風險中性期望)三塊拼圖扣在一起。
學習重點
- Heston 模型的定位:股價仍走乘法型 SDE,但常數波動率 $\sigma$ 換成自身隨機、均值回歸的方差過程 $v_t$,兩個布朗運動以 $\rho$ 相關——能產出與市場一致的報價,但定價 PDE 無閉式解。
- 蒙地卡羅的真正瓶頸不在定價,在校準:單次定價模擬一百萬條路徑無妨,但校準是迭代優化,每改一次參數就要重跑一批路徑,慢得無法實用。
- 傅立葉變換=時域與頻域的一一映射;離散版(DFT)是電腦上的實際操作,FFT 只是同一變換的快速算法(時間複雜度由 $O(N^2)$ 改善)。
- 特徵函數是概率分佈的傅立葉變換:$\phi_X(t) = \mathbb{E}[e^{itX}]$,與密度函數一一對應,可自由往返。
- Carr-Madan 的兩個關鍵動作:認購期權價格函數不平方可積、不能直接做傅立葉變換,故先乘阻尼因子 $e^{\alpha k}$;變換後把 Heston 對數股價的特徵函數(已知閉式)代入,再反演回價格。
- 整套流程五步:構造 Heston 特徵函數 → 加阻尼 → 離散化頻率與對數行使價網格 → 逆 FFT → 去阻尼還原,配 put-call parity 得認沽價格。
詳細筆記
由期權收益到期望定價
講者由最基本的觀察開始:期權到期時的收益是股價的已知函數(行使價 100,到期股價 120 則認購收益 20;股價 80 則收益 0),但我們不知道到期股價落在哪裡。面對隨機性,最佳猜測是期望值——於是公平價格寫成一個(經貼現的)風險中性期望。Black-Scholes 框架假設股價服從幾何布朗運動 Geometric Brownian Motion:
$$dS_t = \mu S_t\, dt + \sigma S_t\, dW_t$$在這個框架下產出價格的辦法很多:解 PDE、逼近 PDE(即第 6 講)、模擬路徑取平均(大數定律),甚至直接解 SDE 得出期終分佈再模擬——而且 Black-Scholes 有閉式解,代參數即得價。
問題在於 Black-Scholes 報不出與市場一致的價格:常數波動率假設對應平的隱含波動率曲面,與市場觀察到的偏斜(skew)不符;用它報價會出現內在矛盾、暴露套利風險——在衍生工具這個零和遊戲裡,長期報出可被套利的價格等於持續輸錢。
Heston 模型:讓波動率自己也隨機
Heston 隨機波動率模型保留乘法型股價動態,但把常數 $\sigma$ 換成隨機方差 $v_t$:
$$dS_t = r S_t\, dt + \sqrt{v_t}\, S_t\, dW_t^1$$$$dv_t = \kappa(\theta - v_t)\, dt + \xi \sqrt{v_t}\, dW_t^2$$$$dW_t^1\, dW_t^2 = \rho\, dt$$方差過程是均值回歸的(長期均值 $\theta$、回歸速度 $\kappa$、波動率的波動率 $\xi$),兩個布朗運動以 $\rho$ 相關——這正是捕捉市場偏斜與槓桿效應的來源。

截圖出自原片(Roman Paolucci,2025):Heston 框架的三條方程,以及「無法如 Black-Scholes 般顯式求解」的問題聲明。
代價是:Heston 的定價 PDE 沒有閉式解。當然可以模擬兩條相關路徑再取平均收益——講者現場演示了——單次定價其實夠快。真正的麻煩在校準 Calibration:把模型參數貼合市場隱含波動率曲面是一個最小化問題,需要迭代調參,而每調一次就要重新模擬一百萬條路徑。這才是「蒙地卡羅太慢」的準確含義,也是 FFT 登場的動機。
傅立葉變換、DFT 與 FFT
講者刻意不糾纏傅立葉分析本身,只保留定價所需的直覺:傅立葉變換 Fourier Transform 把時域訊號一對一映射到頻域:
$$F(\omega) = \int_{-\infty}^{\infty} f(t)\, e^{-i\omega t}\, dt$$電腦沒有連續與無窮,實際操作的是離散傅立葉變換 Discrete Fourier Transform(積分變求和):
$$X_k = \sum_{n=0}^{N-1} x_n\, e^{-\frac{i 2\pi k n}{N}}$$DFT 的時間複雜度是 $O(N^2)$;快速傅立葉變換 FFT 是同一變換的快速算法,輸入輸出完全相同,只是更快。反向操作由逆變換完成:時域 → 頻域 → 逆變換 → 回到原訊號,絲毫不差。講者以不同周期長度的循環函數示範:頻域圖直接暴露訊號的周期長度(附帶一提,這在時間序列的季節性分析也有應用)。
特徵函數:分佈的傅立葉變換
特徵函數 Characteristic Function 把概率分佈變換到頻域:
$$\phi_X(t) = \mathbb{E}\!\left[e^{itX}\right] = \int_{-\infty}^{\infty} e^{itx} f_X(x)\, dx$$展開期望的積分定義後,它與傅立葉變換在數學上等價(只差符號約定)。其關鍵性質:與隨機變量的分佈一一對應——給我特徵函數,做傅立葉反演就能還原密度函數;任何隨機變量的特徵函數必然存在。講者用骰子(離散,PMF)與常態分佈(連續,PDF 與特徵函數的實部、虛部並排展示)兩個例子示範這種自由往返。
同時講者點出伏筆:開頭的期權定價式本身就是一個期望、一個積分——與特徵函數的結構驚人地相似,這絕非巧合。
Carr-Madan:阻尼因子與反演公式
回到 Heston 框架下的定價問題。認購期權價格為:
$$C(K, T) = e^{-rT}\, \mathbb{E}^{\mathbb{Q}}\!\left[\max(S_T - K, 0)\right], \qquad \mathbb{E}^{\mathbb{Q}}\!\left[\max(S_T-K,0)\right] = \int_K^{\infty} (S_T - K)\, f_{S_T}(x)\, dx$$這個積分沒有閉式解。能否直接對價格函數做傅立葉變換?不行——標準認購價格函數不是平方可積 Square-Integrable 的(當對數行使價趨向 $-\infty$ 時函數趨於非零常數),不滿足傅立葉變換的必要條件。
Carr-Madan 的巧思是引入阻尼因子 Damping Factor $e^{\alpha k}$($\alpha > 0$)。記 $k = \ln K$、$s = \ln S_0$,定義阻尼後的認購價格:
$$c_T(k) = e^{\alpha k}\, C_T(k)$$$c_T(k)$ 現在平方可積,可以取傅立葉變換 $\psi_T(v) = \int_{-\infty}^{\infty} e^{ivk} c_T(k)\, dk$。把定價積分代入、交換雙重積分的次序、算出內層積分並化簡,得到全講的核心等式——阻尼價格的傅立葉變換可以用 Heston 對數股價過程的特徵函數表示:
$$\hat{c}(v) = \frac{e^{-rT}\, \phi_T\!\big(v - i(\alpha + 1)\big)}{\alpha^2 + \alpha - v^2 + i(2\alpha + 1)v}$$這一式之所以神奇:時域裡 $f_{S_T}$ 未知、積分不可解;但在頻域,Heston 對數股價的特徵函數 $\phi_T(u)$ 有已知閉式,等式右邊每一項都定義明確。於是「時域解不了 → 變換到頻域(一切已知)→ 逆變換回時域得到價格」的迴路打通了。講者特別強調:整套方法成立的前提,正是我們手上握有 Heston 的特徵函數;沒有它,逆變換之後仍是一條解不了的式子。
原片給出的 Heston 特徵函數形式為:
$$\phi_T(u) = \exp\!\left(iu(s + rT) + \frac{v_0}{\sigma^2}\left(\frac{1 - e^{-dT}}{1 - g e^{-dT}}\right)(a - \rho\sigma i u - d)\right) \times \exp\!\left(\frac{\theta\kappa}{\sigma^2}\left(2\ln\frac{1 - g e^{-dT}}{1 - g} + \cdots\right)\right)$$其中 $a = \kappa - \rho\sigma i u$,$g = \dfrac{a - \rho\sigma i u - d}{a - \rho\sigma i u + d}$,$d = \sqrt{(\rho\sigma i u - a)^2 + \sigma^2(iu + u^2)}$(原片畫面中第二個指數因子的末項被講者影像遮擋,未能完整核實;標準文獻形式該處為 $(a - \rho\sigma i u - d)T$,動手實作時應以講者 GitHub 筆記本的程式為準)。
Carr-Madan FFT 演算法五步

截圖出自原片(Roman Paolucci,2025):由 Heston 特徵函數到還原認購價格的完整流程與各步公式。
- 構造 Heston 特徵函數 $\phi_T(u)$:即風險中性概率的傅立葉變換(上式)。
- 加阻尼並套用 Carr-Madan 公式:引入 $e^{\alpha k}$,以特徵函數表達阻尼價格的變換 $\hat{c}(v)$。
- 離散化網格:頻率 $v_j = j\Delta_v$($j = 0, \dots, N-1$);對數行使價 $k_m = k_{\min} + m\Delta_k$($m = 0, \dots, N-1$),且 $\Delta_k \Delta_v = \frac{2\pi}{N}$。
- 逆 FFT:由頻域回到對數行使價域,$c(k_m) = \dfrac{1}{2\pi} \displaystyle\sum_{j=0}^{N-1} e^{-i v_j k_m}\, \hat{c}(v_j)\, \Delta_v\, w_j$,其中 $w_j$ 是數值積分權重(講者用 Simpson 權重,並預告另開一講談求積法 quadrature)。
- 去阻尼還原:$C(k_m) = e^{-\alpha k_m} c(k_m)$,由 $K_m = e^{k_m}$ 得各行使價對應的認購價格;認沽價格再以 put-call parity 由認購價推出。
一個要留意的細節:步驟 3 把連續積分換成離散求和,理論上精確的反演因此引入離散化誤差——只要離散連續對象就躲不開,網格越細越接近連續極限。
實作與驗證
講者在 Python 中把 Heston 參數、特徵函數、Simpson 權重與 FFT 調用封裝好(程式於 Quant Guild GitHub 公開),現場運行幾乎即時產出單個期權價格;再產出 80–120 行使價的價格網格與蒙地卡羅結果對照,兩者大致重合。收斂鏈條是:蒙地卡羅 →(路徑增加)FFT 結果 →(網格加密)理論價格。實作難度講者不諱言「相當花時間」,最大工程量在正確實現那條特徵函數。
🙏 覺得內容有用?本站所有內容免費提供,使用推薦碼開戶就是支持我們繼續營運的最大鼓勵:
ZA Bank 邀請碼 P20923
—— 你享 HKD 2,000 迎新獎賞,本站獲得營運支持。
立即開戶 →
(聯盟連結|投資涉及風險,受條款及細則約束,此資料僅可於香港境內分發)
欣利克的看法
- FFT 定價解決的是校準速度,不是定價本身。 本講最容易誤讀的一點是「蒙地卡羅太慢」——單次定價它並不慢。真正的場景是交易台要把模型參數貼合整張隱含波動率曲面,優化器每次試參都要重算全網格價格,FFT 一次反演產出整排行使價的優勢才成立。讀者自學時若只做研究性定價,蒙地卡羅反而更易實現、更易除錯(可對照本站有限差分一講,三條路線各有適用面)。
- 特徵函數已知是整棟大廈的地基。 Carr-Madan 的代數技巧(阻尼、換序、反演)適用於任何模型,但只有當模型的對數價格特徵函數有閉式表達(Heston、Black-Scholes、Merton 跳擴散等)時才有效。這解釋了文獻為何偏愛「仿射」類模型——不是因為它們最貼近真實,而是因為它們算得動。
- 阻尼參數 $\alpha$ 與網格間距 $\Delta_k \Delta_v = 2\pi/N$ 都是實作陷阱。 $\alpha$ 影響數值穩定,網格間距互相綁定意味頻率分辨率與行使價覆蓋範圍此消彼長。講者影片略過調參細節,自行重現時這兩處最容易出錯,宜直接對照其開原始碼。
- 資料時效提醒: 影片於 2025 年 8 月上載。Carr-Madan(1999)方法本身屬成熟文獻,內容無時效問題;但 Heston 模型對短期限偏斜(尤其 0DTE)的擬合能力近年受到粗糙波動率模型挑戰,本系列後續的 Volterra 過程一講正是沿這條線發展,可配合閱讀。
名詞解釋
- 期權 Option:賦予持有人以指定價格買賣資產的權利而非義務的衍生合約。
- 認購期權 Call Option:給予持有人以行使價買入資產權利的期權;本講的 FFT 流程以其為定價對象。
- 認沽期權 Put Option:給予持有人以行使價賣出資產權利的期權;本講以 put-call parity 由認購價推算。
- 行使價 Strike Price:期權合約約定的行使價格;Carr-Madan 方法在對數行使價 $k = \ln K$ 上建立網格。
- 波動率 Volatility:資產價格變動幅度的量度;Heston 模型把它提升為隨機過程。
- 均值回歸 Mean Reversion:變量偏離長期均值後傾向回歸的特性;Heston 方差過程的核心結構。
- 無風險利率 Risk-Free Rate:零風險投資的回報率;風險中性定價中股價的漂移項與貼現率。
- 蒙地卡羅模擬 Monte Carlo Simulation:以隨機路徑平均逼近期望的定價方法;本講用作 FFT 結果的對照基準。
- 無套利 No Arbitrage:不存在無風險套戥的假設;報價不一致即暴露套利風險,是放棄 Black-Scholes 的動機。
常見問題 FAQ
為甚麼不能直接對期權價格做傅立葉變換?
因為標準認購價格函數不滿足平方可積這個必要條件——當對數行使價趨向負無窮時,價格趨於一個非零常數而非零,積分不收斂。Carr-Madan 乘上阻尼因子 $e^{\alpha k}$ 人為壓低尾部,令函數平方可積,變換才得以進行;最後再除以同一因子還原價格。
FFT 定價和蒙地卡羅定價哪個好?
取決於用途。需要為整個行使價網格快速報價、或迭代校準模型參數時,FFT 一次反演產出整排價格,速度壓倒性佔優。處理路徑依賴或美式特徵、或模型沒有已知特徵函數時,蒙地卡羅(或第 6 講的 PDE 方法)仍是首選。兩者結果應互相收斂,正好用作交叉驗證。
特徵函數和概率密度函數是甚麼關係?
一一對應。特徵函數 $\phi_X(t) = \mathbb{E}[e^{itX}]$ 本質是密度函數的傅立葉變換;知道特徵函數,經傅立葉反演可唯一還原密度函數,反之亦然。而且任何隨機變量的特徵函數必然存在(密度函數則未必有簡潔形式),這正是它能充當定價橋樑的原因。
原影片
本文整理自以下影片,版權屬原創作者所有,建議配合原片觀看: