Méthode de Monte Carlo pour le calcul d'options



Documents pareils
TP1 Méthodes de Monte Carlo et techniques de réduction de variance, application au pricing d options

I. Introduction. 1. Objectifs. 2. Les options. a. Présentation du problème.

Probabilités III Introduction à l évaluation d options

Modélisation et simulation

Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2.

Manuel d Utilisateur - Logiciel ModAFi. Jonathan ANJOU - Maud EYZAT - Kévin NAVARRO

3 Approximation de solutions d équations

SPREAD (CYLINDRE) CONSTRUCTION DE DEUX OPTIONS

Le modèle de Black et Scholes

Extrait du Bulletin Officiel des Finances Publiques-Impôts DIRECTION GÉNÉRALE DES FINANCES PUBLIQUES

Valorisation d es des options Novembre 2007

Processus Stochastiques

Correction du baccalauréat S Liban juin 2007

Commun à tous les candidats

Master IMEA 1 Calcul Stochastique et Finance Feuille de T.D. n o 1

Retournement Temporel

Chapitre 2 Le problème de l unicité des solutions

Hedging delta et gamma neutre d un option digitale

3. Caractéristiques et fonctions d une v.a.

NOTE SUR LA MODELISATION DU RISQUE D INFLATION

Correction du baccalauréat ES/L Métropole 20 juin 2014

Brochure d'information sur les options

Etude de fonctions: procédure et exemple

Journal officiel de l'union européenne

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

MATHS FINANCIERES. Projet OMEGA

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

LE PROBLEME DU PLUS COURT CHEMIN

La fonction exponentielle

Introduction à la Statistique Inférentielle

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

TSTI 2D CH X : Exemples de lois à densité 1

Exercice autour de densité, fonction de répatition, espérance et variance de variables quelconques.

Moments des variables aléatoires réelles

I3, Probabilités 2014 Travaux Dirigés F BM F BM F BM F BM F B M F B M F B M F B M

TURBOS WARRANTS CERTIFICATS. Les Turbos Produits à effet de levier avec barrière désactivante. Produits non garantis en capital.


SECTION 5 : OPERATIONS SUR PRODUITS DERIVES

Propriétés des options sur actions

Développements limités. Notion de développement limité

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Compte rendu des TP matlab

Résolution d équations non linéaires

8.1 Généralités sur les fonctions de plusieurs variables réelles. f : R 2 R (x, y) 1 x 2 y 2

1 TD1 : rappels sur les ensembles et notion de probabilité

TESTS D'HYPOTHESES Etude d'un exemple

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Simulation de variables aléatoires

2- Comment les traders gèrent les risques

NOTIONS DE PROBABILITÉS

Raisonnement par récurrence Suites numériques

Manuel sur les risques liés aux portefeuilles d'investissement DEGIRO

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Théorème du point fixe - Théorème de l inversion locale

Fonctions de deux variables. Mai 2011

Cours d Analyse. Fonctions de plusieurs variables

4 Distributions particulières de probabilités

Introduction au pricing d option en finance

Continuité en un point

Cours 02 : Problème général de la programmation linéaire

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Méthodes de Simulation

Espérance conditionnelle

Université Paris-Dauphine DUMI2E 1ère année, Applications

MARTINGALES POUR LA FINANCE

Correction du Baccalauréat S Amérique du Nord mai 2007

FONCTION EXPONENTIELLE ( ) 2 = 0.

Chapitre 1 Cinématique du point matériel

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

LA RÉGULARISATION DES CHARGES EN FIN D EXERCICE

Construction de l'intégrale de Lebesgue

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

LES OPTIONS ET LE DIVIDENDE. Makram BELLALAH et Armand DERHY

ERRATA ET AJOUTS. ( t) 2 s2 dt (4.7) Chapitre 2, p. 64, l équation se lit comme suit : Taux effectif = 1+

Couples de variables aléatoires discrètes

Continuité d une fonction de plusieurs variables

OM 1 Outils mathématiques : fonction de plusieurs variables

Théorie Financière 8 P. rod i u t its dé dérivés

Actuariat I ACT2121. septième séance. Arthur Charpentier. Automne charpentier.arthur@uqam.ca. http ://freakonometrics.blog.free.

= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m

COMPRENDRE LES OPTIONS BINAIRES - LEÇON 1

Dérivés Financiers Options

I. Ensemble de définition d'une fonction

GEA II Introduction aux probabilités Poly. de révision. Lionel Darondeau

Équations non linéaires

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

CHAPITRE VIII : Les circuits avec résistances ohmiques

Christophe Roulet LA BOURSE

Les indices à surplus constant

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

ACTUARIAT 1, ACT 2121, AUTOMNE 2013 #12

Calculs de probabilités avec la loi normale

Travaux dirigés d introduction aux Probabilités

Qu est-ce-qu un Warrant?

PRIME D UNE OPTION D ACHAT OU DE VENTE

Recueil des formulaires et des instructions à l'intention des institutions de dépôts

