Strasmore Research
Lernen Matt ConnorVon Matt Connor · Aktualisiert 2026-08-05

Wie wird implizite Volatilität berechnet?

Implizite Volatilität wird iterativ aus dem Optionspreis ermittelt. Erfahren Sie, wie Solver, Black-Scholes und Python zusammenspielen und warum Werte abweichen.

Implizite Volatilität wird iterativ berechnet, nicht anhand einer Formel. Es gibt keinen geschlossenen Ausdruck, der den Marktpreis einer Option wieder in eine Volatilitätszahl umwandelt. Ein Solver nimmt daher eine Volatilität an, bewertet die Option mit Black-Scholes, vergleicht diesen Modellpreis mit dem Kurs und wiederholt den Vorgang, bis beide Werte bis auf den letzten Cent übereinstimmen. Im Folgenden wird die gesamte Methode erläutert: die Bewertungsfunktion, die Suchschleife in Python mit der Standardbibliothek und die Gründe dafür, dass zwei Anbieter für denselben Kontrakt unterschiedliche Werte veröffentlichen.

Warum es für die implizite Volatilität keine geschlossene Formel gibt

Black-Scholes arbeitet in eine Richtung. Gibt man einen Spotpreis, einen Ausübungspreis, die Restlaufzeit, einen Zinssatz und eine Volatilität vor, liefert das Modell einen theoretischen Preis. Fünf dieser sechs Größen sind beobachtbar. Die Volatilität ist es nicht. Sie ist eine Annahme darüber, wie weit sich die Aktie bis zum Verfall bewegen wird.

Händler kehren das Problem um. Der Preis steht auf dem Bildschirm, die Volatilität ist die Unbekannte. Die implizite Volatilität ist der Volatilitätswert, bei dem der Black-Scholes-Preis dem Marktpreis der Option entspricht. Sigma, der Volatilitätsterm, steht zweimal in der Standardnormalverteilungsfunktion, jeweils in d1 und d2. Durch algebraisches Umstellen lässt er sich nicht isolieren. Damit endet die Algebra. Die numerische Suche übernimmt. Was die implizite Volatilität misst behandelt die Interpretation; diese Seite erklärt die Berechnung.

Zwei Eigenschaften des Modells erleichtern die Suche. Der Modellpreis eines Calls steigt ausnahmslos mit zunehmender Volatilität und verändert sich dabei stetig. Eine Größe, die nur steigt, lässt sich eingrenzen, indem man ein Intervall um sie immer weiter verkleinert.

Der Solver läuft einmal pro Kontrakt

Das Ergebnis ist eine Zahl pro Kontrakt, nicht eine Zahl pro Aktie. Kontrakte auf dieselbe Aktie und mit demselben Verfallfenster liefern unterschiedliche Ergebnisse. Hier sind alle Apple-(AAPL)-Optionen mit einer Restlaufzeit von 20 bis 45 Tagen, die am 30. Juni 2026 gehandelt wurden, gruppiert nach dem Ausübungspreis im Verhältnis zum Aktienkurs:

AbfrageEine Lösung pro Kontrakt: AAPL-Implied-Volatility nach Strike-Zone, 30. Juni 2026
Das exakte SQL hinter jeder Zahl
WITH toFloat64(strike_price) / toFloat64(underlying_close) AS moneyness
SELECT multiIf(moneyness < 0.90, '0.80-0.90',
               moneyness < 0.95, '0.90-0.95',
               moneyness < 1.00, '0.95-1.00',
               moneyness < 1.05, '1.00-1.05',
               moneyness < 1.10, '1.05-1.10',
                                 '1.10-1.20') AS strike_vs_spot,
       round(100 * avg(toFloat64(implied_volatility)), 1) AS implied_vol_pct,
       count() AS contract_count
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date = toDate('2026-06-30')
  AND days_to_expiry BETWEEN 20 AND 45
  AND iv_converged = 1
  AND volume > 0
  AND moneyness BETWEEN 0.80 AND 1.20
GROUP BY strike_vs_spot
ORDER BY min(moneyness)
Run this yourself

