Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

Heston model at ang volatility smile paliwanag

Hindi sapat ang iisang volatility para sa buong option chain. Alamin kung paano hinahayaan ng Heston model na magbago ang variance at ang epekto ng bawat parameter sa smile.

Ang Heston model bilang tool sa pagpepresyo ng option

Ang Heston model ay isang option pricing model na itinuturing ang volatility bilang random sa halip na fixed. Mayroon itong dalawang gumagalaw na bahagi: ang presyo ng stock at ang variance ng presyong iyon, kung saan ang bawat isa ay may sariling random shock. Ang ikalawang source ng randomness na ito ang nagbibigay-daan sa isang model na makabuo ng volatility smile. Ang iisang constant volatility, na siyang assumption sa loob ng Black-Scholes, ay makakaguhit lamang ng patag na linya sa iba't ibang strike, at wala pang option chain na naging patag kailanman.

Bakit hindi sapat ang isang numero ng volatility para sa buong option chain

Ang implied volatility ay ang input na volatility na nagreresulta sa presyo kung saan aktuwal na nagte-trade ang isang option base sa pricing formula. Kung babaligtarin ito kada kontrata, gaya ng ipinapaliwanag sa ating pahina tungkol sa kung paano kinakalkula ang implied volatility, ang isang expiry ay magpapakita ng kurba sa iba't ibang strikes sa halip na isang antas lamang. Ang panel sa ibaba ay kumukuha ng bawat SPY contract na may dalawampu hanggang apatnapu't limang araw na natitira sa unang kalahati ng 2026, pinapangkat ang mga ito sa dalawang porsyentong bands ayon sa distansya mula sa strike patungo sa spot, at kinukuha ang average ng implied volatility sa loob ng bawat band.

QuerySPY implied volatility base sa strike distance, 20 hanggang 45 days to expiry (Jan hanggang Jun 2026)
Ang eksaktong SQL sa likod ng bawat numero
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

Ang -12% band, kung saan ang mga strike ay malayo sa ibaba ng spot, ay nagtala ng average na 28.05% implied volatility, na 11.61 volatility points na mas mataas kaysa sa at-the-money average para sa parehong window. Ang +12% band sa panig ng call ay nag-average ng 15.56%. Ang mga band sa pagitan nito ay bumubuo sa kurba kung saan ipinangalan ang epekto, at ang tagilid na hugis nito ay ang volatility skew. Ang isang modelo na may iisang volatility parameter ay walang kakayahang makuha ang ganitong galaw: ang bawat strike ay nagpe-presyo base sa isang distribusyon para sa presyo sa expiry, at ang pagbaligtad sa modelong iyon ay magbibigay ng parehong numero sa bawat strike, ayon sa disenyo nito.

Ano ang binabago ng Heston model

Pinapanatili ng Heston ang random shock ng stock at nagdaragdag ng ikalawang proseso para sa variance. Sa madaling salita:

  • Ang galaw ng stock sa susunod na sandali ay isang drift na may kasamang random shock, na naka-scale sa square root ng kasalukuyang variance.
  • Ang galaw ng variance ay isang hatak patungo sa long-run level sa isang nakatakdang bilis, dagdagan pa ng sarili nitong shock, na naka-scale sa isang vol-of-vol parameter at sa square root ng kasalukuyang variance.
  • Ang dalawang shock ay may correlation, sa numerong nasa pagitan ng -1 at 1.

Ang square-root scaling na iyon ay ang anyong Cox-Ingersoll-Ross, at may isang mahalagang ginagawa ito: ang variance shock ay lumiliit patungo sa zero habang papalapit ang variance sa zero, na pumipigil sa variance na maging negatibo. Kapag ang dalawang beses ng bilis na pinarami sa long-run variance ay lumampas sa square ng vol-of-vol, isang kondisyong ipinangalan kay Feller, ang variance ay nananatiling positibo.

Ang variance mismo ay hindi nao-obserbahan. Ang implied counterpart nito ay nao-obserbahan, at hindi ito nananatiling nakapirmi. Ang panel sa ibaba ay nagpapakita ng at-the-money implied volatility para sa dalawang pangalan, isang reading bawat session, sa buong ikalawang quarter ng 2026.

QueryDaily at-the-money implied volatility, SPY at NVDA (Apr hanggang Jun 2026)
Ang eksaktong SQL sa likod ng bawat numero
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

Binuksan ng SPY ang window sa 20.39% noong 2026-04-01 at isinara ito sa 14.45% noong 2026-06-30. Ang NVDA naman ay tumakbo mula 36.83% hanggang 38.22% sa loob ng parehong 62 sessions. Walang linyang nananatiling nakapirmi, at wala ring linyang tuluyang lumalayo: pareho silang naglalakbay at bumabalik sa isang sakop. Ang pag-presyo sa magkabilang dulo ng larawang iyon ay nangangailangan ng starting level at long-run level na may bilis para sa hatak sa pagitan ng mga ito.

