σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyRoadmapsSkills
Ctrl K
AO
+1,2 Tsd. Lernende
AnmeldenBeitreten ↗
RoadmapsSkills
AO
+1,2 Tsd. Lernende
Anmelden
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyRoadmapsSkills
Ctrl K
AO
+1,2 Tsd. Lernende
AnmeldenBeitreten ↗
RoadmapsSkills
AO
+1,2 Tsd. Lernende
Anmelden
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
SciPy-Skill›Modul 1 · Anpassen und finden›Thema 1.6·~45 Min.Mittelstufe

Nullstellensuche von Hand und mit brentq

Position in der SkillModul 1 von 3 · Thema 6 von 8
1.6 Nullstellensuche von Hand und mit brentq
—Lab-Punkte— / 100XP gesamt—Serie—

Die Zahl suchen, die den Fehler null macht

Ein Anleihepreis ist aus einer Rendite leicht zu berechnen, die Rendite aus dem Preis nicht. Man löst f(y)=P(y)-Marktpreis=0 durch Suchen. Das Newton-Verfahren folgt der Tangente: Von einer Schätzung y springt es zu y-f(y)/f'(y), und nahe der Lösung verdoppelt sich die Zahl richtiger Stellen ungefähr je Schritt, wenige Iterationen genügen also, aber es braucht die Ableitung und kann von einem schlechten Start abirren. Die Bisektion braucht nur ein Intervall [lo,hi] mit Vorzeichenwechsel von f: Sie halbiert es immer wieder, kann also nicht scheitern, gewinnt aber nur eine Binärstelle je Schritt, 40 Schritte, um ein Intervall der Breite 65 unter 10⁻¹⁰ zu bringen. Brents Verfahren, scipy.optimize.brentq, behält die Sicherheit des Intervalls und fügt Interpolationsschritte hinzu, meist mit dem Aufwand weniger Bisektionen. Mit full_output=True liefert es auch einen Bericht, dessen Feld function_calls sagt, wie oft Ihre Funktion ausgewertet wurde.

Dasselbe Werkzeug kehrt die Black-Scholes-Formel um. Der Preis eines Calls steigt mit der Volatilität; für jeden notierten Preis fragt man brentq nach dem σ in [10⁻⁴,5], das ihn reproduziert. Das funktioniert nur, wenn der Preis streng zwischen dem inneren Wert max(S-Ke^(-rT),0) und dem Aktienkurs S liegt; außerhalb gibt es keine Volatilität, und die richtige Antwort ist NaN, keine Ausnahme, damit ein schlechter Kurs nicht ein ganzes Smile stoppt. Am 9. Oktober 2026 beträgt die 10-jährige Treasury-Rendite 5,24%, eine 5-%-Jahreskupon-Anleihe über 10 Jahre kostet also 97,121. Newton findet die Rendite in 4 Iterationen, Brent in 10 Funktionsaufrufen und die Bisektion in 40. Die impliziten Volatilitäten von 10 %, 20 %, 40 % und 80 % kommen auf besser als 10⁻⁶ zurück. Wer weiß, was jedes Verfahren kostet und wann es scheitert, wählt das richtige für eine ganze Anleihekurve oder Optionskette.

  • Newton ist schnell, braucht aber eine Ableitung und einen brauchbaren Start: hier 4 Schritte.
  • Die Bisektion scheitert nie, ist aber langsam: 40 Schritte für ein Intervall der Breite 65.
  • Nutzen Sie brentq und behandeln Sie die unmöglichen Fälle: Intervall plus Interpolation und NaN, wenn es keine Lösung gibt.

Lab: Was bewertet wird

  • Ein Anleihepreis10 Pkt.
  • Newton von Hand20 Pkt.
  • Bisektion von Hand15 Pkt.
  • Brent mit scipy15 Pkt.
  • Drei Löser nebeneinander10 Pkt.
  • Implizite Volatilitäten15 Pkt.
  • Die Studie auf echten Daten15 Pkt.
Explorer · lab-sp-15
▾ lab-sp-15
▾ data
…
bash · im Browser
learner@quantcraft:~/lab-sp-15$
Python noch nicht geladenPythonLn 1, Col 1Spaces: 4UTF-8

Dieses Thema zurücksetzen?

Alles in lab-sp-15 wird auf die Startdateien zurückgesetzt und das Terminal geleert. Ihre aktuelle Lösung geht verloren – das lässt sich nicht rückgängig machen.

Wird zurückgesetzt
  • main.py → Startcode
  • Terminal-Verlauf und Testausgabe
  • Nicht eingereichte Änderungen
Bleibt erhalten
  • Beste Lab-Punktzahl
  • Ihre XP und Ihre Serie
  • Vorlesungsfortschritt und Notizen

Melde dich an, um deinen Code auszuführen.

Alle Lektionen kannst du kostenlos lesen. Erstelle ein Konto oder melde dich an, um Code auszuführen, Tests zu starten und dieses Lab abzugeben.

  • IDE im Browser mit Bash-Terminal — nichts zu installieren
  • Sofortige Bewertung, XP und dein Platz auf der Skill
Konto erstellenAnmelden
ODER
Weiter mit GitHub