σμ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 AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • 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 AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Parcours SciPy›Module 3 · Matrices, signaux et structure›Sujet 3.9·~55 minIntermédiaire

Calibrer une surface de smile sur plusieurs échéances

Position dans le parcoursModule 3 sur 3 · Sujet 9 sur 10
3.9 Calibrer une surface de smile sur plusieurs échéances
—Score du lab— / 100XP total—Série—

Un sourire par échéance, et ils doivent s'accorder

On travaille avec la variance totale w=σ²T en fonction de la log-moneyness k=ln(K/F). Le smile SVI est w(k)=a+b(ρ(k-m)+√((k-m)²+s²)) avec cinq paramètres : a relève le niveau, b règle l'angle des ailes, -1<ρ<1 incline le smile (négatif pour les actions), m déplace le minimum et s arrondit le fond. L'ajuster à des cotations est un problème de moindres carrés, mais délicat : les paramètres se compensent en partie et un mauvais départ reste bloqué. least_squares(residuals, x0, bounds=(lower, upper)) gère les bornes, qui maintiennent b>0, |ρ|<1 et s>0, et une réponse robuste vient de plusieurs points de départ, en gardant celui au cost le plus bas.

Une surface est un smile par échéance, et les smiles doivent s'accorder dans le temps. Si la variance totale à un strike baisse quand la maturité augmente, un spread calendaire a un prix négatif, ce qui est un arbitrage. Le contrôle est peu coûteux : pour des échéances consécutives, évaluez les deux smiles ajustés sur une grille de k et comptez les points où w_T₂<w_T₁ (avec une infime tolérance). Pensez à trier d'abord les échéances, car un dictionnaire ne promet aucun ordre. La volatilité implicite d'un ajustement est σ(k)=√(w(k)/T). Dans le lab, quatre échéances sont ajustées sur des cotations avec 0,2 % de bruit : le rmse est de la taille de ce bruit, la volatilité à la monnaie est retrouvée à 1 % près, et la surface n'a aucune violation ; échanger les paramètres de deux échéances donne 121 violations, une sur chaque point de la grille.

  • Bornes et plusieurs départs : les paramètres SVI se compensent, donc ajustez depuis trois points de départ et gardez le coût le plus bas.
  • Variance totale, pas volatilité : comparez les maturités avec w=σ²T, qui ne doit pas baisser quand T augmente.
  • Triez les échéances avant de comparer les voisines ; un dictionnaire n'a pas d'ordre garanti.

Lab : ce qui est noté

  • Le smile SVI10 pts
  • Ajuster un smile25 pts
  • Calibrer la surface20 pts
  • Volatilité implicite10 pts
  • Arbitrage calendaire20 pts
  • L'étude de la surface15 pts
Explorateur · lab-sp-23
▾ lab-sp-23
…
bash · dans le navigateur
learner@quantcraft:~/lab-sp-23$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-sp-23 revient aux fichiers de départ et le terminal est vidé. Votre solution actuelle sera perdue : cette action est irréversible.

Sera réinitialisé
  • main.py → code de départ
  • Historique du terminal et sortie des tests
  • Modifications non soumises
Sera conservé
  • Meilleur score du lab
  • Votre XP et votre série
  • Progression du cours et notes

Connectez-vous pour exécuter votre code.

Tous les cours sont gratuits à lire. Créez un compte ou connectez-vous pour exécuter du code, lancer les tests et soumettre ce lab.

  • IDE dans le navigateur avec terminal bash — rien à installer
  • Correction instantanée, XP et votre place dans le parcours
Créer un compteSe connecter
OU
Continuer avec GitHub