Strasmore Research
Leren Matt ConnorDoor Matt Connor

Historische implied volatility data vinden en vergelijken

Ontdek waar u historische implied volatility data verkrijgt. Leer waarom dertigdaagse reeksen verschillen, welke bronnen beschikbaar zijn en hoe u zelf een query opstelt.

Historische implied volatility: de bron en de berekening

Historische implied volatility-data wordt afgeleid en niet geregistreerd. Dit feit verklaart waarom deze data lastiger te verkrijgen is dan een koershistorie. IV is het getal dat u krijgt door de marktprijs van een optie terug te rekenen via een prijsmodel, totdat de modelwaarde overeenkomt met de prijs op het scherm. Geen enkele beurs publiceert dit op een tape. Daarom bevat elke gepubliceerde IV-historie keuzes met betrekking tot het model, de koersnotering, de contractselectie en de interpolatie. Die keuzes vormen het volledige verschil tussen twee reeksen die beweren hetzelfde te meten.

Als u eerst de definitie wilt weten, behandelen wat implied volatility is en hoe implied volatility wordt berekend de mechanismen. Hieronder volgt waar de historie zich bevindt en hoe u twee versies daarvan van elkaar kunt onderscheiden.

Waarom zijn historische gegevens over implied volatility lastiger te verkrijgen dan koersgegevens?

Een dagslot is een geobserveerd feit: de koers is tot stand gekomen en elke dataleverancier rapporteert hetzelfde cijfer. Een IV-niveau wordt echter berekend, en vier variabelen in die berekening verschillen per bron.

  • Het model: een Europese Black-Scholes-berekening, een Amerikaanse binomiale boom met discrete dividenden, of een variant van de leverancier met eigen aannames voor rente en leenkosten.
  • De ingevoerde koers: de bid, de ask, de mid, de laatste koers of een officiële settlement-prijs van de beurs.
  • Welke contracten meetellen: één at-the-money uitoefenprijs, een bandbreedte rondom de moneyness, of een filter op basis van volume of open interest.
  • Hoe het cijfer een vaste looptijd bereikt: interpolatie tussen de twee expiratiedata die de dertig dagen omsluiten, of het middelen van alle waarden binnen een venster van dagen tot expiratie.

Wijzig één input en het niveau verschuift. Wijzig alle vier de inputs en twee zorgvuldige bronnen komen op dezelfde handelsdag uit op een verschil van diverse volatiliteitspunten, zonder dat een van beide ongelijk heeft.

De spreiding begint al bij één enkel aandeel. Het onderstaande overzicht toont AAPL voor juni 2026, waarbij alleen contracten zijn meegenomen met een uitoefenprijs binnen vijf procent van de spotprijs, onderverdeeld naar resterende looptijd.

QueryEén aandeel, één maand: implied volatility naar time to expiry (AAPL, juni 2026)
De exacte SQL achter elk getal
SELECT
    dte_band,
    round(100 * quantileDeterministic(0.25)(iv, contract_hash), 1) AS iv_p25_pct,
    round(100 * quantileDeterministic(0.50)(iv, contract_hash), 1) AS iv_median_pct,
    round(100 * quantileDeterministic(0.75)(iv, contract_hash), 1) AS iv_p75_pct,
    count()                                                        AS contract_day_count
FROM
(
    SELECT
        multiIf(days_to_expiry <=   7, '01-07d',
                days_to_expiry <=  21, '08-21d',
                days_to_expiry <=  45, '22-45d',
                days_to_expiry <=  90, '46-90d',
                days_to_expiry <= 180, '91-180d',
                                       '181d+')  AS dte_band,
        toFloat64(implied_volatility)             AS iv,
        cityHash64(ticker)                        AS contract_hash,
        days_to_expiry                            AS dte
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= '2026-06-01'
      AND date <  '2026-07-01'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry > 0
      AND underlying_close > 0
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
)
GROUP BY dte_band
ORDER BY min(dte)
Run this yourself

