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



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

Probabilités III Introduction à l évaluation d options

Le modèle de Black et Scholes

MATHS FINANCIERES. Projet OMEGA

Filtrage stochastique non linéaire par la théorie de représentation des martingales

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

Résumé des communications des Intervenants

Chapitre 7 : Intégration sur un intervalle quelconque

de calibration Master 2: Calibration de modèles: présentation et simulation d


CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

Commun à tous les candidats

3. Conditionnement P (B)

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

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

PROJET MODELE DE TAUX

Introduction au pricing d option en finance

PRIME D UNE OPTION D ACHAT OU DE VENTE

Mesure et gestion des risques d assurance

Équation de Langevin avec petites perturbations browniennes ou

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

3 Approximation de solutions d équations

Produits de crédit en portefeuille

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Texte Agrégation limitée par diffusion interne

Introduction à la Statistique Inférentielle

Calcul Stochastique pour la finance. Romuald ELIE

TD 3 : suites réelles : application économique et nancière

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Travail en collaboration avec F.Roueff M.S.Taqqu C.Tudor

Chapitre 7. Statistique des échantillons gaussiens. 7.1 Projection de vecteurs gaussiens

Évaluation d'options sur fonds cotés en bourse à levier. Simon du Tremblay. HEC Montréal. par. Science de la gestion Finance

Cours (7) de statistiques à distance, élaboré par Zarrouk Fayçal, ISSEP Ksar-Said, LES STATISTIQUES INFERENTIELLES

Simulation de variables aléatoires

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

Retournement Temporel

Espérance conditionnelle

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

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Introduction à l analyse numérique : exemple du cloud computing

Processus aléatoires avec application en finance

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

TRAVAIL D ETUDE ET DE RECHERCHE. Utilisation des arbres binomiaux pour le pricing des options américaines

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

Intégration et probabilités TD1 Espaces mesurés

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

UNIVERSITE DES ANTILLES et DE LA GUYANE Campus de Fouillole BP Pointe-à-Pitre Cedex CONTRAT LE MASTER NOM DU DOMAINE STS

NOTATIONS PRÉLIMINAIRES

Liste des notes techniques... xxi Liste des encadrés... xxiii Préface à l édition internationale... xxv Préface à l édition francophone...

BTS Groupement A. Mathématiques Session Spécialités CIRA, IRIS, Systèmes électroniques, TPIL

Raisonnement par récurrence Suites numériques

DYNAMIQUE DE FORMATION DES ÉTOILES

Image d un intervalle par une fonction continue

Intégration et probabilités TD1 Espaces mesurés Corrigé

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

CAPTEURS - CHAINES DE MESURES

Centre d'etudes Nucléaires de Fontenay-aux-Roses Direction des Piles Atomiques Département des Etudes de Piles

TP1 : Initiation à Java et Eclipse

Télécom Nancy Année

Plan Epargne Logement Evaluation des options cachées d'un PEL

Renforcement des trois compétences : compréhension orale, expression orale et expression écrite à partir de documents et vidéos.

Finance, Navier-Stokes, et la calibration

Compte-rendu de projet de Système de gestion de base de données

(51) Int Cl.: H04L 29/06 ( ) G06F 21/55 ( )

La fonction exponentielle

DIPLOME D'ETUDES APPROFONDIES EN ECONOMIE ET FINANCE THEORIE DES MARCHES FINANCIERS. Semestre d hiver

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

4. Martingales à temps discret

Compte rendu des TP matlab

Généralités sur le Langage Java et éléments syntaxiques.

I. Polynômes de Tchebychev

Recherche dans un tableau

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Calculating Greeks by Monte Carlo simulation

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

Le passage de l'embedded Value à l'economic Value

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

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

CARACTERISTIQUE D UNE DIODE ET POINT DE FONCTIONNEMENT

Les correcteurs accorderont une importance particulière à la rigueur des raisonnements et aux représentations graphiques demandées.

Précision d un résultat et calculs d incertitudes

TESTS D'HYPOTHESES Etude d'un exemple

Amphi 3: Espaces complets - Applications linéaires continues

Programmation Objet - Cours II

SUJET ZÉRO Epreuve d'informatique et modélisation de systèmes physiques

Économetrie non paramétrique I. Estimation d une densité

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Options exotiques. April 18, 2000

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Calcul fonctionnel holomorphe dans les algèbres de Banach