Auf der Skala der Ausübungspreise ergibt die 0.80-0.90-Zone 35.5%, die 0.95-1.00-Zone 28.1% und die 1.10-1.20-Zone 27.3%. Ein Unternehmen, eine Handelssitzung, 6 Ergebnisse. Die Krümmung dieser Kurve hat einen Namen: Volatilitätssmew. Eine einzelne Volatilität pro Aktie kann sie nicht abbilden.

Der Black-Scholes-Preis, den der Solver treffen muss

S ist der Aktienkurs, K der Ausübungspreis, T die Restlaufzeit in Jahren, r der risikofreie Zinssatz und N() die kumulative Verteilungsfunktion der Standardnormalverteilung. Sie gibt die Wahrscheinlichkeit an, dass eine standardnormalverteilte Zufallsvariable unter einem bestimmten Wert liegt. Python stellt diesen letzten Baustein in math.erf bereit. Dafür reicht der Interpreter allein aus.

apt-get update && apt-get install -y python3

Fügen Sie beiden Befehlen auf einem Rechner, auf dem Sie nicht als root angemeldet sind, sudo voran. Speichern Sie den folgenden Code anschließend als iv.py:

import math

def norm_cdf(x):
    return 0.5 * (1.0 + math.erf(x / math.sqrt(2.0)))

def bs_call(S, K, T, r, sigma):
    if T <= 0.0 or sigma <= 0.0:
        return max(S - K, 0.0)
    d1 = (math.log(S / K) + (r + 0.5 * sigma * sigma) * T) / (sigma * math.sqrt(T))
    d2 = d1 - sigma * math.sqrt(T)
    return S * norm_cdf(d1) - K * math.exp(-r * T) * norm_cdf(d2)

Damit ist das Forward-Modell vollständig definiert. Geben Sie eine Volatilität ein und erhalten Sie einen Preis.

Berechnung der impliziten Volatilität Schritt für Schritt

Das Bisektionsverfahren ist die Methode, mit der Sie beginnen sollten. Es kann nicht divergieren und benötigt keine Differentialrechnung.

  1. Grenzen Sie die Lösung zwischen 0.01 (1 % pro Jahr) und 5.0 (500 %) ein. Jede gehandelte Option liegt innerhalb dieser Spanne.
  2. Berechnen Sie den Optionspreis am Mittelpunkt der Spanne.
  3. Liegt der Modellpreis über dem Marktkurs, war die Schätzung zu hoch: Setzen Sie die obere Grenze auf den Mittelpunkt. Liegt er darunter, erhöhen Sie die untere Grenze auf den Mittelpunkt.
  4. Beenden Sie die Berechnung, sobald der Modellpreis höchstens einen Cent vom Kurs abweicht.
def implied_vol(price, S, K, T, r, lo=0.01, hi=5.0, tol=0.01):
    for _ in range(100):
        mid = 0.5 * (lo + hi)
        diff = bs_call(S, K, T, r, mid) - price
        if abs(diff) < tol:
            return mid
        if diff > 0.0:
            hi = mid
        else:
            lo = mid
    return 0.5 * (lo + hi)

# $100 stock, $100 strike, three months, 4% rates, $5.00 on the screen
print(round(implied_vol(5.00, 100.0, 100.0, 0.25, 0.04), 4))

Führen Sie python3 iv.py aus. Das Ergebnis liegt bei etwa 0.226. Für diesen hypothetischen Kurs entspricht das einer impliziten Volatilität von rund 22,6 % pro Jahr. Bei jedem Durchlauf halbiert sich die Spanne. Eine anfängliche Spanne von 4.99 ist nach zwanzig Halbierungen schmaler als 0.00001. Daher wird die Obergrenze von 100 Iterationen nie erreicht.

Warum Newton-Raphson schneller konvergiert und wo das Verfahren scheitert