Dezelfde onderliggende waarde, dezelfde maand, alleen strikes nabij de koers. De kortste band in het overzicht, 01-07d, had een mediane IV van 29.6%. De langste, 181d+, lag op 28.1%. Binnen die eerste band alleen al varieerden het vijfentwintigste en vijfenzeventigste percentiel tussen 24.9% en 35.8%. Het verloop over de verschillende looptijden is de term structure, en de variant daarvan over de uitoefenprijzen is de volatility skew. Er bestaat geen enkelvoudig IV-cijfer. Er is sprake van een oppervlak, en elk gepubliceerd IV-cijfer voor AAPL is slechts een samenvatting daarvan; dit is wat onze pagina voor AAPL implied volatility bijhoudt.

Waarom tonen twee 30-daagse IV-grafieken verschillende cijfers?

Neem één liquide onderliggende waarde, één jaar aan handelssessies, en bereken op drie manieren een 30-daagse IV op basis van dezelfde rijen. De eerste kolom houdt de uitoefenprijzen binnen één procent van de spotprijs en looptijden van vijfentwintig tot vijfendertig dagen; dit is de meest nauwkeurige meting die beschikbaar is. De tweede kolom verruimt dit naar vijf procent van de spotprijs en twintig tot vijfenveertig dagen; dit is de praktische standaard wanneer elke sessie moet worden ingevuld. De derde kolom weegt die ruimere set op basis van contractvolume, waardoor het gemiddelde wordt getrokken naar de uitoefenprijzen waarin daadwerkelijk is gehandeld.

QueryDrie methoden voor een 30-day IV voor SPY, uit één dataset
De exacte SQL achter elk getal
WITH
    near_money AS
    (
        SELECT
            toMonday(date)                                                 AS week_start,
            toFloat64(implied_volatility)                                  AS iv,
            days_to_expiry                                                 AS dte,
            volume                                                         AS vol,
            abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS moneyness
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'SPY'
          AND date >= '2025-08-01'
          AND date <  '2026-08-01'
          AND iv_converged = 1
          AND volume > 0
          AND underlying_close > 0
          AND days_to_expiry BETWEEN 20 AND 45
          AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
    ),
    weekly AS
    (
        SELECT
            week_start,
            avgIf(iv, dte BETWEEN 25 AND 35 AND moneyness < 0.01) AS tight_atm,
            avg(iv)                                               AS wide_atm,
            sum(iv * vol) / sum(vol)                              AS volume_weighted
        FROM near_money
        GROUP BY week_start
        HAVING countIf(dte BETWEEN 25 AND 35 AND moneyness < 0.01) > 0
    )
SELECT
    toString(week_start) AS week,
    concat(monthName(week_start), ' ', toString(toDayOfMonth(week_start)), ', ', toString(toYear(week_start))) AS week_label,
    round(100 * tight_atm, 1)       AS tight_atm_pct,
    round(100 * wide_atm, 1)        AS wide_atm_pct,
    round(100 * volume_weighted, 1) AS volume_weighted_pct,
    round(100 * (greatest(tight_atm, wide_atm, volume_weighted)
               - least(tight_atm, wide_atm, volume_weighted)), 1) AS spread_pp
FROM weekly
ORDER BY week_start
Run this yourself

In de eerste week van de periode, July 28, 2025, lieten de drie methoden 16.6%, 16.4% en 16.7% zien. Het verschil tussen de hoogste en de laagste waarde bedroeg 0.2 procentpunt, en de spread-kolom volgt dit gat over alle 53 weken. Geen van de drie is de werkelijke 30-daagse IV voor het fonds. Elke methode beantwoordt een net iets andere vraag, en een grafiek van een dataleverancier is er daar één van, waarbij de gehanteerde methode niet op het label staat vermeld.

Hoe ver reikt de historie van de implied volatility per contract?

De dataset achter deze panelen is global_markets.options_greeks: één rij per contract per handelsdag, met daarin de implied volatility naast delta, gamma, vega, theta en rho, plus de uitoefenprijs, de expiratiedatum, het aantal dagen tot expiratie, het symbool van de onderliggende waarde en de slotkoers van de onderliggende waarde. Het betreft data aan het einde van de handelsdag, geen live snapshot van de optieketen. Het onderstaande paneel telt hoeveel verschillende onderliggende waarden in elk kwartaal ten minste één geconvergeerde IV-rij bevatten.

