σμ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ᵀμ = μ*∫Σ∂∞λ
σμ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 AcademyParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Parcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Parcours Python›Module 4 · Valorisation des produits de taux et d'options›Sujet 4.6·~40 minIntermédiaire

Payoffs des options

Position dans le parcoursModule 4 sur 11 · Sujet 6 sur 16
4.6 Payoffs des options
—Score du lab— / 100XP total—Série—

Un droit, pas une obligation

Une option donne à son détenteur le droit, mais pas l'obligation, de négocier un actif à un prix fixe (le prix d'exercice) à une date ou avant (l'échéance). Un call est le droit d'acheter, un put le droit de vendre. À l'échéance, le détenteur n'utilise le droit que s'il rapporte. Un call de prix d'exercice 100 avec l'action à 110 permet d'acheter à 100 ce qui vaut 110 : un gain de 10. Avec l'action à 90, on ne fait rien et le gain est 0, jamais négatif. Cette asymétrie est ce qui donne de la valeur aux options.

call payoff = max(S - K, 0) put payoff = max(K - S, 0)
import numpy as np

spot = np.array([80, 90, 100, 110, 120.0])      # possible prices of the stock at expiry
strike = 100

call = np.maximum(spot - strike, 0)              # np.maximum works element by element: no loop, no if
put = np.maximum(strike - spot, 0)
print(call.tolist())     # [0.0, 0.0, 0.0, 10.0, 20.0]
print(put.tolist())      # [20.0, 10.0, 0.0, 0.0, 0.0]

Le profit est le gain moins la prime

L'option a un prix aujourd'hui, la prime ; ce que vous gagnez est donc le gain moins ce que vous avez payé. Un call acheté 6 perd 6 chaque fois que l'action termine sous le prix d'exercice et atteint l'équilibre à exercice + prime = 106. En combinant les options on construit d'autres profils. Un straddle long (call plus put au même prix d'exercice) profite d'un grand mouvement dans un sens ou dans l'autre et perd les deux primes si l'action ne bouge pas. Un bull call spread (long un call à 100, short un call à 110) coûte moins mais plafonne le gain à l'écart entre les prix d'exercice : vous renoncez à la hausse au-delà de 110 pour réduire le coût.

call_pnl = call - 6                                        # bought for a premium of 6
print(call_pnl.tolist())                                   # [-6.0, -6.0, -6.0, 4.0, 14.0]   break-even at 106

straddle = call + put - (4.0 + 3.5)                        # a call (4.0) and a put (3.5) at the same strike
print(straddle.tolist())                                   # [12.5, 2.5, -7.5, 2.5, 12.5]   wins on a move up or down

spread = np.maximum(spot - 100, 0) - np.maximum(spot - 110, 0) - (6.0 - 2.0)   # long the 100 call, short the 110 call
print(spread.tolist())                                     # [-4.0, -4.0, -4.0, 6.0, 6.0]   loss and gain are both capped
short_call = 6 - call                 # the seller of the call keeps the premium and pays the payoff
print(short_call.tolist())             # [6.0, 6.0, 6.0, -4.0, -14.0]   the exact mirror of the buyer's loss and gain
print(float(np.maximum(112 - 100, 0)))      # 12.0   a single price works as well as an array
Les gains ne sont pas des prixUn diagramme de gains ne montre que la valeur à l'échéance. Le prix aujourd'hui, avant l'échéance, est supérieur au gain car l'action peut encore évoluer en votre faveur : ce supplément est la valeur temps, et les sujets suivants la valorisent. Le gain est aussi écrit du point de vue du détenteur ; le vendeur de l'option a exactement le profit et la perte opposés.
  • Gain du call max(S - K, 0), gain du put max(K - S, 0) : np.maximum(..., 0) le fait sur tout un tableau.
  • Profit = gain - prime ; un straddle (call + put) parie sur un grand mouvement, un bull call spread plafonne coût et gain.
  • Les gains sont des valeurs à l'échéance ; le prix aujourd'hui est plus élevé de la valeur temps, que valorisent les sujets suivants.

À suivre : la parité call-put, le lien exact entre le prix d'un call et celui d'un put.

Lab : ce qui est noté

  • Payer le droit d'acheter avec call_payoff25 pts
  • Payer le droit de vendre avec put_payoff25 pts
  • Parier sur un grand mouvement dans les deux sens avec long_straddle_pnl25 pts
  • Plafonner le coût et le gain avec bull_call_spread_pnl25 pts
Explorateur · lab-71-1
▾ lab-71-1
…
bash · dans le navigateur
learner@quantcraft:~/lab-71-1$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-71-1 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