Die Bisektion verwirft Informationen, die das Modell bereits enthält. Vega bezeichnet die Änderung des Optionspreises je Volatilitätseinheit. Black-Scholes liefert diesen Wert in geschlossener Form. Newton-Raphson verwendet ihn als Steigung: Das Verfahren misst den Bewertungsfehler, teilt ihn durch Vega und verändert die Schätzung um diesen Betrag.

def bs_vega(S, K, T, r, sigma):
    d1 = (math.log(S / K) + (r + 0.5 * sigma * sigma) * T) / (sigma * math.sqrt(T))
    return S * math.sqrt(T) * math.exp(-0.5 * d1 * d1) / math.sqrt(2.0 * math.pi)

def implied_vol_newton(price, S, K, T, r, sigma=0.5):
    for _ in range(20):
        v = bs_vega(S, K, T, r, sigma)
        if v < 1e-8:
            return None          # keine Steigung mehr, Übergabe zurück an die Bisektion
        step = (bs_call(S, K, T, r, sigma) - price) / v
        sigma -= step
        if sigma <= 0.0:
            return None          # der Schritt war zu groß und führte zu einem unsinnigen Wert
        if abs(step) < 1e-6:
            return sigma
    return None

Am Geld führt das Verfahren nach drei oder vier Iterationen zum Ziel, gegenüber etwa zwölf bei der Bisektion. Der Schwachpunkt liegt im Nenner: Vega nimmt ab, je weiter sich der Ausübungspreis vom Aktienkurs entfernt. Bei denselben AAPL-Kontrakten ist die durchschnittliche Vega der einzelnen Zonen als Prozentsatz des At-the-Money-Werts dargestellt:

AbfrageWo der Newton-Schritt versagt: AAPL-Vega nach Strike-Zone, 30. Juni 2026
Das exakte SQL hinter jeder Zahl
WITH toFloat64(strike_price) / toFloat64(underlying_close) AS moneyness,
     (
         SELECT avg(toFloat64(vega))
         FROM global_markets.options_greeks
         WHERE underlying_symbol = 'AAPL'
           AND date = toDate('2026-06-30')
           AND days_to_expiry BETWEEN 20 AND 45
           AND iv_converged = 1
           AND volume > 0
           AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.025
     ) AS atm_vega
SELECT multiIf(moneyness < 0.90, '0.80-0.90',
               moneyness < 0.95, '0.90-0.95',
               moneyness < 1.00, '0.95-1.00',
               moneyness < 1.05, '1.00-1.05',
               moneyness < 1.10, '1.05-1.10',
                                 '1.10-1.20') AS strike_vs_spot,
       round(100 * avg(toFloat64(vega)) / atm_vega, 1) AS vega_pct_of_atm,
       count() AS contract_count
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date = toDate('2026-06-30')
  AND days_to_expiry BETWEEN 20 AND 45
  AND iv_converged = 1
  AND volume > 0
  AND moneyness BETWEEN 0.80 AND 1.20
GROUP BY strike_vs_spot
ORDER BY min(moneyness)
Run this yourself

Die Außenbereiche weisen nur einen Bruchteil der Sensitivität auf: 33.1% der At-the-Money-Vega in der 0.80-0.90-Zone und 31.6% in der 1.10-1.20-Zone. Wird ein Bewertungsfehler durch eine so kleine Zahl geteilt, entsteht ein enormer Schritt. Dadurch kann die Schätzung unter null fallen, wo das Modell keine gültige Aussage mehr liefert. Produktionsreife Solver kombinieren beide Verfahren: Zuerst wird ein Intervall eingegrenzt, anschließend wird die Lösung mit Newton verfeinert. Vega erläutert das Greek selbst.

Warum zwei Quellen eine unterschiedliche implizite Volatilität ausweisen