Continuité en un point

Couples de variables aléatoires discrètes

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples.

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

Loi binomiale Lois normales

Transcription:

Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2. Techniques de correction pour les options barrières 25 janvier 2007 Exercice à rendre individuellement lors du cours du 9 Février 2007. A joindre : - la rédaction de la partie mathématique ainsi que la justication des techniques employées pour la simulation. - les valeurs numériques obtenues et vos commentaires. - le listing du programme de simulation. 1 Partie mathématique Soit (Ω, F, (F t ) t 0, P) un espace de probabilité ltré muni d'un mouvement Brownien standard d-dimensionnel W. On considère un processus de dynamique X t = x + bt + σw t, b R d, σ R d R d, avec σσ symétrique dénie positive. Introduisons le demi-espace D := {y R d : n y + m > 0}, n R d, m R, et τ := inf{s 0 : X s D}. Pour x D, T > 0 déterministe, et une fonction de pay-o g donnés, on s'intéresse à l'approximation numérique de la quantité E x [g(x T )I τ>t ] associée au prix d'une option à barrières. On a ici aaire à une option path dependent, et il va donc falloir tenir compte de la trajectoire du processus. On dénit pour N N, h := T/N et τ N := inf{t i := ih, i N : X ti D}. On va tout d'abord dans cette partie prouver une majoration de l'erreur faible : à l'aide de techniques de calcul stochastique. 1.1 Résultats préliminaires Err(x, T, g, h) = E x [g(x T )(I τ N >T I τ>t )] Considérons d'abord le cas d = 1 = σ, b = 0 et D = R +. 1. Soit x D, A B(R + ), tribu borélienne de R +. A l'aide du principe de réexion pour le mouvement Brownien donner l'expression explicite de P x [X t A, τ > t] en terme de noyaux Gaussiens dont on précisera moyenne et variance. 2. Pour (t, x) [0, T ] D et g à croissance exponentielle, on dénit v(t, x) := E x [g(x T t )I τ>t t ]. Préciser l'edp satisfaite par v. 3. Montrer que v C 1,2 ([0, T ) D). Donner une condition sur g pour que v C 0 ([0, T ] D), puis pour que v C 2,4 ([0, T ] D). On entend par là que l'on peut prolonger de façon régulière les dérivées sur un voisinage de D. 1

4. Même question pour obtenir v C 2,4 b ([0, T ] D), i.e. la fonction ainsi que ses dérivées jusqu'à l'ordre indiqué sont bornées. Reprendre les questions précédentes dans le cas plus général introduit ci-avant. 1.2 Analyse de l'erreur i=0 N 1 1. Montrer que Err(x, t, g, h) = E[I τ N >t i (v(t i+1, Π D(X ti+1 )) v(t i, X ti ))] où Π D désigne la projection sur l'adhérence de D. 2. En supposant désormais que les hypothèses garantissant que v C 2,4 b ([0, T ] D) sont vériées, déduire de l'application d'une formule de Taylor à l'ordre 3 Err(x, t, g, h) = N 1 E x [I τ N >t i ( v(t i, X ti ) nf (X ti+1 ) + O(F (X ti+1 ) X ti+1 X ti ) i=0 ) +O((F (X ti+1 ) 2 ) + O(h 2 ) ]. (1) où F (x) = d(x, D)I x D d(x, D)I x D est la distance signée au bord du domaine. On pourra utiliser que Π D(X ti+1 ) = X ti+1 + nf (X ti+1 ). 3. En notant τ ti := inf{s t i : X s D}, établir C > 0, P[τ ti < t i+1 F ti ] CP[X ti+1 D F ti ]. 4. A l'aide de contrôles usuels sur le Brownien déduire du résultat précédent que Err(x, t, g, h) C h. Il existe en fait, sous de bonnes hypothèses, un développement de l'erreur de la forme Err(x, t, g, h) = C h + o( h), C = C 0 σ n E[I τ<t v(τ, X τ ) n], C 0 =.5823. On peut renvoyer aux travaux de Siegmund, [Sie79], pour des précisions sur la nature de la constante C 0 σ n. Il s'agit de l'espérance de l'overshoot normalisé, i.e. distance à la frontière lorsque le processus sort du domaine à temps discret divisé par h. Le développement d'erreur précédent justie l'utilisation d'une méthode d'extrapolation de type Romberg pour améliorer la convergence. La connaissance explicite de C 0 permet par ailleurs de proposer une méthode alternative basée sur la correction de domaine. Précisément, on va restreindre le domaine de sorte à compenser la surestimation due au temps discret. Introduisons D N := {y R d : y n + m > C 0 h σ n }, τ N D N := inf{t i : X N t i D N }. On a en fait le résultat suivant : E[g(X T )(I τ N DN >T I τ>t )] = o( h). (2) Dans un contexte d'application nancière, cette identité est présentée dans [BGK97]. Dans la suite du TP on s'attachera à mettre en oeuvre les diérentes techniques de simulation suggérées par ces résultats : simulation naive, simulation par ponts browniens, extrapolation de Romberg, technique de correction dérivant de (2). 2 Partie mise en oeuvre en C++ On va ici compléter les classes introduites lors du TP précédent pour évaluer des quantités de type Q T = E x [f(s T )I τ>t ] où S t = S 0 exp(σw t + (r σ2 )t), avec 2 (W t) t 0 mouvement Brownien monodimensionnel, τ := inf{t 0 : S t D}, D ouvert connexe de R. La fonction f sera supposée à croissance polynomiale. On rappelle que l'on a ici aaire à une option path dependent. Il va donc falloir tenir compte de la trajectoire de l'actif. A ce propos on va introduire un ensemble de classes pour simuler des processus stochastiques à valeurs réelles. 2