Value at Risk. CNAM GFN 206 Gestion d actifs et des risques. Grégory Taillard. 27 février & 13 mars 20061

Transcription:

Méthode de Monte Carlo pour le calcul d'options LADIAS Elie, WANG Shuai 7 juin 2013 1

Table des matières 1 Méthode de Monte-Carlo et Calcul d'intégrales 4 1.1 Description de la méthode.................... 4 1.2 Construction de l'intervalle de conance............. 4 1.3 Exemple : Calcul du volume de la sphère unité dans R 6... 5 2 Méthodes de réduction de variance 8 2.1 Méthode de l'échantillonnage préférentiel............ 8 2.2 Variables de contrôle....................... 9 2.3 Variables antithétiques...................... 9 2.4 Application............................ 9 3 Application : Calcul du prix d'une option en nance 13 3.1 Les options............................ 13 3.2 Pricing d'une option........................ 13 3.3 Option panier........................... 14 4 Annexe 16 4.1 Code R : volume de la sphère.................. 16 4.2 Code R : volume de la sphère avec échantillonnage préférentiel 17 4.3 Code R : calcul des diérents calls dans la premiere partie.. 18 4.4 Code R : Calcul du call européens dans la troisième partie.. 22 4.5 Code R : Calcul du call sur les options paniers......... 23 2

La naissance de la méthode Monte-Carlo remonte à l'expérience de l'aiguille de Buon en 1777. Le comte Georges-Louis Leclerc de Buon réussit à estimer π en lançant de nombreuses fois une aiguille sur son parquet. Un travail long et fastidieux, c'est pourquoi les méthodes Monte-Carlo se sont réellement développées avec l'apparition des premiers ordinateurs qui donnaient la possibilité de simuler un grand nombre d'expériences aléatoires à moindre coût. Ainsi, c'est sous l'impulsion de John Von Neumann et Stanislas Ulam, lors de la seconde guerre mondiale, que les méthodes de Monte-Carlo ont été vulgarisées. Ces deux mathématiciens ont utilisé ces méthodes probabilistes pour résoudre des équations aux dérivées partielles dans des recherches sur la fabrication de la bombe atomique. Nous nous intéressons à ces méthodes car en nance, elles permettent de calculer avec une certaine précision le prix de produit dérivée que l'on ne peut pas calculer analytiquement. Ces méthodes ont de plus l'avantage d'avoir une vitesse de convergence de K/ n, insensible à la dimension. Dans un premier temps, on expliquera le fonctionnement des méthodes Monte- Carlo(MC) pour le calcul d'intégrale, puis on verra comment optimiser nos calculs avec diérentes méthodes de réduction de variance et enn on verra les applications de ces méthodes en nance. 3

1 Méthode de Monte-Carlo et Calcul d'intégrales 1.1 Description de la méthode La méthode Monte-Carlo repose sur un théorème fondamental de probabilités, la loi forte des grands nombres. Théorème 1. Soit (X i ) i 1 une suite de variables aléatoires indépendantes suivant toutes la même loi qu'une variable aléatoire X. On suppose que E( X ) < +. Alors pour tout ω : P { X 1 (ω) + + X n (ω) lim = E(X) } = 1 n n L'idée de la méthode Monte-Carlo est de mettre la quantité recherchée sous la forme d'une espérance de variable aléatoire puis d'approximer cette quantité en utilisant la loi forte des grands nombres. Nous pouvons résumer cette méthode en trois étapes, premièrement nous mettons notre intégrale sous la forme d'une espérance de variable aléatoire. Ensuite, nous devons calculer une quantité de la forme E(X) où X est une variables aléatoires. Nous supposons que l'on sait simuler une suite de variable aléatoire (X i ) i 1 indépendante et identiquement distribuée de loi X. Nous simulons donc cette suite, puis nous approximons E(X) par : 1 N (X 1 +... + X N ) E(X) Par la loi forte des grands nombres nous pouvons dire que notre approximation nira par être égale à notre espérance. Cependant pour un nombre de simulations N ni nous avons aucune idée de la qualité de notre approximation. C'est pourquoi nous allons voir comment construire un intervalle de conance de niveau α que nous donnerons en plus de notre estimation. C'està-dire que nous donnerons en plus de notre valeur un intervalle où la valeur réel a α% de chance de se trouver. Nous allons voir comment construire cette intervalle. 1.2 Construction de l'intervalle de conance. La construction de l'intervalle de conance repose sur un deuxième théorème fondamental de probabilités, le théorème central limite. Théorème 2. Soit (X i ) i 1 une suite de variables aléatoires indépendantes identiquement distribuées telles que E(X1 2) < +. Notons σ2 la variance de X 1 Alors n ( σ ɛ n) N(0, 1) n 4