Das Modell ist öffentlich, und die Berechnung ist eindeutig. Die Abweichung entsteht bei den Eingaben.

  • Mid versus letzter Kurs. Der Solver benötigt einen Preis. Ein Kontrakt mit einem Geldkurs von 2,00 USD und einem Briefkurs von 2,20 USD hat einen Midpoint von 2,10 USD. Der letzte Print kann dagegen 2,02 USD betragen und 90 Minuten zurückliegen. Bei einem solchen Kontrakt sind zehn Cent beim Preis mehr wert als ein Volatilitätspunkt.
  • Dividenden und Carry. Die obige Funktion bewertet einen europäischen Call auf eine Aktie ohne Dividendenzahlungen. Eine Dividende vor dem Verfall senkt den Forward-Preis. Zudem verwendet jeder Trading Desk seine eigene Anpassung und seinen eigenen Zinssatz.
  • Vorzeitige Ausübung bei amerikanischen Optionen. US-Optionen auf Einzelaktien können an jedem Handelstag ausgeübt werden. Dieses Recht hat einen Wert, den die europäische Formel nicht abbilden kann. Ein Solver, der es ignoriert, schlägt die Differenz auf die Volatilität auf. Binomialbäume bewerten das Ausübungsrecht direkt.
  • Veraltete Quotes. Ein Strike, der zuletzt am Dienstag gehandelt wurde, kann weiterhin mit einem Quote angezeigt werden. Der Solver behandelt die übergebenen Werte als korrekt.

Die Konvergenz macht die letzten beiden Punkte sichtbar. Die folgende Übersicht betrachtet acht bekannte Aktien am 30. Juni 2026, zählt gehandelte Kontrakte mit einer Restlaufzeit von 20 bis 45 Tagen und weist sowohl die at-the-money-Volatilität als auch den Anteil der Kontrakte aus, bei denen die Berechnung konvergiert ist:

AbfrageAt-the-money-Implied-Volatility und Solver-Konvergenz, acht Titel, 30. Juni 2026
Das exakte SQL hinter jeder Zahl
WITH abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS distance_from_spot
SELECT underlying_symbol AS symbol,
       round(100 * avgIf(toFloat64(implied_volatility), iv_converged = 1 AND distance_from_spot < 0.05), 1) AS atm_iv_pct,
       round(100 * countIf(iv_converged = 1) / count(), 1) AS solved_pct,
       count() AS contract_count
FROM global_markets.options_greeks
WHERE date = toDate('2026-06-30')
  AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'SPY', 'KO', 'JNJ')
  AND days_to_expiry BETWEEN 20 AND 45
  AND volume > 0
GROUP BY symbol
HAVING countIf(iv_converged = 1 AND distance_from_spot < 0.05) > 0
ORDER BY atm_iv_pct DESC
Run this yourself

TSLA wies mit 47.7% den höchsten at-the-money-Wert unter den 8 Namen aus. 14.4% entfielen auf SPY am unteren Ende. Bei der TSLA-Optionskette lieferten 97.8% der gehandelten Kontrakte ein konvergiertes Ergebnis. Bei den übrigen Kontrakten liegt der an den Solver übergebene Preis außerhalb dessen, was sich mit irgendeiner Volatilität reproduzieren lässt – etwa weil der Quote unter dem inneren Wert liegt oder der Markt gekreuzt ist. Ob ein solcher Wert als hoch gilt, ist eine separate Frage: ist eine IV von 30 % hoch behandelt dies, und die erwartete Kursbewegung übersetzt die Volatilität in eine Spanne in Dollar.

Derselbe Kontrakt, in jeder Sitzung neu berechnet

Die implizite Volatilität wird nicht gespeichert. Sie wird aus dem jeweils angezeigten Preis neu berechnet. Unten sehen Sie den meistgehandelten AAPL-Kontrakt mit Fälligkeit am 17. Juli 2026, der vom 1. Juni bis zum Verfall verfolgt wird. Der Ausübungspreis und der Verfallstermin blieben unverändert:

AbfrageEin AAPL-Kontrakt, in jeder Sitzung bis zum Verfall am 17. Juli 2026 neu gelöst
Das exakte SQL hinter jeder Zahl
WITH (
         SELECT ticker
         FROM global_markets.options_greeks
         WHERE underlying_symbol = 'AAPL'
           AND date = toDate('2026-06-30')
           AND expiration_date = toDate('2026-07-17')
           AND iv_converged = 1
           AND volume > 0
         ORDER BY volume DESC
         LIMIT 1
     ) AS pinned_contract