Ano ang ginagawa ng bawat Heston parameter sa surface

Ang mean reversion at long-run level ang humuhubog sa term structure

Ang halaga ng isang option ay nakadepende sa average variance na inaasahan sa loob ng buhay nito, hindi sa variance ngayong araw. Para sa isang kontratang mag-e-expire sa susunod na linggo, ang variance ngayong araw ang nangingibabaw sa average na iyon; para sa isang mag-e-expire sa loob ng isang taon, ang long-run level ang nangingibabaw. Itinatakda ng speed parameter kung gaano kabilis maglakbay ang ekspektasyon sa pagitan ng dalawa, na siyang nagtatakda kung gaano katarik ang slope ng implied volatility mula sa unahan hanggang sa hulihan ng calendar.

QueryNear-the-money implied volatility base sa time to expiry (Jan hanggang Jun 2026)
Ang eksaktong SQL sa likod ng bawat numero
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

Ang mga near-the-money SPY contract sa 1 to 7 days bucket ay nag-average ng 17.05% sa unang kalahati ng 2026, kumpara sa 18.77% sa 181 to 365 days bucket. Ang NVDA ay nag-print ng 41.22% at 44.94% sa parehong dalawang bucket. Ang isang one-number model ay nagpe-presyo ng bawat tenor base sa iisang volatility. Binibigyan ng Heston ng sariling level ang unahan at hulihan, kung saan ang speed parameter ang nagkokontrol sa hugis sa pagitan nito. Mas marami pang ganitong curves ang makikita sa ating IV term structure page.

Ang vol of vol ang nagpapaliko sa smile

Ang vol of vol ay ang volatility ng variance mismo. Kung gagawin itong zero, ang variance ay susunod sa isang maayos na landas: ang term structure ay maaari pa ring magkaroon ng slope, ngunit ang smile sa mga strike ay magiging flat. Kung itataas ito, ang distribusyon ng presyo sa expiry ay magkakaroon ng bigat sa magkabilang dulo (tails), na nagpapataas sa mga strike na malayo sa spot kumpara sa mga malapit dito. Ang layo ng nararating ng variance sa praktikal na aplikasyon ay nag-iiba depende sa underlying, at ang panel sa ibaba ang direktang sumusukat sa paglalakbay na iyon.

QueryGalaw ng at-the-money implied volatility (Jan hanggang Jun 2026)
Ang eksaktong SQL sa likod ng bawat numero
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

Ang AMZN ang sumaklaw sa pinakamalawak na range sa panel: ang at-the-money implied volatility ay kasingbaba ng 28.21% at kasingtaas ng 74.42%, na may layong 46.22 volatility points sa loob ng anim na buwan. Ang KO ang sumaklaw sa pinakamakipot, sa 10.75 points. Ang Vega, ang price sensitivity sa volatility na binibigyang-kahulugan ng ating vega page, ang sumusukat sa level ng surface. Sa ilalim ng stochastic volatility, ang dalawang kontratang may magkaparehong vega ay maaaring kumilos nang magkaiba kapag ang hugis ang nagbago sa halip na ang level.

Ang correlation ang nagpapanagilid sa smile para maging skew

Ang correlation sa pagitan ng shock ng stock at shock ng variance ang nagpapabago sa isang simetriko na smile para maging tabingi. Sa ilalim ng negatibong correlation, ang mga landas kung saan bumabagsak ang stock ay mga landas kung saan tumataas ang variance, at ang left tail ng distribusyon sa expiry ay may mas malaking bigat kaysa sa kanan. Ang put-side implied volatility ay nagpe-presyo nang mas mataas kaysa sa call-side implied volatility sa parehong distansya mula sa spot.

QueryPut-side versus call-side implied volatility, 20 hanggang 45 days (Jan hanggang Jun 2026)
Ang eksaktong SQL sa likod ng bawat numero
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

Sa unang kalahati ng 2026, ang SPY ang nagpakita ng pinakamalawak na agwat sa panel: ang mga kontratang may strike na hindi bababa sa 5% sa ibaba ng spot ay nag-average ng 27% kumpara sa 14.76% para sa mga kontratang may strike na hindi bababa sa 5% sa itaas, na may layong 12.23 volatility points. Sa kabilang dulo, ang MSFT ay nag-print ng 3.9 points sa parehong pagsukat. Ang isang correlation parameter bawat underlying ang sumasaklaw sa buong range ng mga pagtabingi na ito.

Ang starting variance ang nagtatakda ng level

