Utiliser des options pour se couvrir
Supposez que vous ayez un portefeuille d’investissement composé d’un seul actif, IBM. Vous allez couvrir le risque du portefeuille par une couverture delta avec une option de vente européenne (put) sur IBM.
Commencez par valoriser l’option de vente européenne à l’aide de la formule d’évaluation des options de Black‑Scholes, avec un prix d’exercice X de 80 et une maturité T de 1/2 an. Le taux sans risque est de 2 % et le cours au comptant S est initialement de 70.
Créez ensuite une couverture delta en calculant le delta de l’option avec la fonction bs_delta(), puis utilisez‑le pour vous couvrir contre une variation du cours de l’action à 69,5. Le résultat est un portefeuille neutre en delta combinant l’option et l’action.
Les deux fonctions black_scholes() et bs_delta() sont disponibles dans votre espace de travail.
Vous pouvez consulter le code source des fonctions black_scholes() et bs_delta() ici.
Cet exercice fait partie du cours
Gestion quantitative des risques en Python
Instructions
- Calculez le prix d’une option de vente européenne au cours au comptant 70.
- Trouvez le
deltade l’option à l’aide de la fonctionbs_delta()fournie, au cours au comptant 70. - Calculez la
value_changede l’option lorsque le cours au comptant baisse à 69,5. - Montrez que la somme de la variation du cours au comptant et de la
value_changepondérée par 1/deltaest (proche de) zéro.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Compute the annualized standard deviation of `IBM` returns
sigma = np.sqrt(252) * IBM_returns.std()
# Compute the Black-Scholes value at IBM spot price 70
value = black_scholes(S = ____, X = 80, T = 0.5, r = 0.02,
sigma = sigma, option_type = "put")
# Find the delta of the option at IBM spot price 70
delta = bs_delta(S = ____, X = 80, T = 0.5, r = 0.02,
sigma = sigma, option_type = "put")
# Find the option value change when the price of IBM falls to 69.5
value_change = ____(S = 69.5, X = 80, T = 0.5, r = 0.02,
sigma = sigma, option_type = "put") - ____
print( (69.5 - 70) + (1/delta) * ____ )