Skip to content

Heston (1993) — Closed-Form Stochastic Volatility

Tác giả: Steven L. Heston (1993) Nguồn: Review of Financial Studies, Vol. 6, No. 2 Tag: mới:2026-05-16 #stochastic-volatility #option-pricing #heston

Nội dung chính (Core Concept)

Mô hình Black-Scholes (1973) giả định biến động không đổi — nhưng thực tế options market thể hiện rõ rệt volatility smile/skew: out-of-the-money puts đắt hơn flat-vol mô hình dự đoán. Heston đề xuất:

$$ dS_t = \mu S_t , dt + \sqrt{v_t}, S_t , dW_t^{(1)} $$ $$ dv_t = \kappa(\theta - v_t), dt + \sigma \sqrt{v_t}, dW_t^{(2)} $$ $$ \text{Corr}(dW^{(1)}, dW^{(2)}) = \rho $$

trong đó v_t là instantaneous variance theo CIR (Cox-Ingersoll-Ross) process — mean-revert quanh θ với tốc độ κ. Tham số ρ (negative trong equities) tạo skew; σ (vol-of-vol) tạo smile curvature.

Đóng góp vàng: dù dynamics khá phức tạp, Heston cung cấp giải pháp dạng đóng cho European call/put thông qua characteristic function + Fourier inversion. Trước Heston, các mô hình SV (Hull-White 1987, Stein-Stein 1991) chỉ có numerical solutions. Lưu lượng tính toán giảm đáng kể → Heston được áp dụng rộng khắp trong quant trading desks.

Ý tưởng chính cho giao dịch (Key Trading Insight)

Heston không trực tiếp là một "alpha signal" mà là framework định giá. Hai cách dùng quan trọng:

  1. Variance Risk Premium (VRP): implied vol từ Heston-calibrated > realized vol → bán options/variance swaps capture premium. VRP ~3-5% năm trên SPX trong dài hạn (Carr-Wu 2009).
  2. Vol surface modeling: với 5 tham số (v_0, κ, θ, σ, ρ), có thể fit smile/skew toàn surface; phát hiện mispricing ở các strikes outliers (relative-value vol trading).
  3. Dynamic hedging: hedge delta + vega + vanna theo Heston greeks, thay vì BS — chính xác hơn khi vol biến động.

Hệ quả: hiểu Heston giúp đọc được smirk shape: skew steep = ρ âm mạnh = thị trường lo crash; smile flat = vol-of-vol thấp.

Ứng dụng trên VN30F

VN30 options market còn mỏng nhưng Heston có vai trò gián tiếp:

  1. Realized variance signal: tính RV daily từ 5-min returns; so sánh với GARCH/HAR forecast → identify vol mispricing.
  2. Implied skew proxy: nếu market makers VN30 quote calls/puts với skew, fit ρ để xem sentiment crash của institutional players.
  3. Risk management: portfolio short premium phải hedge tail. Heston cung cấp model để định lượng tail vega (vol-of-vol exposure).
  4. Crypto extension: trên BTC/ETH options (Deribit), Heston calibration cho insight về regime — đặc biệt khi smile flip giữa contango và backwardation.

Code minh họa (Python)

python
import numpy as np
from scipy.integrate import quad

def heston_char_func(phi, S0, K, T, r, v0, kappa, theta, sigma, rho):
    """Heston characteristic function."""
    a = kappa * theta
    b = kappa
    d = np.sqrt((rho * sigma * 1j * phi - b)**2 + sigma**2 * (1j * phi + phi**2))
    g = (b - rho * sigma * 1j * phi - d) / (b - rho * sigma * 1j * phi + d)
    C = r * 1j * phi * T + (a / sigma**2) * (
        (b - rho * sigma * 1j * phi - d) * T - 2 * np.log((1 - g * np.exp(-d * T)) / (1 - g))
    )
    D = ((b - rho * sigma * 1j * phi - d) / sigma**2) * (
        (1 - np.exp(-d * T)) / (1 - g * np.exp(-d * T))
    )
    return np.exp(C + D * v0 + 1j * phi * np.log(S0))

def heston_call_price(S0, K, T, r, v0, kappa, theta, sigma, rho):
    """European call via Fourier inversion (Heston 1993)."""
    def integrand(phi, Pnum):
        if Pnum == 1:
            num = np.exp(-1j * phi * np.log(K)) * heston_char_func(
                phi - 1j, S0, K, T, r, v0, kappa, theta, sigma, rho)
            denom = 1j * phi * heston_char_func(-1j, S0, K, T, r, v0, kappa, theta, sigma, rho)
        else:
            num = np.exp(-1j * phi * np.log(K)) * heston_char_func(
                phi, S0, K, T, r, v0, kappa, theta, sigma, rho)
            denom = 1j * phi
        return np.real(num / denom)

    P1 = 0.5 + (1/np.pi) * quad(integrand, 1e-6, 100, args=(1,))[0]
    P2 = 0.5 + (1/np.pi) * quad(integrand, 1e-6, 100, args=(2,))[0]
    return S0 * P1 - K * np.exp(-r * T) * P2

# Ví dụ
price = heston_call_price(S0=100, K=100, T=1.0, r=0.02,
                          v0=0.04, kappa=2.0, theta=0.04,
                          sigma=0.3, rho=-0.7)
print(f'Heston call price: {price:.4f}')

Tài liệu tham khảo

  • Heston, S. L. (1993). A closed-form solution for options with stochastic volatility with applications to bond and currency options. RFS, 6(2), 327-343.
  • Carr, P., & Wu, L. (2009). Variance Risk Premiums. RFS, 22(3), 1311-1341.
  • Gatheral, J. (2006). The Volatility Surface: A Practitioner's Guide. Wiley.

Powered by dautu.tech