où ɛ n est l'erreur commise, c'est-à-dire Nous avons Nous voulons ɛ n = E(X) 1 n (X 1 + + X n ) n σ (ɛ n) n N(0, 1) P [ɛ n < a] = 1 α Nous déduisons que a = u 1 α/2 est le fractile d'ordre 1 α/2 de la loi normale centrée réduite. Ainsi, nous pouvons écrire que u 1 α/2 n σ ɛ n u 1 α/2 X n u 1 α/2 E(X) X n + u 1 α/2 Finalement nous obtenons un intervalle de conance de la forme [ Xn u 1 α/2 σ n ; X n + u 1 α/2 σ n ] σ étant dans la plupart des cas inconnu nous utiliserons l'éstimateur sans biais de la variance V = 1 n (X i X N 1 n ) 2 i=1 Avec V, on peut maintenant obtenir un intervalle de conance de bonne qualité qui sera de la forme [ Xn u 1 α/2 V n ; X n + u 1 α/2 V n ] 1.3 Exemple : Calcul du volume de la sphère unité dans R 6 Nous cherchons à calculer le volume de la sphère de rayon 1 et de centre O R 6 dans R 6 par la méthode Mone-Carlo. Nous pouvons bien entendu calculer ce volume analytiquement, il est égal à V = π 3 /6. Nous allons noter S la sphère, alors : S = {x R 6 ; x 2 < 1} La quantité que nous cherchons à calculer est donc V ol(s) = dx = S R 6 1l { x 2 <1}dx 5

Figure 1 Volume de la sphère par Monte-Carlo Volume 4 5 6 7 Volume de la boule Estimation par Monte Carlo 0 2000 4000 6000 8000 10000 Nombre de simulations Mettons cette intégrale sous la forme d'une espérance, pour cela on remarque que S est inclus dans l'hypercube de dimension 6 que nous noterons Q, on a donc : V ol(s) = 1l { x 2 <1}dx Q Notons dp Q (x) la probabilité uniforme sur Q, on a dp Q (x) = dx/64. On peut donc maintenant écrire V ol(s) = 64 1l { x 2 <1}dP Q (x) = 64E Q [1l { X 2 <1}] Q Notre intégrale est maintenant sous la forme d'une espérance. Nous allons maintenant simuler une suite (X i ) i=1...n de N variables uniformes sur Q puis notre volume sera donné en multipliant par 64 la moyenne des X i. Pour calculer notre volume nous avons écrit l'algorithme suivant sur R. (i) Simulation N variables aléatoire de loi uniforme sur Q: N=1000; X=rep(1,N); Y=matrix(runif(6*N), ncol=n); (ii) Simulation de l'indicatrice: Z=colSums(Y)); X[Z>1]=0; (iii) Le Volume de la sphère est donné par (64*somme)/N: Xb=cumsum(X)/(1:N); Ec=64*Xb; On obtient la gure 1. Nous voyons que l'approximation n'est pas très précise, on se rend compte de l'importance de rajouter l'intervalle de conance. Nous allons le rajouter sur notre gure, on choisira 0.95 comme niveau de conance. Nous ajoutons quelques lignes de code à notre algorithme. 6

(iv) Calcul de la variance: Nmoinsun=(1:N)-1; Nmoisun=[1]=1; V=rep(NA,N); V=64^2*cumsum((X-Xb)^2)/Nmoinsun; (v) Calcul de l'intervalle de confiance: Iinf=(Ec-qnorm(0.975, mean=0, sd=1)*sqrt(v/(1:n))); Isup=(Ec+qnorm(0.975, mean=0, sd=1)*sqrt(v/(1:n))); Figure 2 Volume de la sphère par Monte-Carlo et intervalle de conance Volume 2 3 4 5 6 7 8 Volume de la boule Estimation par Monte Carlo Intervalle de confiance 0 2000 4000 6000 8000 10000 Nombre de simulations En plus de nous apporter des informations précieuses sur la précision de nos calculs, l'intervalle de conance nous donne la vitesse de convergence de la méthode. Ici, elle est de l'ordre de σ/ n. Dans la deuxième partie nous verrons comment diminuer cette vitesse de convergence à l'aide de diérentes méthodes de réduction de variance. 7

