Heston 隨機波動率模型與快速傅立葉變換:Carr-Madan FFT 定價全拆解|Quant Math 第 7 講筆記

第 7 課・共 14 課

⚠️ 本站內容僅作教育用途,不構成投資建議。投資涉及風險,作出任何投資決定前請諮詢持牌專業人士。
目錄

這是 Roman Paolucci 量化金融數學系列第 7 講的筆記,緊接第 6 講的有限差分法。上一講解決了「PDE 沒有解析解怎麼辦」的一般問題,本講針對 Heston 隨機波動率模型給出一條快得多的專用路線:蒙地卡羅模擬在校準場景下太慢,而 Carr-Madan 的快速傅立葉變換 Fast Fourier Transform(FFT)反演技巧,可以在不模擬任何路徑的情況下直接由特徵函數還原期權價格。全講把概率論(特徵函數)、訊號處理(傅立葉變換)與金融工程(風險中性期望)三塊拼圖扣在一起。

學習重點

詳細筆記

由期權收益到期望定價

講者由最基本的觀察開始:期權到期時的收益是股價的已知函數(行使價 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$ 相關——這正是捕捉市場偏斜與槓桿效應的來源。

Heston 模型的隨機微分方程組(截圖出自原片(Roman Paolucci,2025):股價過程、均值回歸方差過程與相關結構)

截圖出自原片(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 演算法五步

Carr-Madan FFT 演算法五個步驟(截圖出自原片(Roman Paolucci,2025):特徵函數、阻尼公式、離散網格、逆 FFT 與去阻尼還原)

截圖出自原片(Roman Paolucci,2025):由 Heston 特徵函數到還原認購價格的完整流程與各步公式。

  1. 構造 Heston 特徵函數 $\phi_T(u)$:即風險中性概率的傅立葉變換(上式)。
  2. 加阻尼並套用 Carr-Madan 公式:引入 $e^{\alpha k}$,以特徵函數表達阻尼價格的變換 $\hat{c}(v)$。
  3. 離散化網格:頻率 $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}$。
  4. 逆 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)。
  5. 去阻尼還原:$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 迎新獎賞,本站獲得營運支持。 立即開戶 → (聯盟連結|投資涉及風險,受條款及細則約束,此資料僅可於香港境內分發)

欣利克的看法

名詞解釋

常見問題 FAQ

為甚麼不能直接對期權價格做傅立葉變換?

因為標準認購價格函數不滿足平方可積這個必要條件——當對數行使價趨向負無窮時,價格趨於一個非零常數而非零,積分不收斂。Carr-Madan 乘上阻尼因子 $e^{\alpha k}$ 人為壓低尾部,令函數平方可積,變換才得以進行;最後再除以同一因子還原價格。

FFT 定價和蒙地卡羅定價哪個好?

取決於用途。需要為整個行使價網格快速報價、或迭代校準模型參數時,FFT 一次反演產出整排價格,速度壓倒性佔優。處理路徑依賴或美式特徵、或模型沒有已知特徵函數時,蒙地卡羅(或第 6 講的 PDE 方法)仍是首選。兩者結果應互相收斂,正好用作交叉驗證。

特徵函數和概率密度函數是甚麼關係?

一一對應。特徵函數 $\phi_X(t) = \mathbb{E}[e^{itX}]$ 本質是密度函數的傅立葉變換;知道特徵函數,經傅立葉反演可唯一還原密度函數,反之亦然。而且任何隨機變量的特徵函數必然存在(密度函數則未必有簡潔形式),這正是它能充當定價橋樑的原因。

原影片

本文整理自以下影片,版權屬原創作者所有,建議配合原片觀看:

來源:https://www.youtube.com/watch?v=2-oAlnZV6hA

🏦 ZA Bank 開戶優惠

本站所有內容免費提供。多使用網站的推薦碼,就是對我們繼續製作優質內容的最大鼓勵和支持 🙏

去 ZA Bank 開戶,享價值 HKD 2,000 迎新獎賞,仲有機會享 USD 30 指定美股兌換券!

  • 💛 全線上開戶,無需前往分行
  • 💛 無最低存款要求,零賬戶管理費
  • 💛 24x7 銀行服務

專屬邀請碼:P20923

立即開戶 → (聯盟連結)