Contents
L’objectif de ce TP en scilab est d’illustrer numériquement dans le cadre du modèle de
Black-Scholes les résultats du cours sur les schémas d’Euler et de Milshtein. On note T l’horizon
de la simulation, Δt = T∕N (où N ∈ ℕ∗) le pas de discrétisation et pour k ∈{0,…,N}, t
k = kΔt le
k-ème instant de discrétisation.
1 Convergence forte
L’intérêt de se placer dans le modèle de Black-Scholes
est
la possibilité de simuler exactement le sous-jacent en utilisant les mêmes accroissements browniens
que ceux qui servent à générer les processus discrétisés.
- Exprimer en fonction de la valeur en tk du sous-jacent Stk (resp. du schéma d’Euler
Stke, resp. du schéma de Milshtein S
tkm) et de l’accroissement ΔW
k+1 = Wtk+1 −Wtk
la valeur en tk+1 du sous-jacent Stk+1 (resp. du schéma d’Euler Stk+1e, resp. du schéma
de Milshtein Stk+1m).
- Implémenter ces formules dans les zones à compléter du programme vitfort_Q.sce.
- Quel est le comportement théorique de 𝔼((ST −ST e)2) en fonction de N ? Et celui de
𝔼((ST − ST m)2)?
- Exécuter le programme (exec vitfort_Q.sce) pour constater la dépendance en N de
𝔼((ST − ST e)2) et 𝔼((S
T − ST m)2).
2 Convergence faible
2.1 Vitesse faible
On souhaite maintenant étudier la vitesse faible des schémas d’Euler et de Milshtein
pour le calcul d’un Put européen d’échéance T dans le modèle de Black-Scholes,
c’est-à-dire la dépendance en N des quantités 𝔼(e−rT (K − S
T e)+) − 𝔼(e−rT (K − S
T )+) et
𝔼(e−rT (K − S
T m)+) − 𝔼(e−rT (K − S
T )+). Pour cela, on va évaluer ces quantités d’une part en
calculant 𝔼(e−rT (K − S
T )+) par la formule de Black-Scholes et d’autre part en approchant cette
espérance par un calcul Monte-Carlo utilisant les mêmes accroissements browniens que
ceux qui servent à calculer 𝔼(e−rT (K − S
T e)+) et 𝔼(e−rT (K − S
T m)+). La deuxième
approche entre dans le cadre des techniques de variables de contrôle pour réduire la
variance.
- Compléter le programme vitfaible_Q.sce.
- Quel est le comportement théorique de 𝔼(e−rT (K − S
T e)+) − 𝔼(e−rT (K − S
T )+) en
fonction de N ?
- Exécuter le programme (exec vitfaible_Q.sce) pour constater la vitesse faible effective
des schémas d’Euler et de Milshtein. La technique de variable de contrôle est-elle
efficace?
2.2 Extrapolation de Romberg
On souhaite maintenant étudier l’accélération de la convergence faible par la méthode
d’extrapolation de Romberg. On note respectivement Se,N et Se,2N (resp. Sm,N et Sm,2N) les
schémas d’Euler (resp. Milshtein) pour N resp. 2N pas de temps. On va évaluer
et la
quantité analogue pour le schéma de Milshtein en utilisant les même accroissements browniens
pour chacun des termes dans l’espérance afin de réduire la variance.
- Pour k ∈ {0,…,N − 1} exprimer S (resp. Se,N, Se,2N, Sm,N,
Sm,2N) en fonction de S (resp. Se,N, Se,2N, Sm,N, Sm,2N) et des
accroissements W − W et W − W.
- Implémenter ces formules dans le programme romberg_Q.sce puis l’exécuter (exec
romberg_Q.sce). Que constatez-vous?
- Exécuter le programme vectromberg.sce optimisé pour effectuer rapidement un grand
nombre de simulations indépendantes.
3 Modèle à volatilité stochastique
On s’intéresse au modèle à volatilité stochastique
| (1) |
où α,β > 0, Y 0 = 0, ρ ∈ [−1, 1], f : ℝ → ℝ+ est une fonction régulière et (W1,W2) est un
mouvement brownien de dimension 2.
- Montrer que l’on ne peut implémenter le schéma de Milshtein que si ρ2 = 1 ou bien f
est constante.
- Dans le cas où f(y) = σ0 + y, approcher numériquement 𝔼(e−rT (K − S
T )+).
- Quelle est la loi du couple (Y tk+1 − e−αΔtY
tk,Wtk+11 − W
tk1)? En déduire comment
améliorer la discrétisation du modèle.
3.1 Réponses