Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

헤스턴 모델과 변동성 스마일의 이해

단일 변동성 수치로는 옵션 체인 전체를 설명할 수 없습니다. 헤스턴 모델이 분산을 확률 변수로 다루는 방식과 각 매개변수가 변동성 스마일에 미치는 영향을 상세히 분석합니다.

헤스턴 모델(Heston model)의 개요

헤스턴 모델은 변동성을 고정된 값이 아닌 확률 변수로 취급하는 옵션 가격 결정 모델입니다. 이 모델은 주가와 해당 주가의 분산이라는 두 가지 변동 요소를 포함하며, 각각은 고유한 확률적 충격을 가집니다. 이러한 두 번째 무작위성 원천이 모델에서 변동성 스마일(volatility smile)을 도출할 수 있게 합니다. 블랙-숄즈(Black-Scholes) 모델이 가정하는 단일 상수 변동성은 행사가격(strike price) 전반에 걸쳐 평평한 선만을 그려낼 뿐이며, 실제 시장의 어떤 옵션 체인(option chain)도 평평한 적이 없습니다.

단일 변동성 수치가 옵션 체인 전체를 설명할 수 없는 이유

내재변동성(implied volatility)은 옵션 가격 결정 공식에 대입했을 때 실제 시장에서 거래되는 옵션 가격을 산출해내는 변동성 입력값입니다. 내재변동성 계산 방법에 관한 당사 페이지에서 설명하듯 계약별로 이를 역산해보면, 동일한 만기 내에서도 행사가격에 따라 단일 수치가 아닌 곡선 형태가 도출됩니다. 아래 패널은 2026년 상반기 중 잔존만기가 20일에서 45일 남은 모든 SPY 계약을 대상으로, 행사가격과 현물 가격의 괴리율을 2% 단위 밴드로 분류하여 각 밴드 내 내재변동성 평균을 산출한 것입니다.

조회SPY 행사가 거리별 내재 변동성(Implied Volatility, IV), 만기 20~45일 (2026년 1월~6월)
모든 수치 뒤에 숨겨진 정확한 SQL
WITH
    (
        SELECT avg(implied_volatility)
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'SPY'
          AND date BETWEEN '2026-01-02' AND '2026-06-30'
          AND iv_converged = 1
          AND volume > 0
          AND days_to_expiry BETWEEN 20 AND 45
          AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.01
    ) AS atm_iv
SELECT
    concat(if(m_bucket > 0, '+', ''), toString(m_bucket), '%') AS moneyness,
    round(avg(iv) * 100, 2)                                    AS iv_pct,
    round((avg(iv) - atm_iv) * 100, 2)                          AS iv_vs_atm_pts,
    count()                                                     AS contracts
FROM
(
    SELECT
        implied_volatility AS iv,
        toInt16(round((toFloat64(strike_price) / toFloat64(underlying_close) - 1) * 50) * 2) AS m_bucket
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.12
)
GROUP BY m_bucket
HAVING count() >= 100
ORDER BY m_bucket
Run this yourself

현물 가격보다 행사가격이 훨씬 낮은 -12% 밴드의 평균 내재변동성은 28.05%이었으며, 이는 동일 기간 등가격(at-the-money) 평균 대비 11.61 변동성 포인트 높은 수준입니다. 콜옵션 측의 +12% 밴드는 평균 15.56%를 기록했습니다. 그 사이의 밴드들은 해당 현상의 명칭이 유래된 곡선을 그리며, 이처럼 한쪽으로 치우친 형태를 변동성 스큐(volatility skew)라고 합니다. 단일 변동성 파라미터를 사용하는 모델로는 이러한 현상을 전혀 반영할 수 없습니다. 해당 모델은 모든 행사가격에 대해 만기 시점의 가격을 단일 분포로 가정하여 산출하므로, 역산 시 구조적으로 모든 행사가격에서 동일한 수치만 반환하기 때문입니다.

헤스턴(Heston) 모델의 변화

헤스턴 모델은 주가의 무작위 충격(random shock)을 유지하면서 분산(variance)에 대한 두 번째 프로세스를 추가합니다. 기호 대신 말로 풀이하면 다음과 같습니다.

  • 다음 순간의 주가 움직임은 추세(drift)에 무작위 충격을 더한 것이며, 이는 현재 분산의 제곱근으로 조정됩니다.
  • 분산의 움직임은 고정된 속도로 장기 수준을 향해 회귀하는 힘에 자체적인 충격을 더한 것이며, 이는 변동성의 변동성(vol-of-vol) 매개변수와 현재 분산의 제곱근으로 조정됩니다.
  • 두 충격은 -1과 1 사이의 숫자로 상관관계를 가집니다.