2 Méthodes de réduction de variance Nous avons vu que la vitesse de convergence de notre méthode dépend directement de σ 2, la variance de la quantité que nous voulons calculer. An d'améliorer cette vitesse de convergence, nous allons appliquer des méthodes dites de réduction de variance qui permettent de réduire la valeur de σ 2. On cherche toujours à calculer E(X), l'idée générale est de trouver une autre représentation sous la forme d'espérance de la quantité à calculer telle que la variance de cette nouvelle quantité soit inférieure. C'est-à-dire chercher Y tel que : { E[Y ] = E[X] V ar[y ] < V ar[x] Nous allons voir trois méthodes de réduction de variance, la méthode de l'échantillonnage préférentiel, la méthode de la variable de contrôle et la méthode des variables antithétiques. 2.1 Méthode de l'échantillonnage préférentiel Supposons que l'on cherche à calculer E[g(X)] et que la loi de X soit f(x)dx. La quantité que l'on cherche à évaluer vaut donc : E[g(X)] = g(x)f(x)dx R Soit maintenant, f la densité d'une autre loi telle que f > 0 et R f(x)dx = 1, il est clair que E[g(X)] peut aussi s'écrire : E[g(X)] = R g(x)f(x) f(x) f(x)dx g(y )f(y ) Cela signie que E[g(X)] = E[ ], si Y suit la loi de f(y f(x)dx sous P. ) On a donc une autre méthode de calcul de E[g(X)] en utilisant n tirages de Y, Y 1...Y n et en approchant E[g(X)] par : ( 1 g(y1 )f(y 1 ) + + g(y ) n)f(y n ) n f(y 1 ) f(y n ) A ce stade-là, nous ne sommes pas sûrs d'avoir amélioré l'algorithme. On g(y )f(y ) l'aura amélioré si V ar(z) < V ar(g(x)) où Z =. f(y ) 8

2.2 Variables de contrôle Dans sa version la plus simple, il s'agit d'écrire E(f(X)) sous la forme : E(f(X)) = E(f(X) h(x)) + E(h(X)) avec E(h(X)) qui peut se calculer explicitement et V ar((f(x) h(x)) sensiblement plus petit que V ar(f(x)). On utilise alors une méthode de Monte- Carlo pour évaluer E(f(X) h(x)) et le calcul direct pour E(h(X)). 2.3 Variables antithétiques Supposons que l'on cherche à calculer : I = 1 0 f(x)dx comme x 1 x laisse invariante la mesure dx, on a aussi : I = 1 2 1 0 (f(x) + f(1 x))dx On peut donc calculer I de la façon suivante. On tire n variables aléatoires U 1,...U n suivant une loi uniforme sur [0, 1] et indépendantes, et on approxime I par : I 2n = 1 2n (f(u 1) + f(1 U 1 ) + + f(u n ) + f(1 U n ) Lorsqu'on compare cette méthode à une méthode de Monte-Carlo directe à l'issue de 2n tirages, on peut montrer que si la fonction f est continue monotone la qualité de l'approximation s'améliore. 2.4 Application En nance nous sommes amenés à calculer des quantités du type : C = E[(e βg K) + ] Où G est une variable aléatoire de loi normale centrée réduite. Nous expliquerons dans la troisième partie à quoi correspond cette quantité. Nous allons calculer cette quantité C pour β = 1 et k = 1 avec la méthode de Monte-Carlo expliquée au paragraphe 1 puis avec les trois méthodes de réduction de variance. Méthode Monte-Carlo sans réduction de variance : De la même manière que dans la première partie on estime la quantité C en 9

Figure 3 Estimation de C par Monte-Carlo Estimation MC Intervalle de confiance Valeur exacte 0.80 0.85 Prix 0.90 0.95 0e+00 2e+04 4e+04 6e+04 8e+04 1e+05 Simulations fonction du nombre de simulation, on calcule aussi l'intervalle de con ance de niveau 0.95 ainsi que la vraie valeur de C qui se calcule facilement. Nous avons tracé les résultats obtenus sur la gure 3. Méthode Monte-Carlo avec échantillonnage préférentiel : Nous allons maintenant recalculer C mais cette fois avec la méthode de l'échantillonnage préférentiel. Nous écrivons C sous la forme d'une intégrale et on multiplie et divise par β x : Z (eβx K)+ dx 2 C= β x e x /2 β x 2π R Nous faisons le changement de variable x = y sur R+ et x = y sur R, on peut alors écrire C sous la forme : Z (eβ y K)+ + (e β y K)+ y/2 dy e C= 2 2πy R+ Nous remarquons alors que f (x) = e y/2 /2 est la densité d'une variable aléatoire Y exponentielle de paramètre 1/2. Nous pouvons alors écrire : C=E (eβ Y K)+ + (e β 2πY Y K)+ La gure 4 nous donne les résultats obtenu, a n de bien visualiser l'intérêt des méthodes de réduction de variance nous avons également tracé sur le graphique l'intervalle de con ance obtenu avec une méthode de Monte-Carlo sans réduction de variance. Nous voyons tout l'intérêt de la méthode de réduction de variance, la convergence est beaucoup plus rapide et l'intervalle de con ance obtenus est signi cativement réduit. Méthode Monte-Carlo avec variable de contrôle On peut noter C P = E[eβG K] = eβ 10 2 /2 K

Figure 4 Estimation de C par MC avec échantillonnage préférentiel 0.90 Estimation MC échantillonage pref IC MC classique IC MC avec échantillonage pref Valeur exacte 0.80 0.85 Prix 0.95 0e+00 2e+04 4e+04 6e+04 8e+04 1e+05 Simulations Où P = E[K (eβg )+ ] Nous écrivons alors C = eβ 2 /2 K +P Puis nous calculons C à l'aide de la méthode Monte-carlo ( gure 5 ) comparée Figure 5 Prix du call, Monte-Carlo avec variables de contrôle Estimation MC variable de controle IC MC variable de controle IC MC classique Valeur exacte 0.80 0.85 Prix 0.90 0.95 0e+00 2e+04 4e+04 6e+04 8e+04 1e+05 Simulations à la méthode classique, nous voyons bien que notre vitesse de convergence est nettement améliorée. Méthode Monte-Carlo avec variables antithétiques On se sert du fait que G suit la même loi que -G on peut donc écrire 1 C = (E[ eβg K)+ ] + E[(eβ( G) K + ] 2 En simulant de cette manière, on obtient la gure 6 La vitesse de convergence est légèrement améliorée, mais ici cette méthode est moins e cace que les deux précédentes. A n de comparer les trois méthodes de réduction de variance nous avons calculé 1000 fois C avec les trois 11

Figure 6 Prix du call, Monte-Carlo et variables antithétiques 0.80 0.85 Prix 0.90 0.95 Estimation MC variables antithétiques IC MC classique IC MC variables antithétiques Valeur exacte 0e+00 2e+04 4e+04 6e+04 8e+04 1e+05 Simulations méthodes de réduction de variance ainsi qu'avec la méthode de Monte-Carlo sans réduction de variance. Avec les résultats obtenu nous avons tracé la gure 7. Nous voyons sur ce boxplot l'intérêt d'utiliser une méthode de réduction de 0.96 Figure 7 Boxplot comparatif des di érentes méthodes Sans réduction de variance Variable de contrôle Variables antithétiques Echantillonage préférentiel 0.94 0.90 0.92 0.88 0.86 0.84 1 2 3 4 variance, en e et en utilisant l'une de ces méthodes nos calculs de C sont beaucoup plus précis. 12

3 Application : Calcul du prix d'une option en - nance 3.1 Les options Une option est un titre nancier donnant à son détenteur le droit, et non l'obligation d'acheter ou de vendre (selon qu'il s'agit d'une option de vente ou d'achat) une certaine quantité d'un actif nancier à une date convenue et à un prix xé d'avance. La description de l'option se fait à partir de cinq éléments qui sont : La nature de l'option : on parlera souvent de call pour les options d'achat et de put pour les options de vente. L'actif sous-jacent sur lequel porte l'option : il peut s'agir d'une action, d'une obligation, d'une devise... Le montant, c'est à dire la quantité d'actif sous-jacent à acheter ou vendre. L'échéance ou date d'expiration, qui limite la durée de vie de l'option : si l'option peut être exercée à n'importe quel instant on parle d'option américaine, si l'option ne peut être exercée qu'à l'échéance on parle d'option européenne. Le prix d'exercice qui est le prix, xé à l'avance auquel se fait la transactions. L'option à un prix, appelé prime. Notre problème est de déterminer le prix de cette option. C'est le problème du pricing. Examinons, pour xer les idées, le cas d'un call européen, d'échéance T, sur une action dont le cours à la date t est donné par S t. Soit K le prix d'exercice. Il est clair que si, à l'échéance T, le prix K est supérieur au cours S T, le détenteur de l'option n'a pas intérêt à exercer. En revanche si S T > K, l'exercice de l'option permet à son détenteur de faire un prot égal à S T K en achetant l'action au prix K et en la revendant sur le marché au cours S T. Nous voyons qu'à l'échéance, la valeur du call est donnée par la quantité : (S T K) + Ici nous nous intéressons à trouver le montant de la prime que l'acheteur du call doit payer, autrement dit il s'agit de déterminer à l'instant t = 0 une richesse (S T K) + disponible à l'instant T. C'est le problème du pricing. 3.2 Pricing d'une option. On veut déterminer le prix d'un call dont le cours de l'actif sous-jacent est déterminé par S T = S0e (r 1 2 σ2 )T +σ T G 13

où S0 = 100 est la valeur de l'actif à la date t = 0, σ est la volatilité de l'actif. la volatilité est une mesure de l'ampleur des variations du cours d'un actif nancier. r est le taux d'intérêt non risqué, T la date d'échéance de l'option et G une variable aléatoire de loi normale centrée réduite. On veut donc calculer : C = e rt E[(S0e (r 1 2 σ2 )T +σ T G K)+ ] Avec S0, K, r, σ et T xé. Nous avons écrit une fonction qui prend S0, K, r, σ et T en paramètres et retourne le prix du call. An d'améliorer la vitesse de convergence nous avons utiliser la méthode de l'échantillonnage préférentiel vue dans la première partie. Nous avons pris S0 = 100, K = 120, r = 0.02, σ = 0.2 et T = 10. Nous avons tracé sur la gure 8 le prix du call en fonction du nombre de simulations. Ici nous pouvons comparer avec la valeur exacte Figure 8 Prix Call avec S0 = 100, K = 120, r = 0.02, T = 10 Prix 24.5 25.0 25.5 26.0 26.5 Estimation MC échantillonage pref IC MC avec échantillonage pref Valeur exacte 0e+00 2e+04 4e+04 6e+04 8e+04 1e+05 Simulations qui s'obtient facilement. 3.3 Option panier Une option panier est une option ou l'actif sous-jacent est composé de plusieurs actifs risqué( action, option, devise) chacun uctuant en fonction d'une volatilité propre. Le cours de notre actif sous-jacent s'écrit dans ce cas S t = n i=1 et le prix de l'option panier s'écrit C = e rt E[ S0 i e rt 1 2 σ2 i T +σ i T Gi n S0 i e rt 1 2 σ2 i T +σ i T Gi K] i=1 14

En modi ant légèrement la fonction PrixCallEchPref on obtient une fonction qui nous donnera le prix de notre option panier. Supposons qu'on à un panier de 5 actifs. Acitf 1 : S01 = 100, σ1 = 0.5. Acitf 1 : S02 = 200, σ2 = 0.2. Acitf 1 : S03 = 150, σ3 = 0.1. Acitf 1 : S04 = 300, σ4 = 1. Acitf 1 : S05 = 500, σ5 = 0.8. Supposons que K = 1500, nous avons tracé le prix de l'option panier en fonction du nombre de simulation sur la gure 9. Dans le cas d'une option 240 Figure 9 Prix option panier 220 200 210 Prix 230 Estimation MC IC 0 50000 100000 150000 200000 250000 300000 Simulations panier la méthode Monte-Carlo prend tout son sens, en e et il n'existe pas de formule numérique pour le calcul exact du prix de l'option et une méthode numérique sont impossible à mettre en uvre. Dans cet exemple, la méthode de Monte-Carlo montre toute sa puissance et sa souplesse d'utilisation. Elle est quasiment aussi facile à programmer que la méthode dans le cas d'une seule action, et demande seulement un peu plus de temps de calcul et d'espace mémoire. 15

4 Annexe 4.1 Code R : volume de la sphère #TER #15/04/2013 # 0.1.3 Exemple : Calcul du volume de la boule dans R6 N=10000; X=rep(1,N); Y=matrix(runif(6*N), ncol=n ); Y=Y*Y; Z=sqrt(colSums(Y)); X[Z>1]=0; Xb=cumsum(X)/(1:N); Ec=64*Xb; pdf("v1.pdf"); plot(ec, ylim=c(5.16771-2,5.16771+2), col='red', xlab='nombre de simulations',ylab='v abline(h=5.16771); legend('topright', c('volume de la boule', 'Estimation par Monte-Carlo'), col=c('blac dev.off(); #0.1.5: Calcul de l'intervalle de confiance. Nmoinsun=(1:N)-1; Nmoinsun[1]=1; V=rep(NA,N) V=64^2*cumsum((X-Xb)^2)/Nmoinsun; Iinf=(Ec-qnorm(0.975, mean = 0, sd = 1)*sqrt(V/(1:N))); Isup=(Ec+qnorm(0.975, mean = 0, sd = 1)*sqrt(V/(1:N))); pdf("v2.pdf"); plot(ec, ylim=c(5.16771-3,5.16771+3), col='red', xlab='nombre de simulations',ylab='v abline(h=5.16771); points(iinf, col='grey', pch='.'); points(isup, col='grey', pch='.'); legend('topright', c('volume de la boule', 'Estimation par Monte-Carlo', 'Intervalle dev.off(); 16

4.2 Code R : volume de la sphère avec échantillonnage préférentiel n_simul=10000; sigma=0.5; #Simulation d'un loi normale centré de variance sigma sur R6 : Y=matrix(rnorm(6*n_simul,0,sigma), ncol=n_simul); #Simulation de g(x)=1{ Y <1} G=rep(1,n_simul); Y2=Y*Y temp=colsums(y2)^2; G[temp>1]=0; #Simulation de f(y) : loi uniforme (-1,1) sur R6 X=matrix(1,nrow=6, ncol=n_simul); X[Y>1]=0; X[Y<(-1)]=0; F=rep(1,n_simul); temp=colsums(x); F[temp<6]=0; #Calculer Ft de Y: U2=colSums(Y2); Ft=exp(-U/2*sigma^2)/((2*pi*sigma^2)^3) #Caclul de la variable aléatoire cherché: Z=(G*F)/Ft #Monte-Carlo MC=cumsum(Z)/(1:n_simul); x11(); plot(mc, col='red', xlab='nombre de simulations',ylab='volume',,type='l') abline(h=5.16771); 17

4.3 Code R : calcul des diérents calls dans la premiere partie #EXEMPLE CALL REDUCTION DE VARIANCE: #Simulation d'un call sans réduction de variance : N=100000; G=rnorm(N,0,1); #Simulation de N call: X0=exp(G)-1; C0=X0; C0[X0<0]=0; #Estimation du prix du call: Pc0=cumsum(C0)/(1:N) #Calcul de la variance: V0=rep(0,N) V0=cumsum((C0-Pc0)^2)/((1:N)-1); #Intervalle de Confiance de niveau 0.95: Iinf0=Pc0-qnorm(0.975, mean = 0, sd = 1)*sqrt(V0/(1:N)); Isup0=Pc0+qnorm(0.975, mean = 0, sd = 1)*sqrt(V0/(1:N)); #Résultat graphique: pdf("callbrut.pdf", height=8); plot(pc0, ylim=c(0.88-0.1,0.88+0.1), type='l', col='red', xlab='simulations', ylab='p points(iinf0, col='grey', type='l'); points(isup0, col='grey', type='l'); legend('topright', c( 'Estimation MC', 'Intervalle de confiance', 'Valeur exacte'), c abline(h=0.8870692, col='black'); dev.off() # Simulation d'un call par Monte-Carlo avec méthode Variable de controle. # On utilise: C=exp(beta/2)+P-K 18

# Simulation de N Put : X1=1-exp(G); P1=X1; P1[X1<0]=0; #Simulation de N Call a l'aide de la formule : C1=exp(1/2)+P1-1; #Estimation du prix du Call : Pc1=cumsum(C1)/(1:N); #Calcul de la variance : V1=rep(0,N) V1=cumsum((C1-Pc1)^2)/((1:N)-1); #Intervalle de Confiance de niveau 0.95: Iinf1=Pc1-qnorm(0.975, mean = 0, sd = 1)*sqrt(V1/(1:N)); Isup1=Pc1+qnorm(0.975, mean = 0, sd = 1)*sqrt(V1/(1:N)); pdf("callvarcont.pdf", height=8); plot(pc1, ylim=c(0.88-0.1,0.88+0.1), type='l', col='red', xlab='simulations', ylab='p points(iinf0, col='grey', type='s'); points(isup0, col='grey', type='s'); points(iinf1, col='blue', type='s'); points(isup1, col='blue', type='s'); legend('topright', c( 'Estimation MC variable de controle', 'IC MC variable de contro abline(h=0.8870692, col='black'); dev.off(); # Simulation d'un putt par Monte-Carlo avec méthode variables antithétiques. #Simulation du call: Xa=(exp(G)-1); Xb=(exp(-G)-1); Ca=Xa; Ca[Xa<0]=0; Cb=Xb; Cb[Xb<0]=0; C2=(Ca+Cb)/2 #Prix du call par Monte-Carlo: 19

Pc2=cumsum(C2)/(1:N); #Calcul de la variance : V2=rep(0,N) V2=cumsum((C2-Pc2)^2)/((1:N)-1); #Intervalle de Confiance de niveau 0.95: Iinf2=Pc2-qnorm(0.975, mean = 0, sd = 1)*sqrt(V2/(1:N)); Isup2=Pc2+qnorm(0.975, mean = 0, sd = 1)*sqrt(V2/(1:N)); pdf("callvaranti.pdf", height=8); plot(pc2, ylim=c(0.88-0.1,0.88+0.1), type='l', col='red', xlab='simulations', ylab='p points(iinf0, col='grey', type='s'); points(isup0, col='grey', type='s'); points(iinf2, col='blue', type='s'); points(isup2, col='blue', type='s'); legend('topright', c( 'Estimation MC variables antithétiques', 'IC MC classique', 'IC abline(h=0.8870692, col='black'); dev.off(); #Simulation d'un call avec echantillonage pref: Y=rexp(N,1/2); Xc=exp(sqrt(Y))-1; Xd=exp(-sqrt(Y))-1; Cc=Xc; Cc[Xc<0]=0; Cd=Xd; Cd[Xd<0]=0; C3=(Cc+Cd)/(sqrt(2*pi*Y)); #Prix du call par Monte-Carlo: Pc3=cumsum(C3)/(1:N); #Calcul de la variance : V3=rep(0,N) V3=cumsum((C3-Pc3)^2)/((1:N)-1); #Intervalle de Confiance de niveau 0.95: Iinf3=Pc3-qnorm(0.975, mean = 0, sd = 1)*sqrt(V3/(1:N)); Isup3=Pc3+qnorm(0.975, mean = 0, sd = 1)*sqrt(V3/(1:N)); 20

pdf("callechpref.pdf", height=5); plot(pc3, ylim=c(0.88-0.1,0.88+0.1), type='l', col='red', xlab='simulations', ylab='p points(iinf0, col='grey', type='s'); points(isup0, col='grey', type='s'); points(iinf3, col='blue', type='s'); points(isup3, col='blue', type='s'); legend('topright', c( 'Estimation MC échantillonage pref', 'IC MC classique', 'IC MC abline(h=0.8870692, col='black'); dev.off(); #--------------------------------------------- #Construction des boxplot pour comparer les méthodes. N=10000; nb_simul=1000; Pc0=rep(NA, nb_simul); #Sans réduction de variance for( i in 1:nb_simul){ G=rnorm(N,0,1); #Simulation de N call: X0=exp(G)-1; C0=X0; C0[X0<0]=0; #Estimation du prix du call: Pc0[i]=sum(C0)/N; } Pc1=rep(NA, nb_simul); #Avec variable de controle for(i in 1:nb_simul){ G=rnorm(N,0,1); X1=1-exp(G); P1=X1; P1[X1<0]=0; C1=exp(1/2)+P1-1; Pc1[i]=sum(C1)/N; } Pc2=rep(NA, nb_simul); #Variables antithétiques for(i in 1:nb_simul){ G=rnorm(N,0,1); 21

Xa=(exp(G)-1); Xb=(exp(-G)-1); Ca=Xa; Ca[Xa<0]=0; Cb=Xb; Cb[Xb<0]=0; C2=(Ca+Cb)/2 Pc2[i]=sum(C2)/N; } Pc3=rep(NA, nb_simul); # échantillonage préferentiel for(i in 1:nb_simul){ G=rnorm(N,0,1); Y=rexp(N,1/2); Xc=exp(sqrt(Y))-1; Xd=exp(-sqrt(Y))-1; Cc=Xc; Cc[Xc<0]=0; Cd=Xd; Cd[Xd<0]=0; C3=(Cc+Cd)/(sqrt(2*pi*Y)); Pc3[i]=sum(C3)/N; } pdf("boxplot.pdf", height=8); boxplot(pc0, Pc2,Pc3, Pc1,col=c('red','blue','green','yellow')); legend('topright', c('sans réduction de variance', 'Variable de contrôle', 'Variables abline(h=0.8870692, col='black'); dev.off() 4.4 Code R : Calcul du call européens dans la troisième partie PrixCallEchPref=function(S0, r, sigma, T, K){ #Fonction qui calcule le prix d'un call européen #Elle retourne le graphe du prix trouvé en fonction du nombre de simulation N_simul=10000; Y=rexp(N_simul, 1/2); X=rep(0, N_simul); X1=rep(0, N_simul); X=S0*exp(r*T-(1/2)*sigma^2*T+sigma*sqrt(Y)*sqrt(T))-K; X1=X; X1[X<0]=0; 22

Z=rep(0, N_simul); Z1=rep(0, N_simul); Z=S0*exp(r*T-(1/2)*sigma^2*T-sigma*sqrt(Y)*sqrt(T))-K; Z1[Z<0]=0; C=(X1+Z1)/(sqrt(2*pi*Y)); P=cumsum(C)/(1:N_simul); PrixCallEchPref=exp(-r*T)*P; V=rep(0,N_simul ); V=exp(-r*T)^2*cumsum((C-P)^2)/((1:N_simul)-1); Iinf=PrixCallEchPref-qnorm(0.975, mean = 0, sd = 1)*sqrt(V/(1:N_simul)); Isup=PrixCallEchPref+qnorm(0.975, mean = 0, sd = 1)*sqrt(V/(1:N_simul)); x11(); plot(prixcallechpref, ylim=c(20,30), type='l', col='yellow', xlab='simulations', ylab points(iinf, col='grey', type='l'); points(isup, col='grey', type='l'); } 4.5 Code R : Calcul du call sur les options paniers #Pricing put sur portefeuille d'option. PrixCalla=function(S0, r, sigma, T, K){ # Fonction qui retourne le prix d'une option lorsque l'actif sous jacent est un porte # S0 un vecteur de la valeurs initiale des sous jacents # r le taux d'intérêt sans risque # sigma un vecteur de volatilité des sous jacents # K le strike N_simul=3*10^5; X=rep(0,N_simul); for(i in 1:N_simul){ G=rnorm(1, 0, 1); X[i]=sum(S0*exp(r*T-(1/2)*sigma^2*T+sigma*sqrt(T)*G))-K; } X1=X; X1[X<0]=0; P=cumsum(X1)/(1:N_simul); PrixCalla=exp(-r*T)*P; 23

V=rep(0,N_simul ); V=exp(-r*T)^2*cumsum((X1-P)^2)/((1:N_simul)-1); Iinf=PrixCalla-qnorm(0.975, mean = 0, sd = 1)*sqrt(V/(1:N_simul)); Isup=PrixCalla+qnorm(0.975, mean = 0, sd = 1)*sqrt(V/(1:N_simul)); pdf("portefeuille.pdf", height=8); plot(prixcalla, type='l',ylim=c(200,240), col='red', xlab='simulations', ylab='prix') points(iinf, col='grey', type='l'); points(isup, col='grey', type='l'); legend('topright', c('estimation MC', 'IC'), col=c('red', 'grey'), pch=15); return(prixcalla) } S0=c(100,200,100,200,500); r=0.02; sigma=c(0.3,0.2,0.1,0.4,0.1); T=10; K=1500; A=PrixCalla(S0,r,sigma,T,K); 24

Références [1] Hasard nombres aléatoires et méthode Monte Carlo. [2] Introduction au calcul stochastique appliqué à la nance. [3] Méthodes de Monte-Carlo pour les équations de transport et de diusion. 25