Sommaire

Transcription

Sommaire
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
Sommaire
Sommaire ................................................................................................................... 1
Introduction................................................................................................................ 2
1
Trois différentes techniques de pricing................................................................... 3
1.1
Le modèle de Cox Ross Rubinstein. ............................................................... 3
1.2
Le modèle de Black & Scholes....................................................................... 8
1.3
Méthode de Monte Carlo. ............................................................................. 10
2
Analyse des différentes techniques de pricing...................................................... 12
2.1
L’influence des paramètres sur les techniques de pricing. ........................... 12
2.2
Comparaison de prix des pricers................................................................... 15
3
Les informations contenues dans les données historiques.................................... 17
3.1
La nappe de volatilité.................................................................................... 17
3.2
La densité risque neutre ................................................................................ 19
Conclusion ............................................................................................................... 20
Professeur : Florian IELPO
1
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
Introduction
Etant étudiants en troisième année à L’ESILV et donc en première année de
spécialisation dans l’option ingénierie financière, nous avons suivi des cours permettant
de maîtriser les techniques simples de pricing d’options. Dans le but de pouvoir les
appliquer en stage, ce projet nous a proposé de coder ces techniques dans le langage
utilisé dans le monde de la finance : Visual Basic for Applications (VBA). VBA est une
implémentation de Microsoft Visual Basic qui est intégrée dans toutes les applications de
Microsoft Office. Elle permet à son utilisateur de coder des fonctions et des macros qui
vont pouvoir l’aider à réaliser des calculs à partir d’une feuille Excel par exemple. Le but
de notre projet a donc été de réaliser des fonctions et des macros permettant à un
utilisateur de la feuille Excel de générer les résultats dont il a besoin à partir des
paramètres qu’il aura entré dans les cellules appropriées.
Afin de vous expliquer les différentes étapes de notre projet, je vais articuler
mon développement en trois parties :
-
Tout d’abord j’exposerai les différentes techniques de pricing que j’ai codé.
-
Par la suite, nous verrons les différences entre ces techniques et l’influence
qu’ont certains paramètres sur les résultats obtenus
-
Enfin je vous montrerai quels informations les données historiques peuvent
nous révéler.
Professeur : Florian IELPO
2
CHAMPION Matthieu
Modèles de Marché en Visual Basic
1
Trois différentes techniques de pricing.
1.1
Le modèle de Cox Ross Rubinstein.
ESILV S04 S6
Le modèle de Cox Ross Rubinstein a pour but de pricer une option en
représentant l’évolution du cours de son sous jacent suivant un arbre binomial. La
première étape du codage de ce modèle a donc été de représenter un arbre binomial
modélisant l’évolution du cours de l’action suivant des paramètres entrés en argument.
Afin de vérifier le bon fonctionnement de mon raisonnement j’ai tout d’abord
codé une macro qui affiche l’arbre trouvé dans la feuille Excel :
Ainsi, u et n sont pris en argument dans des cellules de la feuille Arbre
binomial. T a été mis par défaut à 1 mais il ne serait pas difficile de le prendre en
argument. La macro n’a été codé que pour vérifier le bon fonctionnement de notre
raisonnement dans la programmation. Ainsi, en entrant en paramètres 0.1 pour u et 10
pour n on obtient ces résultats :
Professeur : Florian IELPO
3
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
A la vue du résultat, j’ai pu affirmer que mon code est correct.
La première étape du code étant terminée, j’ai pu m’occuper du calcul du prix
de notre option grâce à deux fonctions. La première est la fonction payoff qui calcule la
dernière colonne des nœuds de l’arbre. Grâce à ce vecteur elle calcule ensuite le payoff
en retranchant le strike price, entré en argument, à ces prix. Evidemment, si le résultat de
la soustraction est négatif, elle remplace ce résultat par zéro. Enfin la fonction renvoi le
vecteur du payoff :
Nous pouvons remarquer que le calcul de u et d se fait à partir de la volatilité du
sous jacent entrée en argument. Ainsi les coefficients de monté et de descente du prix du
sous jacent sont plus précis.
Professeur : Florian IELPO
4
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
La deuxième fonction de mon code afin de calculer les prix de l’option est la
fonction proba. Elle calcule la probabilité pour chaque événement de l’évolution du cours
du sous jacent de se produire. En effet, pour mettre en évidence le prix de notre option, il
faut calculer l’espérance actualisée de notre sous jacent à la maturité de l’option.
Pour ce faire il nous a tout d’abord fallu calculer la probabilité risque neutre. En
effet le pricing d’une option repose sur une règle :l’absence d’opportunité d’arbitrage.
Une fois cette probabilité calculée grâce à la volatilité de notre sous jacent et du taux sans
risque, le time to maturity et le nombre de périodes permettent de calculer le vecteur des
probabilités. Ainsi j’ai codé ma fonction proba de la façon suivante :
Ainsi les deux fonctions que nous venons de voir renvoient des vecteurs qui , si
j’ai bien codé, doivent être de même taille. Il suffit alors de réaliser une fonction prenant
les paramètres de l’option en argument. Cette fonction va alors appeler proba et payoff et
va réaliser le produit scalaire des deux vecteurs renvoyés. Voici le code de cette
fonction :
Professeur : Florian IELPO
5
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
Regardons à présent les différents résultats obtenus avec nos fonctions.
Tout d’abord, regardons les résultats numériques que nous obtenons :
Nous pouvons supposer que les résultats obtenus sont corrects. En effet les deux
vecteurs calculés sont de même longueur. Le vecteur payoff a des valeurs positives en
haut et nulles en bas ce qui est en concordance avec le payoff d’un call. Pour vérifier que
Professeur : Florian IELPO
6
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
notre vecteur probabilité est correct, j’ai réalisé un graphique représentant la distribution
des probabilités en fonction des différents payoff. On peut s’attendre à une distribution
s’apparentant à une loi normale car il y a plus de chances que le sous jacent connaisse les
évolutions du centre que celles de l’extrême dans le modèle CRR. Regardons le
graphique obtenu :
0,09
0,08
0,07
proba
0,06
0,05
0,04
0,03
0,02
0,01
0
0
0
0
0
0
0
0
0
0
0
64
8,
53 905
9, 61
6
44 538
6, 3
36 55
7, 56
29 222
9, 52
24 619
2, 33
0
19 116
2, 9
15 92
1, 17
11 089
5, 97
4
85 433
,0 2
59 672
5
,
37 182
,1 47
18 249
,3 15
2, 287
31 0
16 7
34
6
0
Conformément à ce que nous attendions, la distribution de probabilités a l’allure
d’une loi normale.
Nous pouvons donc conclure que le prix de notre modèle de Cox Ross
Rubinstein devrait être correct. Afin de nous conforter dans cette idée, deux autres
modèles de pricing d’options vont pouvoir être codé.
Professeur : Florian IELPO
7
CHAMPION Matthieu
1.2
Modèles de Marché en Visual Basic
ESILV S04 S6
Le modèle de Black & Scholes.
La formule de BS découle directement de CRR. Le schéma binomial de CRR
peut converger vers le schéma normal de Black Scholes (Cas européen). Or, une
binomiale converge vers une loi normale pour un ∆t suffisamment petit. On retrouve
donc la formule de Black & Scholes en faisant tendre notre pas vers 0 c'est-à-dire en
faisant tendre n vers l’infini.
Ainsi en prenant les mêmes paramètres en entrées que pour le modèle CRR, on
peut réaliser la fonction Call_BS qui va calculer les prix de l’option call grâce aux
formules suivantes :
Avec :
la fonction
de
répartition de la loi normale
centrée
réduite
dire :
, c'est-à-
Et :
Ainsi j’ai pu programmer la fonction Call_BS :
Professeur : Florian IELPO
8
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
Nous pouvons à présent regarder les résultats obtenus grâce à la fonction
Call_BS. Nous prenons les mêmes paramètres que pour les tests de notre fonction
prixCRR :
Ainsi nous avons réalisé notre fonction Call_BS qui, vu les résultats obtenus,
paraît correct. Nous pouvons à présent nous intéresser à notre dernière technique de
pricing : la méthode de Monte Carlo.
Professeur : Florian IELPO
9
CHAMPION Matthieu
1.3
Modèles de Marché en Visual Basic
ESILV S04 S6
Méthode de Monte Carlo.
L’évaluation des options par simulation de Monte Carlo repose en grande partie
sur l’évaluation risque neutre. Les paiements futurs espérés sont en effet calculés dans un
univers risque neutre en suivant une procédure d’échantillonnage avant d’être actualisé
au taux sans risque. Nous allons donc coder notre pricer grâce à deux fonctions. Tout
d’abord nous créons une fonction simulation, qui comme son nom l’indique permet de
simuler un vecteur de nombres ayant une distribution normale. Cette fonction se sert de la
fonction d’Excel NORMINV. On prendra donc en entré la moyenne mu, l’écart type
sigma, et n qui est le nombre de simulation que l’on effectue :
Nous pouvons alors notre fonction prixMonteCarlo. Pour cela notre programme
réalisera un tirage au hasard d’une trajectoire de S dans un univers risque neutre. Puis
nous calculerons le payoff à l’échéance pour cette trajectoire. Nous répéterons cela Z fois
pour avoir un plus grand nombre de flux terminaux. Enfin nous calculerons le prix en
faisant la moyenne des payoff pour obtenir une espérance du flux terminal que nous
actualiserons au taux sans risque :
Professeur : Florian IELPO
10
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
Cette fonction nous renvoi donc le prix Monte Carlo. Je viens donc de vous
présenter les trois pricer mis en place en VBA.
Regardons à présent quelles conclusions on peut tirer des résultats renvoyés par
nos fonctions.
Professeur : Florian IELPO
11
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
2
Analyse des différentes techniques de pricing.
2.1
L’influence des paramètres sur les techniques de pricing.
Tout d’abord intéressons nous à la variation du prix d’un call en fonction de la
variation de la volatilité de son sou jacent. Regardons tout d’abord le graphique que l’on
obtient :
prix en fonction de la volatilité
50
45
40
30
25
20
15
10
5
volatilité en %
Nous pouvons remarquer que plus la volatilité du sous jacent augmente et plus le
prix de notre option augmente. On aurait pu faire cette déduction par logique. En effet si
la volatilité du sous jacent est forte, il est plus probable que le sous jacent atteigne des
prix forts. Si le sous jacent atteint un prix fort, la valeur de l’option sera elle aussi forte.
Cependant si le sous jacent baisse, l’option permettra de couvrir les pertes. Il est donc
tout naturel qu’une option avec un sous jacent à forte volatilité soit plus cher qu’une
option avec un sous jacent à faible volatilité.
Professeur : Florian IELPO
12
97
93
89
85
81
77
73
69
65
61
57
53
49
45
41
37
33
29
25
21
17
13
9
5
0
1
prix du call
35
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
Regardons à présent le prix de l’option en fonction de la valeur de son sous
jacent :
prix en fonction de la valeur du sous jacent
90
80
70
prix du call
60
50
40
30
20
10
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
valeur du sous jacent
Nous remarquons que plus la valeur du sous jacent est élevée et plus le prix de
notre option call est élevé. En effet plus la valeur du sous jacent sera élevée et plus elle a
de chance d’être, à terme, supérieure au strike price K. Il est donc tout naturel que la
valeur de notre option augmente si la valeur du sous jacent augmente.
Voici le graphique du prix de l’option call en fonction de la valeur du strike price
K:
Professeur : Florian IELPO
13
16
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
prix en fonction du strike
120
100
60
40
20
strike
La valeur de notre option baisse à mesure que le strike price augmente. En effet
sin notre strike price augmente les chances que la valeur du sous jacent soit au dessus du
strike à terme se réduisent.
Professeur : Florian IELPO
14
97
93
89
85
81
77
73
69
65
61
57
53
49
45
41
37
33
29
25
21
17
13
9
5
0
1
prix du call
80
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
Le graphique du prix de l’option call en fonction de la maturité est le suivant :
prix en fonction de la maturité
100
90
80
prix du call
70
60
50
40
30
20
10
97
93
89
85
81
77
73
69
65
61
57
53
49
45
41
37
33
29
25
21
17
13
9
5
1
0
m aturité
Plus la maturité de l’option est lointaine et plus la valeur du sous jacent a de
chances d’augmenter et donc passer au dessus du strike price. Il est donc naturel que le
prix du call augmente lorsque le time to maturity augmente.
2.2
Comparaison de prix des pricers.
Cette comparaison va nous permettre d’étudier plusieurs caractéristiques :
-
tout d’abord, nous pourrons étudier la convergence du prix CRR vers le prix
Black Scholes
-
Nous pourrons aussi regarder le comportement du prix Monte Carlo par
rapport aux deux autres prix.
Nous allons effectuer cette comparaison grâce à un graphique qui aura en
abscisse, le nombre de simulation à réaliser dans le cas de Monte Carlo et le nombre de
Professeur : Florian IELPO
15
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
subdivisions du temps pour CRR. Bien évidemment, ce paramètre n’influera aucunement
sur le prix Black Scholes.
Black Scholes sera donc une « référence » vers laquelle nos deux prix devraient
tendre à mesure que n croit.
Regardons le graphique obtenu :
Comparaison des différents pricers
30
25
prix du call
20
Prix BS
Prix CRR
15
Prix MC
10
5
0
0
10
20
30
40
50
60
n
Nous pouvons tout de suite constater que le prix CRR converge vers Black
Scholes ce qui conforte l’idée que le modèle de Black & Scholes vient du modèle CRR
avec un pas de temps tendant vers zéro.
Nous remarquons aussi que le prix du modèle de Monte Carlo oscille autour du
prix Black Scholes et tend vers celui-ci à mesure que n grandit.
Professeur : Florian IELPO
16
CHAMPION Matthieu
3
Modèles de Marché en Visual Basic
ESILV S04 S6
Les informations contenues dans les données
historiques
3.1
La nappe de volatilité
Lors de la première partie, nous avons vu que l’un des facteurs permettant le
calcul du prix grâce à la formule de Black & Scholes est la volatilité du sous jacent de
l’option.
En inversant notre raisonnement, on peut retrouver l’un des paramètres si l’on a le
prix de l’option et les autres paramètres. Ici le paramètre que nous cherchons est la
volatilité.
En inversant le raisonnement, on va pouvoir retrouver la volatilité du sous jacent
de l’option. Cette volatilité sera appelée volatilité implicite du sous jacent.
Au moyen de la méthode de dichotomie, on va pouvoir retrouver la volatilité
implicite :
Professeur : Florian IELPO
17
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
Ainsi, notre fonction volimpl va permettre de retrouver la vol implicite grâce aux
paramètres de l’option et de son prix.
On constate que la volatilité implicite aux options fortement hors de la monnaie
ou largement dans la monnaie est plus élevée que la volatilité implicite recalculée à partir
des options à la monnaie. On appelle ce phénomène smile de volatilité
A l’aide d’une série de données, on va tenter de tracer le smile de volatilité :
volatilité implicite
0,18
0,16
0,14
0,12
0,16-0,18
0,1
0,14-0,16
0,08
0,12-0,14
0,06
0,1-0,12
0,04
K=4400
K=4500
K=4600
K=4700
K=4800
K=4900
118
K=5000
109
100
91
82
73
55
time to maturity
64
46
28
37
1
10
19
0
K=4300
0,08-0,1
0,02
0,06-0,08
0,04-0,06
strike prices
0-0,02
On retrouve bien le principe du smile de volatilité avec ce graphique. En effet nous
voyons que la volatilité implicite est plus grande aux extrémités du graphe qu’au centre.
Professeur : Florian IELPO
0,02-0,04
18
CHAMPION Matthieu
3.2
Modèles de Marché en Visual Basic
ESILV S04 S6
La densité risque neutre
Notre dernière étape dans ce projet a été de créer le graphique de la fonction de
densité risque neutre. Pour ce faire, notre première étape a été de dériver deux fois le prix
Black & Scholes en fonction du strike price. On obtient la formule suivante :
Par la suite nous avons réalisé une régression linéaire d’ordre 3 de la volatilité
implicite en fonction de K afin de trouver les coefficients a0,a1,a2,a3.
Cette régression linéaire nous a permis de coder la fonction de calcul de la fonctions
densité risque neutre. En effet le calcul de la volatilité implicite mais aussi de ses dérivées
première et seconde par rapport à K est alors possible en entrant K et les différents
coefficients en argument.
Le calcul de la fonction de densité a alors été possible sur la série de données en
notre possession. Nous avons alors pu réaliser un graphique que voici :
Professeur : Florian IELPO
19
CHAMPION Matthieu
Modèles de Marché en Visual Basic
ESILV S04 S6
Conclusion
En définitive, ce projet nous a permis d’assimiler les bases de la programmation en
VBA. Nous avons pu coder les pricers que nous avons vu pendant nos cours théoriques
mais nous avons aussi assimilé de nouvelles notions.
L’outil informatique s’est révélé indispensable. Nous avons pu entrevoir la
puissance de calcul et l’ergonomie du langage VBA.
Les notions assimilées pendant ce projet nous ont permis d’élargir encore nos
connaissances sur le pricing des options.
Professeur : Florian IELPO
20