QueryOnderliggende waarden met geconvergeerde dagelijkse IV, per kwartaal
De exacte SQL achter elk getal
SELECT
    concat(toString(toYear(date)), '-Q', toString(toQuarter(date))) AS quarter,
    uniqExact(underlying_symbol)                                    AS underlyings_covered
FROM global_markets.options_greeks
WHERE iv_converged = 1
  AND volume > 0
  AND underlying_symbol NOT IN ('SPCX')
  AND date < '2026-07-01'
GROUP BY quarter
ORDER BY min(date)
Run this yourself

De dekking loopt van 2014-Q2 tot en met 2026-Q2, in totaal 49 kwartalen, waarbij 5799 onderliggende waarden in het laatst getoonde volledige kwartaal over geconvergeerde dagelijkse IV beschikken.

Vier filters verrichten het meeste werk wanneer u een dergelijke dataset bevraagt.

  • Behoud iv_converged = 1. De solver bereikt niet altijd een resultaat, en een niet-geconvergeerde rij is een mislukte fit in plaats van een lage waarde.
  • Behoud volume > 0. Een contract dat nooit is verhandeld, bevat een IV die is berekend op basis van een verouderde koers.
  • Groepeer op underlying_symbol. De kolom ticker bevat de OCC-contractcode, dus groeperen op deze kolom levert één rij per uitoefenprijs en expiratiedatum op in plaats van één per bedrijf.
  • Selecteer contracten bewust, nabij de koers (near the money) en binnen een specifiek tijdsbestek tot expiratie. Het overslaan van die stap middelt de skew en de term structure tot één enkel cijfer.

Bestaat er een gratis API voor implied volatility?

Er zijn gratis bronnen beschikbaar, maar elk daarvan is op een specifieke manier beperkt.

  • Brokerplatforms berekenen IV op hun eigen optieketens en tonen deze live. De downloadbare historie is kort of afwezig, en het cijfer is gebaseerd op het model van de betreffende broker in plaats van op een standaard.
  • Door beurzen gepubliceerde volatiliteitsindices gaan decennia terug en zijn kosteloos. Elke index is één geaggregeerd cijfer voor een mandje, waardoor deze een vraag over de gehele markt beantwoordt en niet over een specifiek aandeel.
  • Algemene marktdata-API's stoppen meestal bij koersen. Greeks per contract zijn bijna overal een apart product, en gratis niveaus die deze wel bevatten, bieden doorgaans slechts een live snapshot zonder archief. Ons overzicht van de gratis API voor aandelenmarktdata beschrijft wat de open niveaus daadwerkelijk bieden.
  • Historische data per contract tegen betaling is waar de uitgebreide archieven voor individuele namen zich bevinden. Deze worden verkocht als end-of-day bestanden per maand of per jaar, waarbij real-time optieketens aanzienlijk duurder zijn dan de historische sets. Wat real-time marktdata kost zet de structuur van die prijslijsten uiteen.

Het onderscheid tussen een snapshot en end-of-day data is net zo belangrijk als de prijs. Een snapshot die om 16:00 uur ET wordt genomen, gebruikt de koersen die op dat exacte moment golden. Een bestand dat is opgebouwd uit settlement-prijzen gebruikt een volledig andere input, en beide wijken het meest van elkaar af op de meest volatiele dagen.

Geaggregeerde indexvolatiliteit en volatiliteit van individuele namen zijn evenmin uitwisselbaar. Een indexoptie prijst de beweging van een mandje, waarbij tegenovergestelde bewegingen tussen de onderliggende waarden het totaal dempen. Een optie op een individuele naam prijst het eigen koersverloop van één bedrijf. Het onderstaande overzicht plaatst bekende namen naast elkaar over één maand met identieke filters.

QueryMediaan near-the-money IV, 20 tot 45 days to expiry (juni 2026)
De exacte SQL achter elk getal
SELECT
    underlying_symbol                                              AS symbol,
    round(100 * quantileDeterministic(0.50)(iv, contract_hash), 1) AS median_iv_pct,
    count()                                                        AS contract_day_count
