Utiliser les options pour se couvrir
Supposons que vous ayez un portefeuille de placement composé d'un seul actif, IBM. Vous allez couvrir le risque du portefeuille par une couverture delta avec une option de vente européenne sur IBM.
Commencez par évaluer l'option de vente européenne en utilisant la formule d'évaluation d'options de Black-Scholes, avec un prix d'exercice X de 80 et une échéance T de 1/2 an. Le taux d'intérêt 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(), et utilisez-le pour vous protéger contre une variation du cours de l'action à 69,5. Le résultat est un portefeuille neutre au delta combinant l'option et l'action.
Les deux fonctions black_scholes() et bs_delta() sont disponibles dans votre espace de travail.
Vous pouvez trouver le code source des fonctions black_scholes() et bs_delta() ici.
Cette activité fait partie du cours
Gestion quantitative des risques en Python
Instructions de l’exercice
- Calculez le prix d'une option de vente européenne au cours au comptant 70.
- Trouvez le
deltade l'option en utilisant la fonction fourniebs_delta()au cours au comptant 70. - Calculez le
value_changede l'option lorsque le cours au comptant baisse à 69,5. - Montrez que la somme de la variation du cours au comptant et du
value_changepondéré par 1/deltaest (presque) nulle.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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) * ____ )