이러한 제곱근 조정은 콕스-잉거솔-로스(Cox-Ingersoll-Ross) 형태를 띠며, 알아둘 만한 중요한 역할을 합니다. 즉, 분산이 0에 가까워질수록 분산 충격도 함께 줄어들어 분산이 음수로 변하는 것을 방지합니다. 회귀 속도의 두 배에 장기 분산을 곱한 값이 변동성의 변동성의 제곱보다 클 때, 펠러(Feller) 조건이라 불리는 이 상태가 유지되면 분산은 엄격하게 양수 값을 유지합니다.

분산 자체는 관측할 수 없습니다. 그 대응 지표인 내재변동성(implied volatility)은 관측 가능하지만, 고정되어 있지 않습니다. 아래 패널은 2026년 2분기 동안 두 종목의 등가격(at-the-money) 내재변동성을 세션당 하나씩 기록하여 나타낸 것입니다.

조회일별 등가격(At-the-money, ATM) IV 추이, SPY 및 NVDA (2026년 4월~6월)
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    toString(date)                                                        AS session_date,
    round(avgIf(implied_volatility, underlying_symbol = 'SPY') * 100, 2)  AS spy_atm_iv_pct,
    round(avgIf(implied_volatility, underlying_symbol = 'NVDA') * 100, 2) AS nvda_atm_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('SPY', 'NVDA')
  AND date BETWEEN '2026-04-01' AND '2026-06-30'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.05
GROUP BY date
HAVING countIf(underlying_symbol = 'SPY') > 0
   AND countIf(underlying_symbol = 'NVDA') > 0
ORDER BY date
Run this yourself

SPY는 2026-04-0120.39%로 기간을 시작하여 2026-06-3014.45%로 마감했습니다. NVDA는 동일한 62 세션 동안 36.83%에서 38.22%까지 움직였습니다. 두 선 모두 고정되어 있지 않으며, 그렇다고 한없이 멀어지지도 않습니다. 두 종목 모두 배회하다가 특정 영역으로 되돌아오는 모습을 보입니다. 해당 그림의 양 끝단을 가격 결정하기 위해서는 시작 수준과 장기 수준, 그리고 그 사이를 당기는 회귀 속도가 필요합니다.

헤스톤(Heston) 모델의 각 파라미터가 변동성 곡면에 미치는 영향

평균 회귀와 장기 수준이 기간 구조를 결정합니다

옵션의 가치는 오늘 현재의 분산이 아니라 만기까지 예상되는 평균 분산에 따라 결정됩니다. 다음 주에 만기가 도래하는 계약의 경우 오늘의 분산이 평균에 지배적인 영향을 미치며, 1년 뒤 만기인 계약은 장기 수준(long-run level)이 지배적입니다. 평균 회귀 속도(speed) 파라미터는 기대치가 이 두 지점 사이를 얼마나 빠르게 이동하는지를 결정하며, 이는 내재변동성(implied volatility)이 만기별로 얼마나 가파른 기울기를 형성하는지를 고정합니다.

조회만기 잔존 기간별 근가격(Near-the-money) IV (2026년 1월~6월)
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    tenor,
    round(avgIf(implied_volatility, underlying_symbol = 'SPY') * 100, 2)  AS spy_iv_pct,
    round(avgIf(implied_volatility, underlying_symbol = 'NVDA') * 100, 2) AS nvda_iv_pct
FROM
(
    SELECT
        implied_volatility,
        underlying_symbol,
        days_to_expiry,
        multiIf(
            days_to_expiry <= 7,   '1 to 7 days',
            days_to_expiry <= 21,  '8 to 21 days',
            days_to_expiry <= 45,  '22 to 45 days',
            days_to_expiry <= 90,  '46 to 90 days',
            days_to_expiry <= 180, '91 to 180 days',
                                   '181 to 365 days') AS tenor
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'NVDA')
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 1 AND 365
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.02
)
GROUP BY tenor
HAVING countIf(underlying_symbol = 'SPY') > 0
   AND countIf(underlying_symbol = 'NVDA') > 0
ORDER BY min(days_to_expiry)
Run this yourself

2026년 상반기 동안 1 to 7 days 버킷의 등가격(near-the-money) SPY 계약은 평균 17.05%를 기록한 반면, 181 to 365 days 버킷은 18.77%를 기록했습니다. 같은 기간 NVDA는 두 버킷에서 각각 41.22%와 44.94%를 기록했습니다. 단일 수치 모델은 모든 만기에 동일한 변동성을 적용합니다. 반면 헤스톤 모델은 속도 파라미터를 통해 만기별 곡선의 형태를 조절하며, 앞쪽과 뒤쪽 만기에 각각 고유한 수준을 부여합니다. 이러한 곡선에 대한 더 많은 정보는 IV 기간 구조 페이지에서 확인할 수 있습니다.

변동성의 변동성(Vol of vol)은 스마일 곡선을 구부립니다