FROM
(
    SELECT
        underlying_symbol,
        toFloat64(implied_volatility) AS iv,
        cityHash64(ticker)            AS contract_hash
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'XOM', 'TLT')
      AND date >= '2026-06-01'
      AND date <  '2026-07-01'
      AND iv_converged = 1
      AND volume > 0
      AND underlying_close > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
)
GROUP BY symbol
ORDER BY median_iv_pct DESC
Run this yourself

Gedurende juni 2026 varieerde de mediane near-the-money IV in het venster van twintig tot vijfenveertig dagen van 38.5% bij NVDA tot 10.4% bij TLT, over 8 namen. Hetzelfde venster, dezelfde filters, dezelfde berekening. Een dergelijke rangschikking is alleen geldig zolang de gehanteerde methode voor elke naam in de lijst gelijk blijft.

Maakt de bron uit voor IV rank en IV percentile?

De bron bepaalt het antwoord. IV rank meet de huidige IV ten opzichte van de hoogste en laagste waarden in een terugkijkperiode, meestal één jaar, en IV percentile telt welk deel van de dagen in die periode onder de huidige waarde lag. Beide methoden lezen een reeks van begin tot eind; een wijziging in de reeks verandert dus de score zonder dat er iets in de markt is veranderd. Als u de mid-quote IV van een broker koppelt aan een archief op basis van settlement-koersen van een dataleverancier, creëert u een permanente sprong in het midden van de terugkijkperiode. Elke rank die daarover wordt berekend, neemt die sprong over. IV rank versus IV percentile doorloopt beide berekeningen. Dezelfde vereiste geldt wanneer u impliciete beweging vergelijkt met gerealiseerde beweging: historische volatiliteit versus impliciete volatiliteit behandelt die combinatie.

De werkstandaard is een herkomstregel. Kies één bron, één model, één recept voor contractselectie en één looptijdconventie, en houd alle vier deze factoren gedurende de gehele terugkijkperiode ongewijzigd. Een reeks die intern consistent is en enigszins afwijkt van die van anderen, is waardevoller dan een samengestelde reeks die slechts op onderdelen overeenkomt met die van verschillende leveranciers.

Veelgestelde vragen

Waar kan ik historische data over implied volatility verkrijgen?

Lange reeksen voor individuele namen zijn afkomstig van aanbieders van optiedata die de greeks per contract op dagbasis verkopen, meestal in de vorm van maandelijkse of jaarlijkse bestanden. Beurzen publiceren gratis historische volatiliteitsgegevens op indexniveau. Brokerplatforms tonen live IV in hun optieketens, maar bieden nauwelijks downloadbare historie. De bovenstaande panels draaien op een dagelijkse dataset per contract die elk genoteerd contract met een geconvergeerde fit omvat.

Is er een gratis API voor implied volatility?

Gratis versies die greeks per contract bevatten zijn zeldzaam, en de versies die wel bestaan, geven meestal een live snapshot in plaats van een archief. Historische volatiliteit van indices is de voornaamste echt gratis lange reeks. Diepgaande historie voor individuele namen is doorgaans een betaald product.

Waarom tonen twee bronnen een verschillende implied volatility voor hetzelfde aandeel?

Dit komt door verschillende prijsmodellen, verschillende inputkoersen, verschillende contractselecties en verschillende methoden voor looptijdinterpolatie. Het bovenstaande panel bouwt drie reeksen van dertig dagen op basis van één set rijen, en deze verschillen alleen al in de eerste week 0.2 procentpunt van elkaar; een verschil tussen twee aanbieders is dus te verwachten en geen fout.

Hoe ver gaat de data over implied volatility terug?

Dit hangt af van de bron, en archieven per contract zijn overal korter dan prijsarchieven. De dataset achter deze pagina begint in 2014-Q2 en bevat sindsdien dagelijkse rijen voor elk geconvergeerd contract.


Elk panel hier wordt geleverd met de SQL die het heeft gegenereerd; vouw er een uit om precies te zien welke contracten in het cijfer zijn verwerkt. Om dezelfde reeks voor een andere naam, een ander venster of een ander recept op te bouwen, kunt u dit in duidelijke taal opvragen via de Strasmore-terminal.