2.1 Classes associées à des processus aléatoires On va tout d'abord créer une classe abstraite Process dérivant de Loi_Proba et de prototype class Process: public Loi_Proba{ protected: int N; double T,DT; Process(double Ti=1,double DTi=.01); virtual double getincrement() const=0; virtual double getfinalvalue() const=0; double Simule() const{return getfinalvalue();} où T>0 désigne le temps terminal jusqu'auquel on souhaite observer le processus en partant de 0, DT est le pas de discrétisation et N le nombre de pas de discrétisation sur l'intervalle [0,T]. La méthode getincrement() renverra pour un processus X donné une réalisation de X ti+1 X ti pour i [0, N 1]. La méthode getfinalvalue() renverra une réalisation de X T. Question 1. Ecrire les constructeurs de la classe Process. Question 2. Faire dériver de Process une classe Brownian. On suggère d'utiliser le prototype suivant : class Brownian: public Process{ Normale No; Brownian(double Ti=1,double DTi=.01); double getincrement() const; double getfinalvalue() const; Implémenter les méthodes de la partie publique de cette classe. Question 3. Faire dériver de Process une classe Geometric_Brownian, de prototype : class Geometric_Brownian: public Process{ Brownian B; double sigma, r, S0; Geometric_Brownian(double S0i=100,double sigmai=.15, double r=.02, double Ti=1, double DTi=.01); double getincrement() const; double getfinalvalue() const; Implémenter les méthodes de cette classe. 2.2 Options et héritage Nous allons dans cette partie décrire et implémenter un ensemble de classes pour estimer des prix d'options par méthode de Monte Carlo dans un modèle de Black et Scholes. La classe de base pour cela sera 3

OptionBS:public Loi_Proba{ protected: double r,t; // On peut considérer que le taux d'actualisation et la maturité // sont des données de l'option. Geometric_Brownian GB; PayOff & PO; OptionBS(PayOff & POi,double S0i=100,double sigmai=.15, double ri=.02, double Ti=1, double DTi=.01); C'est là une classe abstraite, i.e. on n'y implémente pas la méthode Simule de Loi_Proba dont la classe OptionBS dérive. A titre indicatif, la classe VanillaOptionBS du TP précédent devrait maintenant dériver de OptionBS. Question 1. On va écrire une classe BarrierOptionBS dérivant de OptionBS de prototype class BarrierOptionBS:public OptionBS{ double borne_gauche, borne_droite; BarrierOptionBS(double bg, double bd, PayOff & POi, double SOi=100, double sigmai=.15, double r=.02, double Ti=1, double DT=.01); double Simule() const; où D = (borne_gauche,borne_droite). Implémenter les méthodes précédentes. On utilisera pour cela la discrétisation naïve du temps de sortie qui consiste à observer si la trajectoire est hors du domaine à un des instants de discrétisation. Question 2. A l'aide de la procédure de simulation élémentaire précédente, mettre en évidence numériquement l'identité E[f(S T )I τ N >T ] E[f(S T )I τ>t ] = C DT + o( DT) où τ N := inf{t i = ih : S ti D}, pour f(x) = (x K) +, D = (0, B), K < B. On pourra utiliser que l'expression explicite du prix, cf. [MR97], est dans ce cas donnée par ( E[f(S T )I τ>t ] = S 0 exp(rt ) N (d 1 (K, S 0, σ, r, T )) N (d 1 (B, S 0, σ, r, T )) ( B + K S 0 ) 2r σ 2 +1 ( N (2 ˆd2 (B, S 0, σ, r, T ) ˆd 2 (K, S 0, σ, r, T )) N ( ˆd 2 (B, S 0, σ, r, T )) )) ( N (d 2 (K, S 0, σ, r, T )) N (d 2 (B, S 0, σ, r, T )) ( ) 2r B σ + 2 1 ( N (2 ˆd1 (B, S 0, σ, r, T ) S ˆd 1 (K, S 0, σ, r, T )) N ( ˆd 1 (B, S 0, σ, r, T )) )) 0 où N (x) = P[N (0, 1) x], d 1 (x, S 0, σ, r, T ) = log(s0/x)+rt σ + 1 T 2 σ T, ˆd 1 (x, S 0, σ, r, T ) = d 1 (x, S 0, σ, r, T ) 2r σ T, et d2 (x, S 0, σ, r, T ) = d 1 (x, S 0, σ, r, T ) σ T, ˆd 2 (x, S 0, σ, r, T ) = d 2 (x, S 0, σ, r, T ) 2r σ T. On prendra S 0 = 100, B = 130, K = 90, σ =.15, r =.02. On fera varier le nombre N de pas de discrétisation en faisant bien attention à équilibrer erreur statistique associée à la méthode de Monte Carlo, dirigée par le théorème central limite, et erreur de discrétisation que l'on cherche à mettre en évidence. 4

Question 3. Implémenter la méthode de simulation qui utilise la probabilité qu'un pont Brownien ait dépassé un certain seuil entre deux instants de discrétisation. On suggère pour cela d'ajouter dans la partie publique de la classe Brownian une fonction de prototype static double ProbBrownBridgeBigger(double B, double xi, double xip1, double h) ; qui renvoie P[sup s [0,h] W s B W 0 = xi, W h = xip1]. Ecrire une fonction double SimuleBB() const dans la partie publique de BarrierOptionBS utilisant cette probabilité dans les cas où D = (0, B) ou D = (B, + ). Etudier l'impact de la discrétisation en temps par cette technique. Estimer le gain associé en terme de vitesse de convergence. Question 4. Implémenter les méthodes d'extrapolation de Romberg et de correction de domaine introduites en Section 1. Commenter les résultats. Question 5. An de permettre à l'utilisateur de choisir entre les diérentes méthodes de simulation on va utiliser des pointeurs sur fonctions et surcharger les constructeurs. 1. Introduire une variable double (BarrierOptionBS::*PTR_Simule) () const ; dans la partie privée de BarrierOptionBS. La variable PTR_Simule est un pointeur de fonction. Il ne peut pointer que des fonctions const de la classe BarrierOptionBS n'ayant pas d'arguments, et renvoyant un double. L'aectation de ce type de variables se fait de la façon suivante : PTR_Simule=& BarrierOptionBS::SimuleBB ; 2. Modier les constructeurs de cette classe en ajoutant un champ int FLAG, qui prendra les valeurs 0,1,2,3 en fonction de la technique retenue par l'utilisateur. - 0 : simulation naive. - 1 : simulation par ponts Browniens. - 2 : extrapolation de Romberg. - 3 : correction de domaine. 3. Modier la fonction Simule qui devient double BarrierOptionBS::Simule() const { return (this->*ptr_simule)(); } Mettre enn les diérentes méthodes de simulation dans la partie privée de la classe. Ces dernières ne sont ainsi plus directement accessibles à l'utilisateur. Références [BGK97] M. Broadie, P. Glasserman, and S. Kou. A continuity correction for discrete barrier options. Mathematical Finance, 7 :325349, 1997. [MR97] M. Musiela and M. Rutkowski. Martingale methods in nancial modelling. Springer, 1997. [Sie79] D. Siegmund. Corrected diusion approximations in certain random walk problems. Adv. in Appl. Probab., 11(4) :701719, 1979. 5