SELECT date,
       round(100 * avg(toFloat64(implied_volatility)), 1) AS implied_vol_pct,
       round(avg(days_to_expiry)) AS days_to_expiry
FROM global_markets.options_greeks
WHERE ticker = pinned_contract
  AND date BETWEEN toDate('2026-06-01') AND toDate('2026-07-17')
  AND iv_converged = 1
  AND volume > 0
GROUP BY date
ORDER BY date
Run this yourself

Über 29 Sitzungen hinweg lag der berechnete Wert zu Beginn bei 25.1%, bei noch 46 verbleibenden Tagen, und am Ende bei 26.6%, bei noch 4 verbleibenden Tagen. Jeder Punkt auf dieser Linie entspricht einem Durchlauf der oben beschriebenen Schleife mit dem Kurs dieser Sitzung. Auf unseren Seiten zu den einzelnen Tickers veröffentlichen wir dieselbe Berechnung: implizite Volatilität von AAPL wird täglich über die gesamte Optionskette berechnet. Leser können daher jeden dort angegebenen Wert mit dem Code auf dieser Seite reproduzieren.

FAQ zur Berechnung der impliziten Volatilität

Gibt es eine Formel für die implizite Volatilität?

Nein. Black-Scholes bildet die Volatilität auf den Preis ab. Diese Abbildung hat keine elementare Umkehrfunktion, weil Sigma zweimal innerhalb der Normalverteilung vorkommt. Jede Zahl zur impliziten Volatilität, die Sie hier oder anderswo sehen, wird durch ein iteratives Lösungsverfahren berechnet.

Wie viele Iterationen benötigt die Berechnung?

Bei jedem Bisektionsschritt halbiert sich das Intervall. Eine Spanne von 0,01 bis 5,0 fällt nach zwanzig Schritten unter 0,00001. Einen Kurs auf den nächsten Cent genau zu treffen, dauert in der Regel etwa ein Dutzend Schritte. Newton-Raphson erreicht das Ziel bei Optionen nahe am Geld in drei oder vier Schritten. Dafür können sich die Schritte bei geringem Vega problematisch verhalten.

Warum zeigen mein Broker und ein Datenanbieter unterschiedliche Werte für die implizite Volatilität?

Sie haben dem Lösungsverfahren unterschiedliche Eingaben zugeführt. Die häufigsten Abweichungen betreffen den Mittelkurs gegenüber dem letzten ausgeführten Kurs, die Annahme zum Zinssatz und zur Dividende sowie die Frage, ob das Modell eine vorzeitige Ausübung bei amerikanischen Optionen berücksichtigt. Bei einem wenig gehandelten Strike kann bereits ein veralteter Kurs den Wert um mehrere Prozentpunkte verschieben.

Liefern Calls und Puts mit demselben Strike dieselbe implizite Volatilität?

Theoretisch ja. Die Put-Call-Parität verknüpft beide Optionen bei identischem Strike und Verfallstermin. In der Praxis werden die beiden Kurse unabhängig voneinander gestellt. Daher unterscheiden sich die berechneten Werte leicht. Das ist ein weiterer Grund dafür, dass sich Durchschnittswerte über die gesamte Optionskette zwischen Datenanbietern unterscheiden.

Kann ich die implizite Volatilität ohne Marktdaten berechnen?

Ja, für einen hypothetischen Kurs. Der obige Code verwendet einen von Hand eingegebenen Preis, Strike, Kassakurs, Zeitraum bis zum Verfall und Zinssatz. Einen aktuellen Wert eines Datenanbieters nachzubilden, ist der schwierigere Teil. Dafür benötigen Sie genau dieselben Eingaben wie der Anbieter.


Hinter jedem Panel hier ist die zugehörige SQL-Abfrage gespeichert. Öffnen Sie ein Panel und führen Sie dieselbe Berechnung mit einer aktuellen Optionskette auf dem Strasmore-Terminal aus.

#implied volatility#options#black-scholes#python#how-to