Académique Documents
Professionnel Documents
Culture Documents
19/03/09
1
TABLE DES MATIÈRES 2
2 Méthodes Théoriques 3
2.1 Calcul des sensibilités . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Différences finies . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.2 Processus Tangent . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.3 Formule de Bismut . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.4 Maliavin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Génération de ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1 Génération par formules fermées . . . . . . . . . . . . . . . . . 6
2.2.2 Génération par le schéma d’Euler . . . . . . . . . . . . . . . . . 7
2.2.3 Génération par le schéma de Milshtein . . . . . . . . . . . . . . 7
2.3 Méthodes de réduction de variance . . . . . . . . . . . . . . . . . . . . 8
2.3.1 Variables de contrôle statiques . . . . . . . . . . . . . . . . . . 8
2.3.2 Variables corrélées négativement . . . . . . . . . . . . . . . . . 8
2.3.3 Variables de contrôle adaptatives . . . . . . . . . . . . . . . . . 9
2.3.4 Importance sampling . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.5 Gradient stochastique . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.6 Quasi Monte-Carlo . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Structure du code 12
3.1 Principaux fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Points clés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Pointeurs de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 Conclusion : Benchmarks 22
5.1 Génération du sous-jacent . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.2 Calcul des sensibilités . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3 Réductions de variance . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2 MÉTHODES THÉORIQUES
Tester des méthodes de réduction de variance fondées sur les formules donnant le
delta d’un call (et d’un put) dans le modèle de Black-Scholes, comme celles proposées
en cours au chapitre 2 (notamment dans les exercices).
Références :
– polycopié de cours
– Boyle P., M. Broadie et P. Glasserman, Monte-Carlo Methods for security pri-
cing, Journal of Economic Dynamics and Control, 21, 1267-1321, 1997.
– Fournié E., J.-M. Lasry, J. Lebuchoux et P.-L. Lions, Applications of Malliavin
calculus to Monte Carlo methods in Finnance II, Finance and Stochastics, 5,
201-236, 2001.
– Fournié E., J.-M. Lasry, J. Lebuchoux, P.-L. Lions et N. Touzi, Applications of
Malliavin calculus to Monte Carlo methods in Finance, Finance and Stochastics,
3, 391-412, 1999.
– Kloeden P.E. et E. Platen, Numerical solution of stochastic differential equa-
tions, Applications of Mathematics, 23, Springer-Verlag, New York, 1992.
2 Méthodes Théoriques
Nous présentons ici les méthodes que l’on a utilisées pour calculer les sensibilités
aux différents paramètres d’un Call, lorsque le sous-jacent suit un modèle :
3
2.1 Calcul des sensibilités 2 MÉTHODES THÉORIQUES
dSt
– Black Scholes : St = rdt + σdWt
dSt Stη
– CEV : St = rdt + σ √ dWt
1+St2
On notera C(x, T, K, σ) le prix de l’option ; avec h(x) = (x − K)+ , dans tous les cas,
C(x, T, K, σ) = e−rT IE(h(STx ))
∂C
∂x ≈ e−rT IE( h(x+,ω)−h(x−,ω)
2 )
Nous calculons cette espérance par Monte Carlo. Cette méthode fonctionne aussi
pour le Vega. Pour Gamma, on pourrait utiliser
Puisqu’il faut calibrer , une autre manière consiste à utiliser les Différences
finies à pas décroissant, i.e prendre n = nCγ par exemple. Nous avons pris γ = 14 ,
comme conseillé dans le cours.
4
2.1 Calcul des sensibilités 2 MÉTHODES THÉORIQUES
On peut alors simuler le processus tangent en même temps que l’on simule le pro-
cessus lui même, par un schéma d’Euler ou de Millstein, puis estimer nos sensibilités
par Monte-Carlo.
Remarques
– Dans le cas du Gamma d’un payoff régulier, il faudrait simuler le proces-
2
sus tangent du processus tangent (nul dans BS !) ∂∂xC2 = e−rT IE(YT2 h(2) (STx ) +
∂YTx 0 x
∂x h (ST )) (formule fausse dans le cas du put ou du call puisque h présente un
saut)
– Le cas du Vega est plus compliqué car σ intervient directement dans l’équation.
∂S σ
Dans le cas où dStσ = f (Stσ )dt + σg(Stσ )dWt , si Zt = ∂σt , alors
– Simuler le processus tangent ne coûte pas plus cher, puisqu’il se calcule en même
temps que St
Ainsi,
∂C
∆=
∂x
f onctionpayof f
−rT ∂z }| {
= e IE( h(STx ) )
∂x
Z T
1 Ys
= e−rT IE(h(STx ) dWs )
T 0 g(Ssx )
5
2.2 Génération de ST 2 MÉTHODES THÉORIQUES
Cette formule se simplifie dans le cas de Black Scholes puisque g(Ssx ) = σSsx et
Sx
Ys = xs . On obtient finalement ∆ = e−rT IE(h(STx ) W
σT ).
T
Il paraît vraiment compliqué d’utiliser cette formule pour calculer le Gamma dans
le cas de CEV par exemple.
2.1.4 Maliavin
Pour le cas de Black-Scholes, on peut continuer le calcul de la formule de Bismut
pour obtenir Gamma.
On a en effet
∂h(STx ) WT
e−rT IE( ) = e−rT IE(h(STx ) )
∂x σT
et ceci quelque soit h(x). On peut alors "appliquer cette formule sur elle-même", et
on obtient :
∂2C
Γ=
∂x2
1
= e−rT IE(h0 (STx )STx − h(STx )WT )
x2 σT
1 W2 1
= e−rT 2 IE(h(STx )( T − WT − ))
x σT σT σ
Remarque Maliavin ne fonctionne que parce que l’on dispose de la loi exacte de
ST .
2.2 Génération de ST
Trois manières différentes de génération de ST ont été implémentées. Il s’agit de la
génération par formule fermée, la génération avec un schéma d’Euler et la génération
par un Schéma de Milshtein.
Les équations de diffusions du type Black Scholes et CEV sont toutes deux de la
forme dSt = b(t, St )dt+σ(t, St )dWt avec b et σ continues et lipshitziennes. De manière
plus générales, elles vérifient toutes les conditions de régularités requises pour que leurs
schémas d’Euler et de Milshtein convergent vers leur valeur réelle.
6
2.2 Génération de ST 2 MÉTHODES THÉORIQUES
Par contre, dans le cadre de la dynamique CEV, il n’est pas possible d’obtenir
simplement la valeur de ST comme une fonction de variables aléatoires simples. On est
donc conduit à modéliser sa dynamique par des schémas du type Euler ou Milshtein.
de variables normales.
Les conditions de régularité font que tnkn → t ⇒ S tnkn → St , ce qui implique que
S T converge vers ST .
S tnk+1 = S tnk
2η
1 S tnk 2
+ S tnk (r − σ 2 2 (1 + η + ηS tnk )∆tn )
2 (1 + S n )2
tk
Stηn p
+ S tnk σ q k ∆tn Uk+1
1 + St2n
k
2η
1 S tnk 2
+ S tnk σ 2 2 (1 + η + ηS tnk )∆tn Uk+1
2
2 (1 + S tnk )2
S 0 = S0 k = 0, ..., n − 1
7
2.3 Méthodes de réduction de variance 2 MÉTHODES THÉORIQUES
Comme dans les schémas d’Euler, les conditions de régularité font que S T converge
vers ST .
L’idée est de substituer XTx par xerT = IEQT [XTx ] dans les formules utilisées
pour calculer les sensibilités, en écrivant ϑ(XTx ) = ϑ(xerT ) + ϑ(XTx ) − ϑ(xerT ) .
| {z }
Ξ
e
Ainsi, pour calculer le delta d’une option européenne de pay-off φ(XTx ), et de prix
f (x) = IEQ [φ(XTx )], on obtient les formules suivantes :
Xx
– processus tangent : f 0 (x) = φ0 (xerT )erT + IEQ [(φ0 (XTx ) − φ0 (xerT )) xT ]
– Maliavin : f 0 (x) = xσT
1
IEQ [(φ(XTx ) − φ(xerT ))WT ]
Pour calculer le gamma d’une option européenne, on part de f 00 (x) =
1 Q 0 x x x
x2 σT IE [(φ (XT )XT −φ(XT ))WT ], et on applique le même type de raisonnement pour
00
trouver que f (x) = x2 σT IEQ [(φ0 (XTx )XTx − φ(XTx ) − φ0 (xerT )xerT + φ(xerT ))WT ].
1
Dans le modèle de BS, une option ayant un payoff monotone en ST (ex : call ou
put européen) est de la forme hT = ϕ(STx ) ou ϕ est monotone.
σ2
√
loi loi
On a Stx ∼ xe(r− 2 )T +σ T Z
avec Z ∼ N (0, 1), et donc hT ∼ f (Z) avec f monotone.
8
2.3 Méthodes de réduction de variance 2 MÉTHODES THÉORIQUES
loi
Puisque Z ∼ −Z, en posant h0T = f (−Z), on obtient la réduction de variance sou-
h +h0
haitée avec la nouvelle variable T 2 T .
Si on note Call0 = e−rT IEQ (STx − K)+ et P ut0 = e−rT IEQ (K − STx )+ , la parité
Call-Put s’écrit Call0 − P ut0 = x − e−rT K.
En considérant X λ = X − λΞ, l’idée est d’estimer IEX par IEX λmin avec λmin
rendant la variance de X λ minimale.
Estimation de λmin
VarX λmin est polynômiale du 2nd degré, et λmin = Cov(X,Ξ)
VarX .
CM PM PM
On pose λM = VM avec CM = 1
M k=1 Xk (Xk − Xk0 ) et VM = 1
M k=1 (Xk −
M →∞
Xk0 )2 . La loi forte des grands nombres implique alors que λM → λmin .
9
2.3 Méthodes de réduction de variance 2 MÉTHODES THÉORIQUES
L’importance sampling se base sur l’identité suivante, connue sous le nom de for-
2
mule de Cameron-Martin : IEf (Z) = eθ /2 IE[f (Z + θ)e−θ(Z+θ) ] où Z ∼ N (0, 1).
Comme pour l’estimation par variable de contrôle adaptative (section 2.3.3), deux
approches existent :
– approche batch : estimer θmin par θbmin = θM , et dans un second temps estimer
|θ 2
PM (m) min |
b
par Monte Carlo IEf (Z) ≈ 1 f (Z (m) + θbmin )e−(θmin |Z )− 2 .
b
M m=1
10
2.3 Méthodes de réduction de variance 2 MÉTHODES THÉORIQUES
Difficultés rencontrées Utiliser quasi Monte-Carlo n’est pas plus difficile que
Monte-Carlo, et l’on aura d = 2 dans nos programmes. Cependant :
– il faut prendre garde au fait que ces suites ont leurs composantes qui se calculent
indépendamment. Ce sont des suites vectorielles et elles ne conservent leurs
propriétés que dans ce cas là !
Exemple : S’il nous fallait un seul nombre aléatoire et que l’on calculait ξn1
tout seul, celui-ci s’incrémenterait automatiquement, mais pas ξn2 . La prochaine
1
utilisation de ξn renverrait (ξn+1 , ξn2 ) et la suite ne serait plus bien distribuée.
Il faut donc faire calculer ξn et ξn et "jeter" ξn2 si l’on n’a besoin que d’un seul
1 2
nombre aléatoire.
– Certains articles conseillent de prendre yi = p1i pour d < 3. On peut éviter
les déconvenues en écrivant yi en "dur" dans l’addition où il intervient plutôt
que de calculer sur l’ordinateur la suite des décimales en base pi à partir de sa
p
représentation "double". On remplacera ξn+1 = ξn ⊕p y par ξn+1 = ξn ⊕p 0.1
11
3 STRUCTURE DU CODE
3 Structure du code
Notre principal soucis fut sans doute de condenser le code, pour ne pas réécrire la
méthode "différences finies" 10 fois avec le schéma d’Euler BS, de Millstein BS, puis
encore pour le modèle CEV, ... Mais il fallait aussi que le code reste clair et lisible.
Et nous avons pu le faire sans créer de classes (délibérément), ce qui peut sur-
prendre. Mais sans les nombreuses contraintes qui en découlent, nous avons ainsi pu
nous concentrer sur l’écriture des fonctions et la compréhension immédiate de celles-ci.
Un projet comme celui-ci comprend environ 1000 lignes de code. C’est peu com-
paré à du code "industriel" (millions de lignes), mais à l’échelle d’un écran, où l’on
ne fait tenir qu’une trentaine de lignes, il reste primordial de coder proprement et de
bien agencer le code. Aussi nous avons pris soin de diviser le code en de nombreux
fichiers pour gagner en lisibilité, par le biais des include.
12
3.3 Pointeurs de fonctions 3 STRUCTURE DU CODE
Code : double (*payoff ) (double, double) ; pour déclarer payoff comme pointeur de
fonction prenant 2 paramètres. Et payoff = &call_payoff ; pour faire pointer payoff
vers la fonction call(x, K).
13
4 PRÉSENTATION DES RÉSULTATS
Dans
qla plupart des simulations que nous présenterons, nous indiquerons à la fois
X M et VMM de manière à avoir une idée de l’intervalle de confiance pour IE[X] à 95%.
14
4.1 Convergence de Monte-Carlo 4 PRÉSENTATION DES RÉSULTATS
15
4.1 Convergence de Monte-Carlo 4 PRÉSENTATION DES RÉSULTATS
q
VM
√
Nombre de simulations Valeur (X M (∼ ∆)) Ecart type (σ = M ) M ∗σ
100 0,64136 0,131 1.31
1000 0,67436 0,0458 1.44
10000 0,62781 0,0135 1.35
0.1 M 0,64102 0,00443 1.4
1M 0,63793 0,00138 1.38
10 M 0,63652 0,00044 1.39
valeur réelle 0,63683
– le delta d’un Call, dynamique CEV, avec la formule de Bismut ; ST étant généré
par un schéma d’Euler.
– le gamma d’un Call, dynamique BS, avec la méthode des différences finies et la
méthode de Maliavin.
La convergence par Monte Carlo s’effectue correctement pour le prix et le delta
mais la méthode des différences finies ne donne pas une bonne approximation du Γ
d’un Call.
Ceci s’explique par le fait que le pay-off du Call n’est pas suffisamment régulier
(sa dérivée seconde est un dirac). La méthode de Maliavin est alors beaucoup plus
adaptée pour estimer le gamma.
16
4.1 Convergence de Monte-Carlo 4 PRÉSENTATION DES RÉSULTATS
Fig. 4 – Prix estimé par Monte Carlo. modèle de BS. Prix MC en bleu foncé,
intervalle de confiance en bleu clair. La convergence est rapide et stable.
17
4.1 Convergence de Monte-Carlo 4 PRÉSENTATION DES RÉSULTATS
18
4.2 Méthodes de réduction de variance 4 PRÉSENTATION DES RÉSULTATS
19
4.2 Méthodes de réduction de variance 4 PRÉSENTATION DES RÉSULTATS
Tab. 5 – Reduction de variance par Importance Sampling. Prix d’un Call BS,
S0 = 80, K = 100. Augmentation drastique de la précision avec Importance Sampling
sur les calls hors de la monnaie.
20
4.2 Méthodes de réduction de variance 4 PRÉSENTATION DES RÉSULTATS
QMC converge extrêmement vite vers la valeur limite, et n’a pas de biais notable.
Cependant, d’autres simulations effectuées avec la suite de Kakutani montrent une
convergence très rapide, mais avec un léger biais.
Le graphe 11 présente les résultats de la simulation de prix du Call avec QMC
Randomisé.
21
5 CONCLUSION : BENCHMARKS
Fig. 10 – Prix estimé avec QMC. Prix BS estimé par Monte Carlo simple en rouge,
par QMC avec la suite de Halton en bleu. QMC a une convergence extrêmement rapide
par rapport à un Monte Carlo traditionnel.
5 Conclusion : Benchmarks
5.1 Génération du sous-jacent
La génération de ST par Euler ou Milshtein donnent des résultats très similaires
si bien qu’il est possible d’utiliser indifféremment l’une ou l’autre méthode dans les
diverses applications. Il est cependant à noter que le schéma d’Euler est légèrement
plus rapide que celui de Milshtein en raison d’un développement à un ordre moins
élevé de la formule de diffusion.
22
5.2 Calcul des sensibilités 5 CONCLUSION : BENCHMARKS
Fig. 11 – Prix d’un Call estimé avec QMC Randomisé. Prix BS estimé par
QMC randommisé avec la suite de Kakutani. La convergence est relativement rapide.
23
5.3 Réductions de variance 5 CONCLUSION : BENCHMARKS
24