변동성의 변동성(vol of vol)은 분산 자체의 변동성을 의미합니다. 이를 영(zero)으로 설정하면 분산은 매끄러운 경로를 따라 움직입니다. 이 경우 기간 구조는 기울기를 가질 수 있지만, 행사가격별 변동성 스마일(smile)은 평평해집니다. 이 값을 높이면 만기 시점 가격 분포의 양쪽 꼬리(tail)에 가중치가 실리며, 이는 현물 가격에서 멀리 떨어진 행사가격의 변동성을 등가격보다 높게 만듭니다. 실제 분산이 얼마나 변동하는지는 기초자산마다 다르며, 아래 패널은 해당 변동 폭을 직접 측정합니다.

조회등가격 IV 자체의 변동 폭 (2026년 1월~6월)
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    symbol,
    round(min(daily_iv) * 100, 2)                   AS low_iv_pct,
    round(max(daily_iv) * 100, 2)                   AS high_iv_pct,
    round((max(daily_iv) - min(daily_iv)) * 100, 2) AS swing_pts
FROM
(
    SELECT
        underlying_symbol      AS symbol,
        date,
        avg(implied_volatility) AS daily_iv
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO')
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.05
    GROUP BY symbol, date
)
GROUP BY symbol
ORDER BY swing_pts DESC
Run this yourself

AMZN은 패널에서 가장 넓은 범위를 기록했습니다. 등가격 내재변동성은 최저 28.21%에서 최고 74.42%까지 6개월 동안 46.22 변동성 포인트의 차이를 보였습니다. KO10.75 포인트로 가장 좁은 범위를 기록했습니다. 베가 페이지에서 정의하는 베가(Vega, 변동성에 대한 가격 민감도)는 변동성 곡면의 수준을 측정합니다. 확률적 변동성(stochastic volatility) 하에서는 곡면의 수준이 아닌 형태가 변할 때, 베가가 동일한 두 계약이라도 서로 다르게 움직일 수 있습니다.

상관계수는 스마일 곡선을 왜곡(skew)시킵니다

주가 충격과 분산 충격 사이의 상관계수는 대칭적인 스마일 곡선을 한쪽으로 치우친 형태로 바꿉니다. 상관계수가 음수일 때, 주가가 하락하는 경로는 분산이 상승하는 경로가 되며, 만기 시점 분포의 왼쪽 꼬리가 오른쪽보다 더 큰 가중치를 갖게 됩니다. 이 경우 현물 가격에서 같은 거리만큼 떨어진 풋옵션의 내재변동성이 콜옵션의 내재변동성보다 높게 형성됩니다.

조회풋 옵션 대비 콜 옵션 IV 편향(Skew), 만기 20~45일 (2026년 1월~6월)
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    underlying_symbol                                                    AS symbol,
    round(avgIf(iv, ratio <= 0.95) * 100, 2)                             AS otm_put_iv_pct,
    round(avgIf(iv, ratio >= 1.05) * 100, 2)                             AS otm_call_iv_pct,
    round((avgIf(iv, ratio <= 0.95) - avgIf(iv, ratio >= 1.05)) * 100, 2) AS put_minus_call_pts
FROM
(
    SELECT
        underlying_symbol,
        implied_volatility                                    AS iv,
        toFloat64(strike_price) / toFloat64(underlying_close) AS ratio
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO')
      AND date BETWEEN '2026-01-02' AND '2026-06-30'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.20
)
GROUP BY underlying_symbol
HAVING countIf(ratio <= 0.95) > 0
   AND countIf(ratio >= 1.05) > 0
ORDER BY put_minus_call_pts DESC
Run this yourself

2026년 상반기 동안 SPY는 패널에서 가장 큰 격차를 보였습니다. 현물 가격보다 최소 5% 낮은 행사가격의 계약은 평균 27%를 기록한 반면, 5% 이상 높은 계약은 14.76%를 기록하여 12.23 변동성 포인트의 차이를 보였습니다. 반면 MSFT은 동일한 측정 기준에서 3.9 포인트를 기록했습니다. 기초자산당 하나의 상관계수 파라미터만으로도 이러한 모든 기울기 범위를 설명할 수 있습니다.

기초 분산은 수준을 결정합니다

다섯 번째 파라미터는 모델이 오늘 시작하는 분산 값입니다. 이는 곡선의 형태를 크게 바꾸지 않으면서 곡면 전체를 위아래로 이동시킵니다. 이것이 바로 이 파라미터가 가장 자주 재조정되는 이유입니다. 나머지 네 개의 파라미터가 기하학적 구조를 담당하는 동안, 기초 분산은 모델이 시장의 현재 수준을 유지하도록 합니다.

모델의 매수 대상과 비용