Ang ikalimang parameter ay ang variance kung saan nagsisimula ang modelo ngayong araw. Itinataas o ibinababa nito ang buong surface nang hindi gaanong binabago ang hugis nito, kaya naman ito ang pinakamadalas i-refit: pinapanatili nito ang modelo sa kasalukuyang level ng merkado habang ang apat na iba pa ang nagdadala ng geometry.

Ano ang binibili ng modelo, at ano ang halaga nito

Ang binibili ay isang surface na bumabaluktot sa dalawang direksyon mula sa limang interpretable na numero, na mabilis na napapresyuhan. Pinapahalagahan ng Heston ang mga European option sa pamamagitan ng isang characteristic function at isang numerical integral, nang hindi nangangailangan ng simulation, na ginagawang praktikal ang pag-fit ng buong chain sa loob ng isang bahagi ng segundo. Ang mga gastos ay nararapat na sabihin nang malinaw.

  • Ang limang parameter ay naka-calibrate, na naka-fit sa mga naobserbahang presyo ng option sa halip na sinusukat mula sa kahit ano.
  • Ang calibration ay isang snapshot. Mag-refit bukas at ang mga numero ay gagalaw, na nangangahulugang ang mga constant ng modelo ay hindi constant.
  • Bihirang magkasya ang isang parameter set sa bawat expiry nang sabay-sabay. Ang mga naobserbahang smile sa pinakamaikling dulo ay mas matalim ang pagbaluktot kaysa sa kayang gawin ng variance process na ito.
  • Ang mga presyo sa merkado ay nagkakaroon ng gap. Ang variance at spot ay parehong gumagalaw nang tuluy-tuloy dito, at ang isang gap ay kailangang ma-absorb ng mga fitted na numero.

Isang babala ang mahalaga para sa mga mambabasa na galing sa mga pahina ng volatility. Inilalarawan ng variance process ang dynamics na nagpepresyo ng mga option, na isang bagay na iba sa volatility na aktwal na mararanasan ng isang stock. Ang distansya sa pagitan ng dalawa ang paksa ng implied volatility versus realised volatility.

Kung saan hindi pa rin tumpak ang modelo

May mga extension para sa bawat kakulangan. Pinapanatili ng Bates ang variance ng Heston at nagdaragdag ng mga jump sa price process, na nagpapatarik sa short-dated smile. Pinapanatili ng mga rough volatility model ang random variance at pinapalitan ang driver ng mga path na mas "rough" kaysa sa standard Brownian motion, na mas tumutugma sa napakaikling dulo. Wala sa dalawa ang nakakaalis sa problema ng calibration: pareho silang nagdaragdag ng mga parameter na kailangang i-fit sa isang moment at i-refit pagkatapos.

Mga Madalas Itanong (FAQ)

Ano ang Heston model sa simpleng paliwanag?

Ito ay isang option pricing model kung saan ang volatility ay random. Ang variance ay sumusunod sa sarili nitong landas na may hatak patungo sa isang long-run level, at ang randomness nito ay may correlation sa stock, na nagpapahintulot sa modelo na mag-presyo ng curved volatility smile sa halip na isang flat line.

Bakit nagbibigay ang Black-Scholes ng flat volatility smile?

Ipinapalagay nito ang isang constant volatility, na nagtatakda ng isang distribution para sa presyo sa expiry. Ang bawat strike ay pinapresyuhan mula sa parehong distribution, at ang pag-invert sa formula ay nagbabalik ng parehong volatility sa bawat strike. Ang flat line ay output ng assumption, hindi isang natuklasan tungkol sa mga merkado.

Ano ang ibig sabihin ng limang Heston parameters?

Ang starting variance ang nagtatakda ng antas ng surface ngayong araw. Ang long-run variance ang nagtatakda kung saan hihilahin ang variance sa paglipas ng panahon, at ang mean-reversion speed ang nagtatakda kung gaano kabilis ang hatak na iyon. Ang vol of vol ang nagtatakda ng kurbada ng smile, at ang correlation sa pagitan ng dalawang shocks ang nagtatakda ng pagkiling nito.

Angkop ba ang Heston model sa totoong presyo ng options?

Malapit nitong nasusukat ang gitna ng isang tipikal na surface at mas nahihirapan ito sa napakaikling bahagi, kung saan ang mga nakikitang smile ay mas matulis ang kurbada kaysa sa pinapayagan ng variance process nito. Ang mga fitted parameter ay nagbabago rin mula sa isang araw patungo sa susunod, na ginagawang isang paulit-ulit na ehersisyo ang calibration sa halip na isang beses na pagsukat.


Ang bawat panel sa itaas ay may kasamang SQL na gumawa rito, na handa nang ituro sa ibang pangalan o ibang window. Upang itanong ang isa sa mga ito sa simpleng Ingles laban sa data ng options, buksan ang Strasmore terminal.