Méthodes numériques en finance
Méthodes numériques en finance
Méthodes numériques en finance
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
11 MÉTHODES DE SIMULATIONS DANS LE MODÈLE DE BLACK & SCHOLES (1973) 147<br />
c’est à dire, <strong>en</strong> combinant les deux termes que<br />
R ti ,t i−1<br />
∼ 1 2 b(X t i−1<br />
)b ′ (X ti−1 )[(∆ i W ) 2 − ∆ i ] + R ti ,t i−1<br />
.<br />
Sous des conditions de régularités des fonctions a(·) et b(·), il est alors possible de<br />
montrer que le reste R ti ,t i−1<br />
est néglieable par rapport à l’expression de gauche.<br />
On a alors le schéma itératif suivant, <strong>en</strong> notant ∆ i = t i − t i−1 et ∆ i W = W ti − W ti−1 ,<br />
• X (n)<br />
0 = X 0 ,<br />
• ...<br />
• X (n)<br />
t i<br />
• ...<br />
•<br />
= X (n)<br />
t i−1<br />
+ a(X (n)<br />
t i−1<br />
) · ∆ i + b(X (n)<br />
t i−1<br />
) · ∆ i W + 1 2 b(X t i−1<br />
)b ′ (X ti−1 )[(∆ i W ) 2 − ∆ i ],<br />
Proposition 88. L’approximation de Milstein à pas constant converge fortem<strong>en</strong>t à l’ordre<br />
γ = 1.<br />
A partir de là, on <strong>en</strong> déduit l’algorithme suivant pour simuler le prix d’une option,<br />
1. Pour k = 1, ..., N, on simule S T , solution de dS t = rS t dt + σS t dW t , i.e.<br />
] )<br />
S t = S 0 exp<br />
([µ − σ2<br />
t + σW t<br />
2<br />
(<br />
soit S(k) ⇐ exp S 0 exp<br />
] ([µ − σ2<br />
t + σ √ ))<br />
tN , où N ∼ N (0, 1),<br />
2<br />
2. Pour chaque scénario k on détermine le payoff, V (S T , T )(k) ← V (S(k), T ),<br />
3. On détermine alors l’espérance (risque neutre) associée<br />
Ê(V (S T , T )) ⇐ 1 N∑<br />
V (S T , T )(k)<br />
N<br />
k=1<br />
4. Enfin, la valeur actualisée ˆV ⇐ e −rT Ê(V (S T , T )) est le prix <strong>en</strong> 0 de l’option.<br />
11.6 Simulation du mouvem<strong>en</strong>t browni<strong>en</strong>...<br />
Simulation processus browni<strong>en</strong> géométrique - Euler<br />
N.euler=1000; dt.euler=T/N.euler<br />
dW=sqrt(dt.euler)*rnorm(1)<br />
S.euler=c(S.euler,S.euler+dt.euler*S.euler*r + sigma*S.euler*dW)<br />
S.euler=S0; W=0<br />
}<br />
for(j in 1:N.euler) {<br />
Un autre code est possible <strong>en</strong> utilisant la discrétisation de Milstein.<br />
Simulation processus browni<strong>en</strong> géométrique - Milstein<br />
N.milstein=1000; dt.milstein=T/N.milstein<br />
S.milstein=S0; W=0<br />
for(j in 1:N.milstein) {<br />
dW=sqrt(dt.milstein)*rnorm(1)<br />
S.milstein