이 매수는 다섯 가지 해석 가능한 수치로부터 두 방향으로 휘어지는 곡면을 형성하며, 신속하게 가격이 산출됩니다. Heston 모델은 특성 함수와 하나의 수치 적분을 통해 유럽형 옵션(European options)의 가치를 평가하며, 시뮬레이션이 필요하지 않아 1초도 안 되는 시간에 전체 옵션 체인을 피팅(fitting)하는 것이 가능합니다. 이 모델의 비용은 명확히 짚고 넘어갈 필요가 있습니다.

  • 다섯 가지 파라미터는 관측된 옵션 가격에 맞춰 보정(calibration)된 값이며, 실제 측정된 수치가 아닙니다.
  • 보정은 특정 시점의 스냅샷입니다. 내일 다시 보정하면 수치는 변하며, 이는 모델의 상수가 실제로는 일정하지 않음을 의미합니다.
  • 하나의 파라미터 세트가 모든 만기(expiry)를 동시에 만족하는 경우는 드뭅니다. 초단기물에서 관측되는 변동성 스마일(smiles)은 이 분산 프로세스가 구현할 수 있는 것보다 더 가파르게 휘어집니다.
  • 시장 가격에는 갭(gap)이 존재합니다. 모델 내에서 분산과 현물 가격은 연속적으로 움직이지만, 실제 시장의 갭은 보정된 수치들이 흡수해야만 합니다.

변동성 관련 페이지를 참고하는 독자들을 위해 한 가지 주의사항을 덧붙입니다. 분산 프로세스는 옵션 가격을 결정하는 역학을 설명하며, 이는 주식이 실제로 실현하는 변동성과는 다른 개념입니다. 이 둘 사이의 차이는 내재 변동성 대 실현 변동성에서 다룹니다.

모델이 여전히 놓치고 있는 부분

각 격차를 메우기 위한 확장 모델들이 존재합니다. 베이츠(Bates) 모델은 헤스턴(Heston) 모델의 변동성을 유지하면서 가격 과정에 점프(jump)를 추가하여 단기 스마일(smile) 곡선을 가파르게 만듭니다. 러프 변동성(rough volatility) 모델은 무작위 변동성을 유지하되, 그 동인을 표준 브라운 운동보다 더 거친 경로로 대체하여 초단기 구간을 더욱 정밀하게 맞춥니다. 그러나 두 모델 모두 캘리브레이션(calibration) 문제를 해결하지는 못합니다. 두 모델 모두 특정 시점에 맞춰 매개변수를 조정해야 하며, 이후 다시 재조정해야 하는 번거로움이 따릅니다.

자주 묻는 질문(FAQ)

헤스톤 모델(Heston model)이란 무엇인가요?

변동성이 무작위로 변한다고 가정하는 옵션 가격 결정 모델입니다. 분산(variance)은 장기 평균 수준으로 회귀하는 고유한 경로를 따르며, 주가 변동과의 상관관계를 가집니다. 이를 통해 모델은 평평한 선이 아닌 곡선 형태의 변동성 스마일(volatility smile)을 가격에 반영할 수 있습니다.

블랙-숄즈(Black-Scholes) 모델은 왜 평평한 변동성 스마일을 나타내나요?

이 모델은 변동성이 일정하다고 가정하며, 만기 시 자산 가격에 대해 단 하나의 분포만을 설정합니다. 모든 행사가격(strike price)이 동일한 분포에서 산출되므로, 공식을 역산하면 모든 행사가격에서 동일한 변동성 값이 도출됩니다. 평평한 선은 시장의 실제 현상이 아니라 모델의 가정에서 비롯된 결과물입니다.

헤스톤 모델의 다섯 가지 파라미터는 무엇을 의미하나요?

초기 분산(starting variance)은 현재 변동성 수준을 결정합니다. 장기 분산(long-run variance)은 시간이 지남에 따라 분산이 수렴할 목표치를 설정하며, 평균 회귀 속도(mean-reversion speed)는 그 수렴의 강도를 결정합니다. 변동성의 변동성(vol of vol)은 스마일의 곡률을 결정하고, 두 충격 간의 상관관계는 스마일의 기울기를 결정합니다.

헤스톤 모델은 실제 옵션 가격을 잘 설명하나요?

일반적인 변동성 곡면의 중간 영역은 잘 설명하지만, 만기가 매우 짧은 구간에서는 관측된 스마일이 모델의 분산 과정이 허용하는 것보다 더 가파르게 굴절되기 때문에 적합도가 떨어집니다. 또한 산출된 파라미터 값이 매일 변하기 때문에, 모델 보정(calibration)은 일회성 측정이 아닌 반복적인 작업이 됩니다.


위의 모든 패널은 해당 데이터를 산출한 SQL과 함께 제공되며, 다른 종목이나 기간으로 즉시 변경하여 사용할 수 있습니다. 옵션 데이터에 대해 이러한 질문을 평이한 영어로 수행하려면 Strasmore 터미널을 여십시오.