Sunteți pe pagina 1din 36

L’ INTEGRATION DE PRODUITS EXOTIQUES

Le Variance Swap-L’Option Napoléon

1
SYNTHESIS

Murex SAS has been founded in 1986 and is today a leading provider of financial software.
Murex is a “Front to back Office” platform that is used by various actors of financial markets.
When integrating new pay-offs in the Front office module, consultants must perform validation tests.
The purpose of those tests is to analyze the models used , produce test-codes that can compute
premium, greeks and then compare them to the results given by the Murex pricers.
The objective of my study was to help financial consultants in this process.
I focused on two types of products:
-The classical variance swap with extension to the Corridor Variance Swap which are volatility
derivative products.
-The Napoleon Option which pays a flow based on the worst performance of it’s underlying.

I : Model Study and Analysis

1) The Classical Variance Swap


The payoff is proportionnal to the difference bettwen the realized variance of the underlying and a
fixed value called strike of the variance swap.
Under the Black Scholes model, the underlying follows the following a geometric brownian motion:
dSt
= µ (t )* dt + σ (t )* dWt . The Variance swap pays at maturity T :
St
T
1
GV ar swap = No min al *[ * ∫ σ 2 (t ) * dt − K var
2
]
T 0
T
1
To compute the premium, we need to know the value of E Q [ * ∫ σ 2 (t ) * dt ] , where the expectation is
T 0
taken under the risk neutral probability. One possible approach could be to specify a stochastic process
for the volatility (like the Heston Model..) and try to make a direct computation.
But we have studied another model, which is the one implemented by Murex. This approach consist
on showing, thanks to the Ito Lemma applied with the process ln( St ) that
−2 Q
T
1 ST
E Q [ * ∫ σ 2 (t ) dt ] = E [ln ] where F(0, T) is the forward value of the spot at date T.
T 0 T F (0, T )
After that, we use the theorem of Breeden-Litenberger, which shows that any payoff f ( ST ) where f is
a given twice differentiable function can be written as a combination of Puts and Call.
This lead to a closed formula for the price of the Variance Swap.

2) The Corridor Variance Swap

2
The Corridor Variance swap is an exotic version of the product where the variance is accumulated
only when the spot value is bettewn two barriers noted B1 and B2 .
T
1
GCorridor = No min al *[ * ∫ σ 2 (t ) *1B1 ≤ St ≤ B2 dt − K var
2
].
T 0
Following the idea that has been used for the classical variance swap, we apply Ito Lemna to
ln( St ) where St = max( B1 , min( B2 , St )) . This process represents the spot that is restrained bettwen the
two barriers.The function x → max( B1 , min( B2 , x)) is not regular (not C 2 ) which leads to some
technical issues. We have to use some results of the distribution theory, and Tanaka’s formula .
After some developpments, we obtain an analytic expression of the premium.

3) The Napoleon Option


The underlying can either be a simple stock or a basket of stocks.
Considering N stock price process, and a set of fixing dates to = 0......tM = T , we can compute for
Stkj
each stock a worst performance noted Pk = max[0, min1≤ j ≤ M ( − 1)] .
Stk0
1 k=N
The payoff of the Napoleon option can be written as: G = max[C , * ∑ wk * Pk ] where C is a pre-
N k =1
defined fixed coupon and wi , the weight associated to each stock of the basket.
i
Under the multidimensional Black Scholes model, dSit = r (t )* Sti * dt + σ i (t )* Sti * dWt i where
St
uur
Wt = (Wt1.......Wt N ) is a multidimensional brownian motion with correlated components.
The resolution technique in this case is based on Monte-Carlo simulations and we can note that there
is not a simpler way to approach this problem.
uur
Therefore, we simulate the vectoriel process St = ( St1.......StN ) and we take into account the
correlation bettwen it’s different components.
uur
Each simulation of St = ( St1.......StN ) gives a simulation of the random variable
1 k=N
G = max[C , * ∑ wk * Pk ] , that is noted G i .
N k =1
1 k = M k ps
Using the strong law number, we can say * ∑ G →E Q (G ) .
M k =1
We can also evaluate the error using the Central limit theorem.

II: Computer Code Implemtation and Comparisons with Murex

The pricers corresponding to the above theoretical description have been implemented using JAVA
language. In this step, we have studied and used various numerical algorithms existing in the
litterature (Repartition function of the normal law and it’s inverse , numerical integration methods,
simulation of random numbers, factorization of Choleski..)
For the classical variance swap, our results are very closed to the Murex values. The only issue that
has been raised is some oscillations observed in the Delta and Gamma of the Murex application.
We have tried to analyze and understand where this problem comes from.
As for the corridor variance swap, we observe a good behaviour of the test-code.
When the barrier width is large enough, the results obtained converge to a classical variance swap
premium and inversely when B1 it is closed to B2 , the premium of the corridor variance swap gets
closed to zero. The last point is related to the Napoleon Option. We have performed various tests

3
taking into account diverse pricing situations: Ex a pricing with and without dividends, pricing of an
option introduced at a past date, mono and multiasset...)
We observe that when the underlying is a single stock, the results of the test-code replicate very well
the Murex application. But for the multidimensional case, there is still an analysis to be done about
how Murex deals with the correlation bettwen the basket components.

4
CHAPITRE 1 : TESTS DE VALIDATION DU VARIANCE SWAP

1- Contexte et Utilisation du produit :


Le Variance swap est un contrat forward sur la variance réalisée d’un sous-jacent donné.
Son Payoff dépend donc des éléments suivants :
-La variance réalisée par le sous-jacent entre la date t et la date de maturité du contrat T. Elle est
exprimée en unité annuelle (variance annualisée).
-Un strike K var prédéfini à l’avance. Tout comme dans les contrats forward classiques, ce strike peut
être choisi de façon à annuler le prix du contrat à la date t.
-Un montant nominal N qui permet d’exprimer en euro le flux reçu par l’investisseur.
La formule mathématique du flux reçu est donc G = N *(σ R 2 − K var 2
) .
En pratique on considérera N=10.000 EUR , ce qui exprime qu’un écart de (1%) 2 , entre la variance
2
réalisée et la valeur fixée d’avance, à savoir K var , rapporte un flux de 1 EUR.
Notre étude est restée limitée aux sous-jacent de type Equity, mais il s’agit d’un produit que l’on
retrouve également dans le marché du change FX.
L’intérêt de ce produit apparaît à plusieurs niveaux :
D’abord dans des buts spéculatifs. Il permet aux investisseurs de prendre des positions purement liées
à la volatilité du sous-jacent.
Par exemple, un spéculateur qui anticipe une forte volatilité du sous-jacent sur une période donnée
pourra prendre une position longue sur un variance swap et vice versa.
De ce fait, ils introduisent des opportunités d’investissement supplémentaires dans le marché.
Le produit peut également être utilisé par les acteurs du marché pour des objectifs différents comme la
gestion de portefeuille….
A titre d’illustration, les gestionnaires de fonds peuvent utiliser le fait qu’en période de crise, il y a
une corrélation négative entre le prix de l’Equity et sa variance.
En ce sens, une position longue en variance swap devient très utile dans un portefeuille, plus
particulièrement dans un contexte de crise.
Cela entre dans le cadre de la diversification , dont le principe de base est de chercher à introduire
dans son portefeuille des produits dont les processus de rendement sont corrélés négativement.

2-Modélisation mathématique et Tests de Validation


D’un point de vue modèle, le cadre de l’étude reste celui de Black Sholes avec une diffusion
brownienne pour l’actif sous-jacent. On considère donc un marché continu dans lequel l’actif risqué
que l’on suppose être une action, a la dynamique suivante : dSt / St = µ (t , St )dt + σ (t , St ) * dWt P ou
P est la probabilité historique propre à l’agent et Wt un mouvement brownien sous cette probabilité.
On notera Ft la filtration engendrée par ce mouvement brownien.
L’actif sans risque croit selon la dynamique suivante.
dSto / Sto = r (t ) * dt en notant r(t) le taux court instantané.
. Le flux devrant être reçu à la date de maturité T est la variable aléatoire
T
G= N *[1/ T * σ 2 (t ) * dt − K var

2
] (1) ou N représente le nominal fixé à 10.000 EUR.
0
Les principaux aspects qui seront étudiés dans nos tests de validation concernent principalement les
calculs de prime d’option et les indicateurs de sensibilité.

5
2-1 : Méthode d’évaluation pratique du Payoff à maturité :
L’équation (1) représente la formule théorique exprimant l’écart entre la variance annualisée et le carré
du strike. En pratique, ce flux devra être payé à la date T et il faudra donc trouver une approximation
T
de la variable aléatoire FT mesurable suivante : 1/ T * σ 2 (t ) * dt . Pour cela , on remarque que
∫0
l’application de la formule d’Ito permet d’écrire que
1
d (ln St ) = ( µ (t , St ) − *σ 2 (t ))* dt + σ (t , St )* dWt P . On a donc : d < ln( S ) >t = σ (t )* dt
2

2
T
ce qui s’écrit sous forme intégrée : < ln( S ) >[0T ] = ∫ σ 2 (t ) * dt .
0

La variation quadratique du processus X t sur [0 t] est théoriquement calculable par


i = n −1
lim n →∞ ∑ (X
i =0
ti+1 − X ti ) 2 en prenant une subdivision ( t1 ,...tn ) dont le pas max1≤i ≤ n ti +1 − ti converge

vers zéro lorsque n tend vers l’infini. En pratique, cette limite qui doit être calculée pour le processus
ln( St ) sera approximée par une somme finie. A partir de la date de signature du contrat notée to = 0 ,
on considérera comme suite de date ( t1 ,...tn ), les jours ouvrables consécutifs partant de la date to
jusqu’à la date de maturité tn = T .
.Selon la convention du marché on considère qu’il ya un nombre noté f de jours ouvrables par années
(La convention la plus répandue est de considérer f=252 jours ouvrables/an )
D’autre part, entre to et tn , il ya( n+1) jours ouvrables, on en déduit que le nombre d’années entre la
date to =0 et T est donnée par n/f.
L’approximation qui sera utilisée pour déterminer le payoff et le flux à la date de maturité est donc :
f i =n−1 f i =n−1 St
T
1/ T * ∫ σ 2 (t )* dt = * ∑ (ln(Sti+1 ) − ln(Sti ))2 = ∑ ln( i+1 )2 .
0
n i =0 n i =0 Sti
Pour cela les (n+1) valeurs de Spot St0 .....Stn seront fixées depuis la date initiale t0 jusqu’à la date
de maturité tn = T .

2-2 : Evaluation de la Prime du Variance Swap à la date initiale .


L’actif risqué et l’actif sans risque ont les diffusions suivantes :
dSto / Sto = r (t ) * dt et dSt / St = µ (t , St )dt + σ (t , St ) * dWt P ou Wt P est un mouvement brownien
sous la probabilité historique P.
Le Variance swap est vu comme un actif contingent payant à la date T le flux en EUR
T
GT = N *[1/ T * ∫ σ 2 (t ) * dt − K var
2
] (1) avec ou N désigne le nominal en EUR . (N=10.000EUR) et K le
0

strike fixé lors de la signature du contrat.


Le pricing se fait en utilisant la démarche classiquement utilisée pour la valorisation des produits
dérivés. On va d’abord supposer qu’il y a absence d’opportunité d’arbitrage.

-Absence d’Opportunité D’arbitrage :


On sait que cette hypothèse est équivalente à l’existence d’un processus de prime de risque λ (t )
vérifiant la relation µ (t , St ) − r (t ) = σ (t , St )* λ (t ) .

6
En utilisant le théorème de Girsanov, on montre l’existence d’une mesure de probabilité Q sous
t
laquelle Wt P + ∫ λ ( s) * ds est un mouvement brownien.
0
t t
dQ
( ) F t = exp[− ∫ λ ( s ) * dWsP − 0.5* ∫ λ 2 ( s ) * ds ] . Sous cette mesure risque neutre Q, la dynamique de
dP 0 0

l’actif risqué s’écrit sous la forme : dSt / St = r (t ) * dt + σ (t , St ) * dWt Q .


On peut ainsi démontrer que cette mesure rend martingale la valeur réactualisée de n’importe qu’elle
stratégie autofinancée. Ainsi, si on suppose que le marché est complet, on en déduit que le prix
actualisé de l’actif dérivé est martingale sous Q.
L’unique prix de non arbitrage du variance swap s’exprime donc par la relation.
T T
P= E Q [ N *(1/ T * σ 2 (t ) * dt − K var

2
)] * exp(− ∫ r ( s ) * ds ) .
0 0

Remarque : Nous avons également supposé que les taux sont déterministes pour pouvoir sortir le
T
discount factor exp(− ∫ r ( s ) * ds ) du terme d’espérance.
0

Cette hypothèse nous semble réaliste dans la mesure ou la plupart des contrats de Variance swap sont
souvent de maturité courte.

Calcul Analytique de la Prime du Variance Swap


La formule analytique de la prime obtenue ci haut est la suivante :
T T
P= E Q [ N *(1/ T * ∫ σ 2 (t ) * dt − K var
2
)] * exp(− ∫ r ( s ) * ds ) .
0 0
T
1
La principale difficulté réside donc dans le calcul du terme : E Q ( * ∫ σ 2 ( s) * ds ) .
T 0
On doit calculer l’espérance d’une intégrale faisant intervenir un processus de variance dont on ne
connaît pas à priori l’équation de diffusion.
Dans cette section sera présentée une approche analytique de calcul de cette espérance. Nous
détaillons des résultats déjà obtenus par Demeterfi-Kamal-Zou [1] . L’idée est de chercher à remplacer
T
1
la variable aléatoire Z = * ∫ σ 2 ( s ) * ds par une autre variable aléatoire d’égale espérance et pouvant
T 0
être évaluée plus simplement (analytiquement en l’occurrence).
Par application de la formule d’Ito, on a.
dS 1 1
d (ln St ) = t − *σ 2 (t )* dt = (r (t ) − *σ 2 (t )) * dt + σ (t )* dWt Q
St 2 2
T T T T
On en déduit 1 * σ 2 ( s ) * ds = 2 *[ r (t ) * dt − d ln St + σ (t ) * dWt Q ]
∫ T 0
∫ T ∫ 0
∫ 0 0
T T T
ST
∫ d ln( S ) = ln( S
0
t
0
) , et ∫ r (s) * ds = ln(exp(∫ r (t ) * dt )) . D’où,
0 0
T T
1 2 ST
* ∫ σ 2 ( s ) * ds = − *[ln( ) − σ (t ) * dWt Q ] ou F(0,T) désigne le forward du spot vu de la date
T 0 T F (0, T ) ∫0
T
zéro à la date T. F (0, T ) = S0 *exp( r (t ) * dt ] . ∫
0
T T
Ainsi E Q [ 1 * σ 2 (t )* dt ] = E Q [− 2 *(ln( ST
) − ∫ σ (t ) * dWt Q )] .
T∫ 0
T F (0, T ) 0
En tenant compte du fait que l’intégrale stochastique est d’espérance nulle, on aboutit à

7
1
T
2 ST −2 Q
E Q [ * ∫ σ 2 (t ) * dt ] = E Q [− *(ln( )] = E [ln( ST ) − ln( F (0, T )] .
T 0 T F (0, T ) T
Le terme de droite peut être calculé analytiquement. Pour cela on va utiliser le résultat si dessous qui,
traduit le fait que n’importe quel payoff de type f ( ST ) avec f suffisamment régulière, peut être
recouvert par une combinaison de call et Put ( ST − K )+ et ( K − ST ) + .
Il s’agit du théorème de Breeden Litzenberger (1973) [2].

Enoncé :
Pour toute fonction deux fois différentiable et un point a de son domaine de définition , on peut écrire
pour tout x,
+∞ a
+ +
f ( x) − f (a) = f ' (a)*( x − a) + ∫ ( x − K ) * f ( K )* dK + ∫ ( K − x) * f ( K )* dK .
'' ''

a 0

Preuve :
x
Cela vient du fait que f(x)-f(a)= f ( x ) − f (a ) = ∫ f ' ( K ) * dK . On peut ensuite intégrer par partie en
a

posant v = f '
et u = 1 .
'

x
f ( x) − f (a) = [ f ' ( K ) *( K − x)]ax − ∫ ( K − x) * f ''( K ) * dK .
a
+ +
On peut écrire que K − x = [( K − x) − ( x − K ) ]
x x
On en déduit que : f ( x) − f ( a ) = f ' ( a ) * ( x − a ) + [ ∫ ( x − K ) + * f ''( K ) * dK − ∫ ( K − x ) + * f ''( K ) * dK ]
a a
+ +
En remarquant que ( x − K ) =0 pour K ≥ x et ( K − x) =0 pour K ≤ x , on obtient la relation
+∞ a
+ +
cherchée : f ( x) − f (a ) = f ' (a ) *( x − a ) + ∫ ( x − K ) * f ( K ) * dK + ∫ ( K − x) * f ( K ) * dK .
'' ''

a 0

En appliquant ce résultat qui vient d’être établi à la fonction f : x → ln( x) on peut poursuivre le
calcul d’espérance en développant le membre de droite.

−2 Q
T
1 2 ST
E Q [ * ∫ σ 2 (t ) * dt ] = E Q [− *(ln( )] = E [ln( ST ) − ln( F (0, T )] =
T 0 T F (0, T ) T
+∞
S − F (0, T )
a
2 + 1 1
= * E Q [( T + ∫ (ST − K ) * 2
* dK + ∫ ( K − ST ) + * 2 * dK )] .
T F (0, T ) a
K 0
K

En remarquant que le premier terme sous l’espérance représente le payoff d’un contrat forward au prix
« juste », on obtient après interversion de l’espérance et de l’intégrale.

T +∞ F (0,T )
1 2 1 1
E Q ( * ∫ σ 2 ( s) * ds) = *[ ∫ E Q ( ST − K ) + * 2 * dK + ∫ E Q ( K − ST ) + * * dK )] .
T 0 T F (0,T ) K 0
K2
On peut maintenant donner une expression de la prime du variance swap de strike K var
T T

0

P= E Q [ N *(1/ T * ∫ σ 2 (t ) * dt − K var 2 )] * exp(− r ( s ) * ds ) =
0
+∞ F (0,T )
2 1 1
* N *[ ∫ Disc (0, T ) * E Q ( ST − K ) + * 2 * dK + ∫ Disc (0, T ) * E Q ( K − ST ) + * * dK ) − K 2 var * Disc (0, T )]
T F (0,T )
K 0
K2
T


avec Disc(0,T)= exp(− r ( s ) * ds ) , N le nominal en EUR et K var le Strike du variance Swap.
0

8
On note CallBS (t , St , T , σ K r ) et PutBS (t , St , T , σ K r ) les fonctions de prix Black Scholes pour un put
et un call sur le sous-jacent de strike K.
Le paramètre r représente le taux zéro coupon entre la date initiale et la maturité T . Il est lié au taux
T
court introduit précédemment par ( r = 1 * r (t ) * dt ).
∫ T 0

On se place dans le cas général ou la volatilité dépend du strike pour prendre en compte le phénomène
de smile observé dans le marché.
En fin de compte, la relation ci après donne la prime à la date initiale t = 0 .
+∞ F (0,T )
2 1 1
P = * N *[ ∫ CallBS (t = 0, S0 , T , σ K r )* 2 * dK + ∫ PutBS (t = 0, S0 , T , σ K r )* 2 * dK ) − K 2 var * Disc(0, T )]
T F (0,T )
K 0
K

Analyse du Modèle et des choix d’implémentation dans Murex


Le modèle exposé précédemment est celui qui a été retenu dans l’application Murex.
Une autre approche possible aurait été d’essayer de spécifier un processus de volatilité
T
et envisager un calcul direct de l’espérance E Q ( 1 * σ 2 ( s) * ds) , éventuellement par des simulations
∫ T 0

de Monte-Carlo. Différentes études sur la modélisation des processus de volatilité existent dans la
littérature comme celui de Heston par exemple.
L’avantage du modèle retenu par Murex est qu’il ramène le calcul d’espérance à priori compliqué à
une espérance du type E Q ( f ( ST )) et donne une formule de pricing analytique simple à mettre en
œuvre. Egalement il a l’avantage de ne pas spécifier pas un modèle stochastique de volatilité qui s’il
est inadapté ou mal calibré peut être source d’erreur.
Les développements réalisés dans le logiciel Murex pour le variance swap simple utilisent donc le
modèle analytique.
Concernant les choix d’implémentation du modèle dans Murex, on peut retenir les points suivants :
-Pour éviter des problèmes numériques dus à l’interpolation de la smile pour des options très en dehors
de la monnaie, la borne zéro dans l’intégrale du Put est remplacée par
Low = F (0, T ) *exp[− N std * vol ATM * T ] ou N std est paramétrable par l’utilisateur (valeur de 10 par
défaut), et Up= F (0, T ) *exp[ + N std * vol ATM * T ] . vol ATM est la volatilité interpolée sur la smile pour
un strike égal au forward F(0,T).
-L’intégrale sur les Strikes est réalisé dans Murex par la méthode de quadrature de Gauss Legendre.

2-3 Comparaisons des Résultats Numériques avec Murex


2-3-1 :-Tests de Validation de la prime :
Nous avons implémenté un code numérique permettant d’effectuer le pricing de variance swaps selon
le modèle analytique exposé dans la section précédente.
Les choix d’implémentation retenus pour ce code-test sont les suivants :
-Les prix de Call sont calculés à l’aide de la formule de Black Forward
CallBS (t , St , T , σ K r ) = Disc (t , T ) *[ F (t , T ) * N ( d1 ) − K * N ( d 2 )] .
Disc(t , T ) = exp(− r *(T − t )] ou r désigne le taux zéro coupon entre t et T lu sur la courbe de taux que
le marché fournit à chaque date t.
F(t, T) désigne le forward entre t et T qui , dans le cas ou il n’ya aucun dividende, s’exprime par la
T


relation : F (t , T ) = St *exp( r (t ) * dt ) = St *exp(r *(T − t )) . Et enfin
0

1
ln( F / K ) + *(T − t )σ K2
d1 = 2 et d 2 = d1 − σ K * T − t .
σK * T −t
Les formules de Put sont obtenues à l’aide de la relation de Parité.

9
CallBS (t , St , T , σ K r ) − PutBS (t , St , T , σ K r ) = St − K *exp(−r (T − t )) .
Pour la fonction de répartition de la loi normale, on utilise l’algorithme classique suivant:
1
y=
1 + 0.2316419 x
z = 1.330274429 y 5 − 1.821255978 y 4 + 1.781477937 y 3 − 0.356563782 y 2 + 0.31938153 y
x2
z −
ν = 1− e 2


ν pour x ≥ 0
N ( x) = 
1 −ν pour x ≤ 0

-Ensuite, les calculs d’intégration sur strike sont faits en utilisant la méthode des rectangles.
Notons que les développements de Murex utilisent plutôt la quadrature de Gauss Legendre et cela
constitue la principale différence entre notre code test et l’implémentation de Murex.
-La surface de volatilité est interpolée linéairement, ce qui correspond au mode d’interpolation par
défaut effectué dans Murex.

Test Case de Comparaison


On considère un Variance Swap , de maturité T= 2m (deux mois), de strike K var =0.
Dans la configuration du sous-jacent, on définit une surface de volatilité σ = f (T , K ) dont la coupe
correspondant à T=2mois peut être représentée ci dessous avec une interpolation linéaire. La valeur du
spot est S0 = 34 . Comme autre donnée de marché, on dispose aussi d’une courbe de taux sur laquelle
on vient interpoler linéairement. Le taux Zéro-Coupon (convention exponentielle) correspondant à la
maturité de deux mois est de 3.0132%.

Les valeurs de prime sont calculées pour une suite de 200 valeurs de Spot allant de S min = 20 , à
S max = 50 et sont ensuite comparées à celles données par l’application Murex. Le graphe ci après
résume les résultats de ce test-case.

10
Nous constatons une réplication quasi-exacte de la prime donnée par Murex . Sur l’ensemble des test-
case considérés, les résultats sont satisfaisants. L’écart relatif n’excède pas 0.04%.

2-3-2 :-Description des calculs de Sensibilité dans Murex


L’expression générale de la prime est rappelée ci dessous.
+∞ F (0,T )
2 1 1
P = * N *[ ∫ CallBS (t = 0, S0 , T , K , σ K r )* 2 * dK + ∫ PutBS (t = 0, S0 , T , K , σ K r )* 2 * dK ) − K 2 var * Disc(0, T )]
T F (0,T )
K 0
K

En pratique, on calcule :

Up F (0,T )
2 1 1
P = * N *[ ∫ CallBS (t = 0, S0 , T , K , σ K r )* 2 * dK + ∫ PutBS (t = 0, S0 , T , K , σ K r )* 2
* dK ) − K 2 var * Disc(0, T )]
T F (0,T )
K Low
K

Low = F (0, T ) *exp[ − N std * vol ATM * T ] ou N std est paramétrable par l’utilisateur (valeur de 10 par
défaut), et Up= F (0, T ) *exp[ + N std * vol ATM * T ] . vol ATM est la volatilité interpolée sur la smile
pour un strike égal au forward F(0,T).

Dans l’application Murex, cette intégrale est discrétisée par une quadrature de Gauss Legendre en
utilisant 32 valeurs de strike pour les Call variant entre F(0,T) et la limite supérieure d’intégration
( K c1.....K c 32 ) et 32 valeurs de strike pour les Puts.( K p1.....K p 32 ) .
En regardant l’expression établie pour la prime, on peut écrire en toute généralité :
Pt = P (t , T , r , St , K ci , σ Kci , K Pi , σ K Pi ) .
On pourra remarquer que ce produit présente à priori une sensibilité à l’ensemble de la courbe de smile
de volatilité correspondant à la maturité.
Les principales sensibilités calculées dans Murex sont les suivantes :
∂P
-Sensibilité au Spot : ∆ = . Elle est calculée par différence finie.
∂St

11
P ( St + ε * St ) − P ( St )
Autrement dit, à partir du calcul de la prime, Murex évalue : .
ε * St
Le Gamma correspondant à la dérivée partielle d’ordre deux par rapport au spot est aussi évalué en
différence finie.

-Sensibilité à la volatilité :
Le produit a une sensibilité à l’ensemble de la courbe de smile de volatilité correspondant à la
maturité. Pour chaque valeur de volatilité intervenant dans la formule
Pt = P (t , T , r , St , K ci , σ K ci , K Pi , σ K Pi ) , on peut calculer une sensibilité partielle.
∂Pt ∂Pt
Murex permet de visualiser les différentes valeurs , (Véga par strike) et affiche enfin
∂σ K ci ∂σ K pi
∂Pt ∂Pt
un Véga agrégé= ∑ ∂σ
i
+
∂σ Kci
.
K pi

Dans Murex, les calculs du Véga sont effectués de façon analytique.

2-3-3 :-Tests de Validation Réalisés sur les sensibilités


Le principe consiste à partir de l’expression de la prime dans le cas général, à reprendre les calculs de
sensibilité, et comparer avec Murex sur plusieurs test cases.

+∞ F (0,T )
2 1 1
P= * N *[ ∫ CallBS (t = 0, S0 , T , K , σ K r )* 2 * dK + ∫ PutBS (t = 0, S0 , T , K , σ K r )* * dK ) − K 2 var * Disc(0, T )]
T F (0,T )
K 0
K2

Cas du Delta :
Nous avons implémenté deux méthodes :
-Le calcul par différence finie P( St + ε * St ) − P( St ) qui correspond au mode de calcul implémenté
ε * St
dans l’application Murex.
- Le calcul analytique :
Cela consiste à dériver directement l’expression de la prime rappelée ci dessus.
On obtient, après dérivation sous signe somme :
+∞
∂P 2
F (0,T )
1 1
= * N *[ ∫ ∆Call (t = 0, S0 , T , K , σ K , r ) 2 * dK + ∫ ∆Put (t = 0, S0 , T , K , σ K , r ) * 2 * dK ]
∂S0 T F (0,T )
K 0
K
PutBS (t = 0, K = F (0, T ), T , σ K = F (0,T ) , r ] CallBS (t = 0, K = F (0, T ), T , σ K = F (0,T ) , r )
+ −
F (0, T ) 2 F (0, T ) 2
Les deux termes supplémentaires sont dus au fait que les bornes des intégrales dépendent du paramètre
spot par rapport auquel on dérive.
Mais on remarque aussi qu’ils vont se compenser par la formule de Parité Call-Put dans la mesure ou
il s’agit d’une différence de Call et Put pris à la monnaie Forward.
Finalement, on tombe sur l’expression suivante :

+∞
∂P 2
F (0,T )
1 1
= * N *[ ∫ ∆Call (t = 0, S0 , T , K , σ K , r ) 2 * dK + ∫ ∆Put (t = 0, S0 , T , K , σ K , r ) * * dK ]
∂S0 T F (0,T )
K 0
K2

Cas du Véga :
On utilise la méthode de calcul analytique, comme cela est fait dans Murex.
En discrétisant l’expression de la prime initiale avec les valeurs de strike notées K c1.....K cn pour
l’intégrale des Calls et K p1 ....K pn pour l’intégrale des Puts, on a en utilisant les rectangles,

12
2 Kcn
CallBS ( S0 , T , Kci , σ Kci , r )
P= * N *[∑ ( K ci +1 − K ci )
T Kc1 K ci2
K pn
PutBS ( S0 , T , K pi , σ Kpi , r )
+∑ *( K pi +1 − K pi ) − K 2 var * Disc(0, T )]
K p1 K pi2

On dérive en remarquant que Call et Put ont le même Véga.


La somme des sensibilités par rapport aux différentes volatilités s’écrit donc
2 Kcn
Vega( S0 , T , Kci , σ Kci , r )
Vega = * N *[∑ ( Kci +1 − Kci )
T K c1 Kci2
K pn
Vega( S0 , T , K pi , σ Kpi , r )
+∑ *( K pi +1 − K pi )]
K p1 K pi2

vu que K c1 et K pn approximent les bornes zéro et l’infini dans l’évaluation discrète des intégrales de
Call et Put, cette expression n’est rien d’autre que la forme discrétisée de l’expression
+∞
2 1
Vega = * N *[ ∫ Vega (t = 0, S0 , T , K , σ K r ) * 2 * dK ] ,
T 0
K
Pour résumer, nous avons donc implémenté numériquement dans le cas général d’une smile
quelconque :
-Le Delta analytique et le Delta par différence finies.
-Le Véga analytique.
Prenons comme test case, un variance swap de maturité deux mois avec une surface de smile
interpolée linéairement comme dans la section 2-3.
Les sensibilités obtenues sont comparées à celle de Murex pour une rangée de 200 valeurs de Spot.
Les graphes ci dessous synthétisent les résultats du test.

Résultats relatifs au Delta :

13
On constate que le Delta de notre code test (que ce soit en analytique ou en différence finies) et celui
de Murex restent très proches.
Les courbes présentent clairement les mêmes tendances.
Les seules différences proviennent du fait que les valeurs de Delta-Murex présentent de légères
oscillations. Ce comportement oscillatoire est très amplifié lorsqu’on observe le Gamma . On peut
essayer d’en comprendre l’origine en reprenant la démarche de calcul utilisée dans Murex.
Le Delta étant évalué par différences finies :
-On commence donc par évaluer La prime pour un spot donné P(t, St ..) , en intégrant des primes de
Call et Put par la méthode de Gauss Legendre.
Notons que la fonction K → σ ( K ) n’est que C 1 par morceaux vu que la volatilité est interpolée
linéairement. Ainsi les fonctions de Prix de Call et Put : K → CallBS (t , St , T , K , σ K , r ) et
K → PutBS (t , St , T , K , σ K , r ) ne sont pas C .
1

Le principe de la quadrature de Gauss Legendre est d’approximer la fonction à intégrer par une
fonction polynomiale ayant les mêmes valeurs que la fonction initiale aux points de quadrature K i .
Ainsi, on peut retenir que dans le calcul de la prime P(t, St ..), la fonction linéaire par morceaux
K → σ ( K ) sera d’abord approximée par une première fonction polynomiale. Il s’agit d’une fonction
polynomiale choisie de façon à matcher exactement la fonction initiale aux points de la quadrature (en
l’occurrence ici, les strikes de quadrature…)
-Ensuite on calcule P(t, St + ε * St ..), qui correspond à la prime lorsque le spot est shifté.
Les bornes d’intégrations changent, et du même coup, ces strikes de la quadrature vont changer. La
conséquence est que une autre fonction polynomiale différente de la première sera utilisée pour
approximer la smile K → σ ( K ) . Il y a donc un changement de courbe de smile qui se fait
implicitement lorsqu’on allie le calcul de la prime par Gauss Legendre et la méthode des différences
finies pour le Delta.
Cela est à l’origine des fluctuations qu’on observe sur le Delta et c’est naturellement encore plus
amplifié sur le Gamma comme on peut le voir sur le graphe suivant.

14
Résultats relatifs au Véga :

Les valeurs du Véga _Murex sont très proches de celles du code-test.


Hormis un léger spread constant dont nous n’avons pas réussi à identifier la cause, les deux courbes
sont identiques.

2-3-4 :- Conclusion sur les Tests du Variance Swap Classique


En résumé, les tests de validation effectués sont concluants, notamment en ce qui concerne la prime
qui est répliquée avec une différence relative de 10e-4.
Le seul problème rencontré sur les résultats de l’application Murex, est un comportement oscillatoire
des grandeurs qui sont calculées en combinant la méthode des différences finies et la quadrature de
Gauss Legendre. Ces oscillations rendent par exemple le Gamma difficilement exploitable en pratique.

15
Une amélioration possible pourrait être d’implémenter dans Murex, un calcul analytique du Delta et
du Gamma, comme cela est fait pour le Véga.
De ce fait, on pourra obtenir des indicateurs de risque stables sans oscillations, tout en conservant
l’avantage de la méthode de Gauss Legendre qui est de faire une quadrature rapide et très précise avec
seulement 32 strikes.

3: Compléments sur le Variance Swap Simple


On aborde dans cette section quelques compléments sur le variance swap simple.

3-1 :Pricing du Variance Swap à une date ultérieure : t > 0 .


On suppose que le contrat est signé à la date zéro et on s’intéresse au pricing du contrat à une
date ultérieure. Nous donnons juste le principe du calcul de pricing.
On peut écrire la relation suivante.
T
Pt = E [ N *[1/ T * ∫ σ 2 (t ) * dt − K var
Q 2
]* Disc (t , T )
0
. .
T −t
t T
t 1 1
= E Q [ N *[ * ∫ σ 2 (t ) * dt − K var
2
+ * ∫ σ 2 (t ) * dt ]* Disc(t , T )
T t0 T T −t t
t

∫σ
2
On peut remarquer que, dans cette équation, (t ) * dt est déterministe. On appelle généralement
0
t
1
Variance passée la quantité : * ∫ σ 2 (t ) * dt et est en pratique calculée sur le marché en utilisant les
t 0
valeurs de spot fixées depuis la date d’origine du contrat jusqu’à la date courante. Ensuite, on peut de
la même façon que pour un pricing à la date initiale, calculer de manière analytique
T
1
* σ 2 ( s ) * ds ] en utilisant les prix à la date t d’une combinaison de Call et Put ayant pour
T − t ∫t
EQ[

maturité T.

3-2 :- Clause Forward Start dans un Variance Swap.


Bien que ce point ne soit pas implémenté dans l’application, on peut en pratique envisager de
différencier la date de signature du contrat (date initiale t = 0 ), à la date à partir de laquelle on
commence à accumuler la variance.
Ainsi, un variance swap signé à la date t = 0 , avec une clause de départ de calcul de la variance fixée
T
1
à la date t1 , paye à la maturité T un flux égal à : GT = N * *[ ∫ σ 2 (t ) * dt − K var
2
].
(T − t1 ) t1
Si on se place à la date zéro et que l’on sait pricer un variance swap normal (dont la variance est
accumulée depuis la date de signature du contrat), on peut facilement pricer le variance swap Forward
start en réécrivant le Payoff :
T 1 t
1
GT = N * *[ ∫ σ 2 (t ) * dt − ∫ σ 2 (t ) * dt − K var
2
]
(T − t1 ) 0 0
T t
T 1 t 11
GT = N [ * ∫ σ 2 (t )* dt − 1 * ∫ σ 2 (t )* dt − K var
2
]
(T − t1 ) T 0 T − t1 t1 0
Cette dernière équation permet de voir que le prix de ce contrat peut être connu à partir du prix d’un
variance swap classique de maturité T (strike nul) , et du prix d’un second variance swap de maturité
t1 (et de strike nul).
En notant P (0, t1 ) et P (0, T ) les prix à la date zéro de ces variance swaps, on peut écrire :

16
T Disc(0, T ) t
PFwdstart (t1 , T ) = * P (0, T ) − * 1 * P (0, t1 ) − K var
2
* Disc(0, T ) .
T − t1 Disc(0, t1 ) T − t1
En résumé, le pricer de variance swap classique dont on dispose dans Murex peut être utilisé pour
trouver les prix de contrats incluant des clauses de type « Forward Start ».

CHAPITRE 2 : ETUDE DE VERSIONS EXOTIQUES DU VARIANCE SWAP

1 : Expression du Payoff des Corridor et Conditional Variance Swap :


Par rapport à la description exposée dans le chapitre précédent, il existe des formes exotiques du
variance swap dont les plus connues et les plus échangées dans le marché sont le Corridor et le
Conditional Variance Swap.
L’objectif de base est de chercher à éviter que les mouvements extrêmes du spot qui peuvent arriver
sur un jour particulier n’influent fortement la variance réalisée.
Ainsi, on se fixe deux barrières notées B1 et B2 avec ( B1 < B2 ).
On décide de n’accumuler la variance que lorsque le sous-jacent reste entre ces deux barrières. Le pay-
off du Corridor Variance Swap s’écrit donc sous la forme :

T
1
GCorridor = N *[ * ∫ σ 2 (t ) *1St ∈[ B1 . B2 ] dt − K var
2
].
T 0
Une version très légèrement différente appelée Conditional Variance Swap, consiste à dire que le
Strike qu’on a fixé dans le contrat K var , sera aussi adapté de façon à tenir compte uniquement des
jours ou le spot est resté entre les deux barrières.
Ainsi, si on désigne par NTotal ,le nombre total de jours sur la période [0 T], on pourra calculer à
maturité le nombre de jours effectifs ou le spot est resté entre les deux barrières par la formule :
i = NTotal
N effectif = ∑i =1
1St ∈[ B1 . B2 ] . La valeur ajustée de K var
2
sera ensuite calculée de façon

N effectif 2
proportionnelle et la variance seuil ajustée sera * K var .
NTotal
Ainsi, le Conditional Variance Swap aura un pay-off qui s’écrira.
T
1 N
GConditionnal = N *[ * ∫ σ 2 (t ) *1St ∈[ B1 . B2 ] dt − effectif K var
2
].
T 0 NTotal
Dans ce qui suit, nous allons considérer le cas du Corridor Variance Swap de pay-off à maturité T égal
T
1
à : GCorridor = N *[ * ∫ σ (t ) *1St ∈[ B1 . B2 ] dt − K var ] .
2 2

T 0

2-Méthode de Valorisation d’un Corridor Variance Swap


On conserve les mêmes hypothèses de modélisation que dans le chapitre précédent.
Le prix de non arbitrage du Corridor Variance Swap s’exprimera de la façon suivante :
T
1
P = Disc(0, T ) * E Q [ N *( * ∫ σ 2 (t ) *1St ∈[ B1 .B2 ] dt − K var
2
)] ou Q est la mesure de probabilité risque
T 0
neutre. Le principe du calcul qu’on a effectué dans le cas du variance swap classique était de ré-
exprimer plus simplement cette intégrale sur le processus de variance. Cela a été fait en appliquant le
lemme d’Ito au processus ln( St ) .

17
Mais à la différence du variance swap classique, l’intégrale concerne cette fois ci un processus de
variance corrigé de façon à être nul lorsque le spot sort des barrières.
Ainsi, l’idée est d’essayer d’adapter la méthode utilisée pour le variance swap, en faisant du calcul
d’Ito non plus sur ln( St ) mais plutôt sur ln( St ) avec St = max( B1 , min( B2 , St )) .
On remarquera que St représente le processus St « restreint » entre les barrières B1 et B2 .
C’est à dire que si St ∈ [ B1.B2 ] alors St = St , et St = B2 pour St ≥ B2 et enfin St = B1 pour
St ≤ B1 . Dans le cadre du corridor variance swap, ce processus va jouer le même rôle que celui de St
pour le variance swap classique.
En considérant la fonction :f x → max( B1 , min( B2 , x)) , on a : St = f ( St ) .
Par application du lemme d’Ito au processus St avec la fonction x → ln( x) ,

on peut écrire que d ln( St ) = d St − d < S >t .


2
St ( St )
La principale difficulté qui apparaît à ce niveau est que d St = df ( St ) avec f(x)=
x → max( B1 , min( B2 , x)) qui n’est que C par morceaux.
1

Vu que la fonction n’est pas suffisamment régulière (de classe C 2 ) , on est plus dans le cadre de la
formule d’Ito classique. On utilisera la formule de Tanaka qui donne une formule de même type que
celle d’Ito en utilisant des distributions à la place des dérivées classiques.

2-1 : Formule de Tanaka et Notion de Temps Local

Définition 1 : Définition d’une distribution.


On désigne par Ω , un ouvert de R d et D (Ω) , l’espace vectoriel des fonctions C ∞ à support compact
dans Ω . Une distribution est une forme linéaire u sur D (Ω) ,
telle que quelle que soit la fonction Ψ ∈ D(Ω) de support K (appelée fonction-test) , il existe une
constante C(K) et un entier n vérifiant la relation : < u , Ψ > ≤ C ( K ) * Supk ≤ N ∂ k Ψ ou ∞

désigne la norme infinie. La dernière inégalité impose une propriété de continuité de la forme linéaire
.
Définition2 : Dérivée d’une distribution.
Ayant défini la distribution u plus haut , on définit la distribution dérivée d’ordre k, que l’on note u k
comme une forme linéaire sur D (Ω) caractérisée par < u k , Ψ >= (−1) k < u , Ψ k > pour toute
fonction-test.

Théorème : Lien entre fonction et distribution .


Pour toute fonction f de L1loc (Ω) (intégrable sur les compacts de Ω ), on peut définir une distribution
notée u(f) définie par : ∀Ψ ∈ D(Ω), < u ( f ), Ψ >= ∫ f ( x) * Ψ ( x) * dx .

De plus l’application : f → u ( f ) est injective.


On voit d’après ce théorème que on peut associer de façon injective une fonction localement
intégrable à une distribution. Les distributions étant dérivables à tout ordre, on peut de cette façon
prolonger la notion de dérivée pour des fonctions non régulières (en faisant référence aux dérivées de
la distribution qui lui est associée).

Applications :
Pour tout réel a, on appelle distribution de Dirac en a, la forme linéaire telle que
< δ a , Ψ >= Ψ (a ) . On peut définir par δ a ( x) , la fonction qui s’identifie à cette distribution.
C'est-à-dire que dans l’espace des fonction test, ∀Ψ , ∫ δ a ( x) *Ψ ( x) * dx = Ψ (a ) .
R

18
Considérons maintenant la fonction qui a x associe H a ( x) = 1x > a . Cette fonction n’est à priori pas
dérivable dans le cadre usuel mais peut être associée à la distribution u ( H a ) , telle que
< u ( H a ), Ψ >= ∫ H a ( x) * Ψ ( x) * dx = ∫ Ψ ( x) * dx
R R

Par définition, la dérivée de u ( H a ) est elle que :


< u ' ( H a ), Ψ >= − < u ( H a ), Ψ ' >= − ∫ Ψ ' ( x) * dx =Ψ (a)
R

Ainsi on voit que la dérivée de cette distribution est celle de Dirac définie plus haut.
En conclusion, la fonction H a ( x) = 1x > a a pour dérivée (au sens des distributions) , la fonction
x → δ a ( x) qui est celle associée à la distribution de Dirac.
Si on revient à notre problème initial, qui était de chercher la dynamique du processus St = f ( St ) avec
f : x → max( B1 , min( B2 , x)) , on remarque d’abord que :
f ' ( x ) = 1]B1.B 2[ ( x) = H B 2 ( x ) − H B1 ( x ) . D’après ce qui a été vu plus haut, on peut définir la dérivée
seconde au sens des distributions par
f 2 ( x) = δ B 2 ( x) − δ B1 ( x) .
La formule ci-dessous étend le lemme d’Ito :

Formule de Tanaka :
Pour toute fonction f(t, x) telle que l’on puisse définir au sens des distributions les quantités
∂f ∂f ∂ 2 f
, , , on a pour toute semi-martingale continue X t
∂t ∂x ∂x 2
∂f ∂f 1 ∂2 f
df (t , X t ) =
* dt + * dX t + * 2 * d < X >t .
∂t ∂x 2 ∂x
En appliquant ce résultat à St = max( B1 , min( B2 , St )) , on a :
1
d St = 1St ∈]B1.B 2[ * dSt + *(δ B2 ( St ) − δ B1 ( St )) * σ 2 * St2 * dt
2
Notons que on nous étions parti de la relation : d ln( S ) = d St − d < S >t . Vu que l’on vient de calculer
t 2
St ( St )
d St , il reste maintenant à évaluer d < S >t . Pour cela, on va voir que le terme
1
*(δ B2 (St ) − δ B1 ( St ))*σ 2 * St2 * dt est de variation totale bornée. Ainsi , il n’interviendra pas dans la
2
variation quadratique, et on pourra conclure que :
d < S > t = 1S ∈]B1. B 2[ * d < S > t = 1S ∈]B1. B 2[ * σ 2 (t ) * S 2 (t ) * dt .
t t

L’argument que nous allons utiliser consiste à identifier la quantité (δ B1 ( St ) * d < S >t avec le temps
local du processus St en B1 et d’utiliser le fait que le temps local est un processus croissant donc de
variation totale finie.

Processus de Temps Local :


Le résultat énoncé ici est tiré du cours de « Couverture des Risques dans les Marchés financiers [3]
de El Karaoui. Nous l’utilisons directement, sans démonstration.

(i)-Pour toute fonction convexe de classe C 2 , si X t est une semi-martingale continue, on peut écrire :
1
df ( X t ) = f ' ( X t )dX t + * dAt f ou le processus At f = f 2 ( X t ) * d < X >t est croissant et positif par
2
convexité de la fonction f.

19
(ii)-La fonction convexe : f x → ( x − K ) + n’est pas C 2 mais est limite croissante d’une suite f n de
fonctions régulières pour laquelle les processus croissants At f convergent aussi vers un processus n

croissant noté LKt et appelé temps local au point K.

+ 1 B
En vertu du résultat précédent, on a donc d ( X t − B1 ) = 1X t > B1 * dX t + * Lt 1
2
+
Par ailleurs, en appliquant la formule de Tanaka à x → ( x − B1 ) on a
1
d ( X t − B1 ) + = 1X t > B1 * dX t + * δ B1 ( X t ) * d < X >t .
2
On en déduit, par identification que δ B1 ( X t ) * d < X >t = Lt 1 . Le temps local étant croissant, il est
B

de variation totale finie, donc de variation quadratique nulle. On peut donc écrire :
d < S > t = 1St ∈]B1. B 2[ * d < S > t = 1St ∈]B1. B 2[ * σ 2 (t ) * S 2 (t ) * dt et par la suite
d < St >
= 1St ∈]B1.B 2[ * σ 2 (t ) * dt .
2
S t

Cette dernière relation se réécrit sous la forme :


d < S >t
= 2[ t − d ln( St )] (E ) car on a aussi d ln( S ) = d St − d < S >t
dS
1St ∈]B1.B 2[ * σ 2 (t ) * dt =
2 t
St St St ( St ) 2
Rappelons que le pay-off du corridor variance swap est le suivant :
T
1
GCorridor = N *[ * ∫ σ 2 (t ) *1St ∈[ B1 . B2 ] dt − K var
2
]
T 0
T T
d St
Ainsi, on doit calculer E Q [ ∫ 1S ∈]B1.B 2[ * σ 2 (t ) * dt ] = 2 * E Q [ ∫
t
− d ln( St )] d’après (E)
0 0 St
T
d St ST
= 2 * E [∫ ] − 2 * E Q [ln
Q
].
St 0 St
Le calcul de ces deux espérances est détaillé ci-dessous.

2-2 : Calcul Analytique de la Prime du Corridor Variance Swap :


T
d St
a) Calcul de la Première espérance : E [ ∫
Q
]
0 St
On a établi par la formule de Tanaka :
1 1
d St = 1St ∈]B1. B 2[ * dSt + * δ B2 ( St ) * d < S >t − * δ B1 ( St ) * d < S > t .
2 2
1
On a d’autre part : d ( St − B2 ) + = 1St≥B2 * dSt + * δ B2 ( St ) * d < S >t et
2
1
d ( B1 − St ) + = −1St ≤ B * dSt + * δ B1 ( St ) * d < S >t , ce qui permet de réécrire l’expression de d St
1
2
d St 1St ∈[ B1B2 ] * dSt d ( St − B2 ) + dSt dSt d ( B1 − St ) +
= + − 1St≥ B * − 1St ≤B * − .
St St St 2
St 1
St St
En regardant ensuite ce que vaut chacun des termes sur les évènements {St ≤ B1 , St ≥ B2 , St∈[ B1B2 ] , on }
peut écrire les égalités suivantes :
1St ∈[ B1 B2 ] * dSt dSt dS
= *1St ∈[ B1 B2 ] = t * (1St ≤ B − 1St ≤B ) .
St St St 2 1

20
d ( St − B2 ) + d ( St − B2 ) d ( St − B2 ) +
= *1St ≥ B2 = .
St B2 B2
dSt dSt dSt dSt
1St ≥ B * = *1St≥ B et enfin 1St ≤B1 * = *1St ≤B .
2
St B2 2
St B1 1

On remarque d’autre part que par différence des formules de Tanaka appliquées avec les fonctions
f ( x) = ( x − B2 ) + et g ( x) = ( B2 − x) + , on a d ( St − B2 ) + − d ( B2 − St ) + = (1S + 1S ) * dSt . t ≥ B2 t ≤ B2

d St
Par remplacement dans l’expression de , il vient :
St
d St dSt dS dS d ( B1 − St ) + d ( B2 − St ) +
= (1St ≤ B − 1St ≤ B ) * − 1St ≤ B * t + 1St ≤ B * t + −
St 2 1
St 2
B2 1
B1 B1 B2
d St 1 1 dS d ( B1 − St ) + d ( B2 − St ) +
Par factorisation : =( ( B2 − St ) *1St ≤B − ( B1 − St ) *1St ≤ B ) t + −
St B2 2
B1 1
St B1 B2
d St ( B2 − St ) + ( B1 − St ) + dSt d ( B1 − St ) + d ( B2 − St ) +
On en déduit finalement : =[ − ]* + −
St B2 B1 St B1 B2
T
d St T
( B2 − St ) + ( B1 − St ) + dSt ( B − ST ) + ( B2 − ST ) + ( B1 − S0 ) + ( B2 − S 0 ) +
Par intégration : ∫
0 St
=∫
0
B2

B1
]*
St
+[ 1
B1

B2

B1
+
B2
]

On prend l’espérance en remarquant que pour une action (sans dividendes), ni tax-credit, on a
dSt dSt
EQ ( ) = r (t ) * dt ou r(t) est le taux sans risque instantané. D’autre part, on sait aussi que est
St St
indépendant de la tribu Ft , donc de toutes les variables aléatoires Ft mesurables.
En notant Put (t0 = 0, t , K ) le prix initial non discounté, d’un put de maturité t et de strike K, on a
T
d St Put (t0 = 0, T , B1 ) Put (t0 = 0, T , B2 ) ( B1 − S0 ) + ( B2 − S0 ) + T Put (t0 = 0, t , B2 ) Put (t0 = 0, t , B1 )
E Q (∫ ) =[ − − + ]+ ∫ − ]* r (t )dt
0 St B1 B2 B1 B2 0 B2 B1

Q ST
b) Calcul de la seconde espérance : E [ln ]
St
On pose ST1 = max( ST , B1 ) et ST2 = max( ST , B2 ) .
ST1 max( ST , B1 ) B1 S
2
= = *1ST ≤B + T *1B1 ≤ ST ≤ B2 + 1ST ≥B On a
ST max( ST , B2 ) B2 1
B2 2

ST1 max( ST , B1 ) B1 S
2
= = *1ST ≤ B + T *1B1 ≤ ST ≤ B2 + 1ST ≥ B .
ST max( ST , B2 ) B2 1
B2 2

Cela se voit en regardant ce que vaut le rapport


ST1
ST2
sur les évènements {St ≤ B1 , St ≥ B2 , St∈[ B1B2 ] }
ST B S
De la même façon, on a = 1 *1ST ≤ B + T *1B1 ≤ ST ≤ B2 + 1ST ≥ B
B2 B2 1
B2 2

ST1 ST
On a donc prouvé que = , ce qui implique la relation ln( ST ) = ln( ST1 ) − ln( ST2 ) + ln( B2 ) .
ST2 B2
ST ST1 S2 B
On en déduit que : ln( ) = ln( ) − ln( T ) + ln( 1 ) .
St B1 B2 St
La dernière étape est d’utiliser le théorème de Litzenberger qu’on a déjà utilisé pour le variance swap
classique.

21
S i − Bi +∞ ( STi − K ) + ( K − STi ) +
B
STi i

On peut ainsi écrire (pour i=1 et i=2), ln( )= T −∫ * dK − ∫0 K 2 * dK


Bi Bi Bi
K2
L’intégrale de zéro à Bi disparaît, puisque on aura K ≤ Bi . Or STi ≥ Bi , par définition de STi , ce qui
veut dire que STi ≥ K et par suite ( K − STi ) + = 0 .
On se place donc uniquement dans la première intégrale ou K varie de Bi a l’infini,
Si ST ≥ K ≥ Bi on a STi = max( ST , Bi ) = ST et ( STi − K ) + = ST − K .
Et si ST ≤ K , vu que l’on a également Bi ≤ K , on obtient STi = max( ST , Bi ) ≤ K , d’où ( STi − K ) + = 0
On a donc établi que : ( STi − K ) + = ST − K pour ST ≥ K et 0 pour ST ≤ K
Cela montre que ( STi − K ) + = ( ST − K ) + .
Enfin, il est facile de voir de la même façon que : ( STi − Bi ) = ( ST − Bi ) +
Le calcul d’espérance peut maintenant se faire. On note Call (t0 = 0, t , K ) , le prix non discounté, à la
date initiale d’un Call de maturité t et de Strike K :
STi Call (t0 = 0, T , Bi ) +∞ Call (t0 = 0, T , K )
E Q (ln )= −∫ * dK
Bi Bi Bi K2
Finalement, on a donc :
Call (t0 = 0, T , B1 ) Call (t0 = 0, T , B2 ) 2 Call (t0 = 0, T , K )
B
ST B
E Q (ln )= − −∫ 2
* dK + ln( 1 )
St B1 B2 Bi K St

En notant Disc(0,T) , le discount factor entre les dates t=0 et T, lu sur la courbe des taux initiale,
la prime à la date initiale d’un Corridor Variance swap de Payoff est donc obtenue par la formule
analytique suivante.
T
N * Disc(0, T )
PCorridor = * E Q ( ∫ σ 2 (t ) *1St ∈[ B1 . B2 ] dt ) − N * K var
2
* Disc(0, T ) .
T 0
T T
d St ln( ST
Avec E Q [ ∫ 1S ∈]B1.B 2[ * σ 2 (t ) * dt ] = 2* E Q [ ∫
t
] − EQ ( )] , les deux espérances étant données par les
0 0 St St
relations ci-dessous que nous avons établi dans les sections précédentes :
T
dS Put (t0 = 0, T , B1 ) Put (t0 = 0, T , B2 ) ( B1 − S0 ) + ( B2 − S0 )+ T Put (t0 = 0, t , B2 ) Put (t0 = 0, t , B1 )
E Q (∫ t ) = [ − − + ]+ ∫ − ]* r (t )dt
0 St
B1 B2 B1 B2 0
B2 B1

Call (t0 = 0, T , B1 ) Call (t0 = 0, T , B2 ) 2 Call (t0 = 0, T , K )


B
ST B
E Q (ln )= − −∫ 2
* dK + ln( 1 )
St B1 B2 Bi K St
Comme indiqué précédemment, toutes les fonctions de prix de Call et Put sont non discountées.

3 : Tests Numériques de Validation


D’un point de vue modèle, on peut d’abord remarquer qu’on aboutit à nouveau,
à une formule analytique, malgré le fait que cette version exotique du variance swap présente un pay-
off plus compliqué.
En ce qui concerne les tests de comparaisons, au moment ou nous avons implémenté le code
correspondant à ce modèle, les développements relatifs au Corridor Variance swap n’étaient pas
encore complètement terminés dans l’application Murex.
Cela nous a empêché d’aller jusqu’à l’objectif final qui était de comparer nos résultats à ceux de
Murex comme on l’avait fait pour le variance swap classique.
On présente néanmoins ci-dessous, les résultats de notre code test implémenté en langage Java.

22
Test Case :
Le Corridor Variance Swap considéré est de maturité T= 2m (deux mois), de strike K var =0.
Pour le sous-jacent, on conserve la même surface de volatilité σ = f (T , K ) que celle a été présentée
dans le test-case du variance swap classique. On dispose aussi de la courbe de taux initiale sur
laquelle on fait des interpolations linéaires pour déterminer le taux correspondant à une maturité
donnée. (Ex dans notre cas, le taux 2 mois est de 3.013%).
La valeur initiale du spot est S0 = 34 .
On sait qu’en pratique, si on réalise des simulations de trajectoires de l’actif, il y a un « couloir de
diffusion ». Cela est lié au fait que le mouvement brownien est tel que Wt suit une loi N(0,t).
Donc, il sera avec une probabilité de 95% entre les deux demi paraboles y = ±1.96 * t .
Connaissant la courbe de volatilité du sous-jacent, nous pouvons ainsi déterminer le couloir de
diffusion de notre spot, puis choisir deux valeurs de barrière qui sont telles que l’évènement
St ∈[ B1B2 ] soit de probabilité supérieure ou égale à 95%.
Dans notre cas-ci, on obtient après calculs B1 = 29.5 et B2 = 43 .
Le principe du test est le suivant : Vu que l’évènement St ∈ [ B1 B2 ] est de probabilité élevée, il y aura
une probabilité forte pour qu’on accumule « toute la variance » , et donc la prime du corridor variance
swap doit être très proche de celle du variance swap classique sur le même sous-jacent.
Dans un second temps, si on laisse B2 fixe égal à 43 et qu’on augmente progressivement B1 ,
l’évènement St ∈ [ B1B2 ] aura une probabilité de plus en plus faible qui va tendre vers zéro lorsque
B2 sera très proche de B1 . Donc, on s’attend à ce que la prime du corridor variance swap baisse
jusqu’à s’annuler. La courbe ci-dessous permet de résumer les résultats du code-test, et qui sont
cohérents avec les aspects évoqués ci-dessus.

La prime du corridor Variance swap décroît bien lorsque la barrière inférieure est augmentée.
Notons que cette baisse est très prononcée lorsque B1 dépasse le spot. En effet dans ce cas de figure,
la condition St ≥ B1 revient à ne considérer que les parties de la trajectoire ou le spot ne descend pas
de sa valeur initiale. Globalement, le modèle analytique développé pour le Corridor Variance Swap est
satisfaisant, dans le sens ou il permet de retrouver sur des cas limite, les résultats du variance swap
classique.

23
CHAPITRE 3 : TESTS DE VALIDATION SUR LE PAYOFF NAPOLEON

Ce dernier chapitre est consacré aux tests réalisés sur le Pay-Off Napoléon.
Il s’agit d’un produit très différent des dérivés de volatilité que nous avons vus précédemment.
Le flux payé par une telle option est lié à des performances du cours du sous-jacent calculée sur la
durée de vie de l’option. Comme on le verra, les techniques de valorisation ne seront plus analytiques,
mais basées sur des simulations.
L’objectif est, comme précédemment, d’arriver à valider les résultats fournis par l’application Murex
et ensuite d’apporter éventuellement une ouverture sur la problématique étudiée.

1-L’Option Napoléon sur un sous-jacent Equity


Le sous-jacent considéré est une action simple dont le processus de prix est noté St .
Sur la période [0 T] , qui correspond à la durée de vie de l’option, on définit un ensemble de dates de
fixings : to = 0.....tn = T .
Le flux reçu à la date T est GT = N * max(0; C + min1<=i <= N ( Sti / St 0 ) − 1) ou C est un coupon
prédéfini dans le contrat. N représente un montant nominal en EUR.
Il s’agit donc d’un produit qui paie le minimum des performances évaluées relativement au cours
initial St0 , plus un coupon fixe prédéfini.
Toujours dans le cadre de la modélisation de Black Sholes, on suppose que l’action a une dynamique
log-normale.
On se place sous la mesure de probabilité risque neutre, et dans le cas ou il n’y a pas de dividendes
versés (on traitera le cas avec dividendes plus tard..) , on peut écrire la diffusion de l’actif risqué sous
la forme.

dSt
= r (t ) * dt + σ (t ) * dWt Q .
St

Cette équation s’intègre en


t t t
1
St = St0 *exp[ ∫ r ( s) * ds − * ∫ σ 2 (t ) * dt + ∫ σ ( s) * dWsQ ]
0
2 t0 t0
t t
1
= F (t0 , t ) *exp[− * ∫ σ 2 (t ) * dt + ∫ σ ( s)* dWsQ ]
2 t0 t0

F (t0 , t ) désigne le forward vu de t0 à la date t.


Le prix de non arbitrage de l’option (pour un nominal N=1EUR) , sera exprimé par la relation
suivante :
T
Sti
P0 = E Q [exp(− ∫ r ( s ) * ds ) * max(0, C + min1≤i ≤ N ( − 1))] (2)
t0
St 0
Le modèle utilisé dans Murex, part des éléments suivants :
-Une volatilité dépendant du temps (structure par terme) et déterministe.
-Un pricing effectué par des simulations de Monte-Carlo.
-Hypothèse de taux déterministes
Nous partons donc des même hypothèses , pour mettre en œuvre un pricer de Pay-off Napoléon que
nous allons par suite implémenter en langage JAVA.

24
1-1 : Implémentation d’un Simulateur Monte-Carlo
Le prix de l’option s’exprime par l’égalité :
T
S
P0 = E Q [exp(− ∫ r ( s ) * ds ) * max(0, C + min1≤i ≤ N ( ti − 1))] . Le calcul d’espérance de la variable
t0
St 0
aléatoire GT = max(0; C + min1<=i <= N ( Sti / St 0 ) − 1) va être fait par la méthode de Monte-Carlo.
Pour cela, nous allons suivre la démarche suivante :
-On commence par générer N trajectoires indépendantes du sous-jacent. Chacune d’entre elles permet
de faire un tirage indépendant de GT que l’on notera GTk .
1 k = N k ps
-La loi forte des grand nombres assure que * ∑ GT →E Q (GT ) .
N k =1
-On désigne par Erreur(N), l’erreur commise en calculant l’espérance de cette façon avec N
trajectoires. Il s’agit de la différence en valeur absolue entre la vraie valeur de l’espérance et
l’estimation qu’on en fait. Le théorème central limite permet de donner une évaluation de l’erreur.
k=N
1 1 k =N
On commence par calculer un estimateur de var(G) : Var (GT ) = * ∑ [GTk − ( * ∑ GTk )]2
N − 1 k =1 N k =1
N
On sait que * Erreur ( N ) 
loi
→ N (0,1) . D’autre part, on sait que une variable aléatoire de loi
Var (GT )
normale est avec une probabilité de 95% dans l’intervalle [-1.96 1.96].
On en déduit que l’erreur à 95% dépendra en fait du nombre de trajectoire N et de la variance de
Var (GT )
Var (GT ) . On l’approxime par : Erreur95% = 1.96* avec
N
k =N
1 1 k =N
Var (GT ) = * ∑ [GTk − ( * ∑ GTk )]2 .
N − 1 k =1 N k =1
Cela montre que, on peut réduire l’erreur en augmentant le nombre de trajectoires, mais aussi en
réduisant la variance de la variable aléatoire dont on veut calculer l’espérance.

La réduction de Variance par variables antithétiques :


Nous avons implémenté cette méthode de réduction de variance qui consiste dans notre cas précis à
t
1 t t
introduire Sti = St 0 *exp[ ∫ r ( s ) * ds − * ∫ σ 2 (t ) * dt − ∫ σ ( s ) * dWsQ ] .
*

t0
2 0 t t 0

ti
Il s’agit de la variable aléatoire obtenue à partir de Sti en remplaçant ∫ σ ( s)* dWsQ par son opposé.
t0

Remarquons que par symétrie du brownien, E ( Sti ) = E ( Sti ) et en plus cov( Sti , Sti ) ≤ 0 . Ensuite,
* *

on introduit la variable GT* = max(0; C + min1<=i <= N ( Sti* / St 0 ) − 1) .

Dans la mesure ou E Q (GT ) = E Q ( GT + GT ) , on peut donc appliquer l’algorithme de Monte-Carlo à la


*

2
variable aléatoire : GT + GT plutôt qu’à GT .
*

2
GT + GT*
L’intérêt de faire cela provient du fait que, cov(GT , G ) ≤ 0 donc Var (
*
T ) ≤ Var (GT ) . Cela
2
va donc améliorer la précision des résultats.

Génération des Trajectoires du Spot :


On détaille la génération des trajectoires du spot St , sachant que celles des trajectoires antithétiques
St* se fait de la même manière.

25
t t
1
St = F (t0 , t ) *exp[− * ∫ σ 2 (t ) * dt + ∫ σ ( s ) * dWsQ ] .
2 t0 t0

On dispose d’une courbe de taux zéro coupon, et d’une courbe de volatilité sur laquelle nous réalisons
des interpolations linéaires permettant de calculer les quantités :
F (t0 , t ) = St 0 *exp(r (t0 , t ) *(t − t0 )) ou r (t0 , t ) est le taux Zéro -Coupon interpolé pour la date t à
partir de la courbe de taux de la date t0 .
t

∫σ (t ) * dt = t *σ (t0 , t ) 2 ou σ (t0 , t ) est la volatilité interpolée linéairement pour la date t .


2
Ensuite
t0
D’autre part, vu que la volatilité est déterministe, on sait que
t t t
suit la loi N (0, σ ( s ) * ds ) . On peut donc simuler le processus Yt = σ ( s ) * dWsQ

∫ σ (s) * dW ∫
Q 2
s
0 0 t0

aux différentes dates ti par la récurrence suivante :


Yt 0 = 0 
 ti +1

  ou Z i suit une loi normale centrée N(0,1).
Yti +1 − Yti = ∫ti σ 2
(t ) * dt * Z i 
 
Il reste enfin à préciser le choix de générateur de nombre aléatoire de la loi N(0,1).

Génération de Nombres aléatoires


L’étape de génération des nombres aléatoire est importante, car elle influe fortement sur les
performances du pricer. La plupart des systèmes possèdent déjà des générateurs de nombre aléatoires
dans la loi uniforme U(0,1), certains étant plus performants que d’autres.
Nous nous sommes fiés à la littérature existant dans ce domaine, et avons choisi d’utiliser le
générateur de Mersenne Twister qui possède de très bonnes propriétés statistiques.
Il a été développé en 1997 par Makoto Natsumoto et Takuji Nishimura.
Il est entièrement disponible sur le site Web des auteurs et nous utilisons dans notre code, une version
Java de cet algorithme.
Pour vérifier les propriétés statistiques des nombres aléatoires générés par cet algorithme, nous avons
utilisé, le test de Kolmogorov . Il consiste à remarquer que: si U est une variable aléatoire uniforme
on aura ∀t ∈ [0.1] , E (1U ≤t ) = P(U ≤ t ) = t . Donc sous l’hypothèse H 0 : U1...U N sont des
réalisations d’une loi uniforme, on aura :
1 k =N
* ∑ 1U k ≤t 
ps +∞
→ E (1U ≤t ) = t .
N k =1
Cela revient en fait à comparer la varie fonction de répartition à la fonction de répartition empirique.
L’annexe [A1] donne les résultats du test de Kolmogorov Smirnow sur le générateur de Mersenne et
montre qu’il a de très bonnes propriétés statistiques en comparaison avec d’autres générateurs
prédéfinis dans les systèmes.

Après avoir simulé des nombres aléatoires dans la loi uniforme U(0,1), nous en déduisons une
simulation de nombres dans la loi normale N(0,1) par la méthode d’inversion de la fonction de
répartition. On désigne par F, la fonction de répartition de la loi normale centrée N(0,1).
−1
Si X suit une loi U(0,1) , alors F ( X ) suit la loi normale centrée réduite.
En effet ∀M , P[ F −1 ( X ) ≤ M ] = P[ X ≤ F (M )] = F (M ) .
Il n’y a pas de formule analytique pour inverser la fonction de répartition de la loi normale, mais il
existe dans la littérature, de nombreux algorithmes d’approximation comme celui de Moro. [4]

26
En supposant connu N(x), on retrouve la valeur de x de la manière suivante.
On pose y=N(x)-0.5.
3

∑a * y i
2i

Si y ≤ 0.42 , l’approximation est de la forme : x = y *


i =0
4 .
∑b
j =0
j *y 2j

Pour y ≥ 0.42 , l’approximation est faite à l’aide des polynômes de Tchebychev.


8
c0  1 
x = ε * ∑ ci * Ti (t ) − ε * ou ε est le signe de y et t = k1 *  2 ln(− ln( − y )) − k2 
i =0 2  2 

1-2 : Prise en Compte des Dividendes et des Clauses de Type Cap-Floor


Dans l’objectif de pouvoir mener une palette de tests assez larges, nous avons rajouté a notre pricer-
Monte-Carlo les aspects suivants.
*Prise en Compte des dividendes
On a la même expression de la prime et du payoff, mais on veut pouvoir inclure le fait qu’un
dividende de valeur Div tombe à une date notée t div .
Pour pouvoir tenir compte de ce cas, on commence par repérer les dates ti ≥ tdiv et c’est lors de la
simulation du spot pour ces dates que des ajustements doivent se faire.
En effet, rappelons que à chaque date ti , St est simulé à l’aide de la diffusion suivante :
i

ti ti
Sti = F (t0 , ti ) * ∫ σ 2 (t ) * dt − ∫ σ ( s ) * dWsQ ] ou F (t0 , ti ) désigne le forward vu de t0 à la date ti .
t0 t0

Pour toutes les dates ti ≥ tdiv , on calculera le forward par la formule :


ti ti

F (t0 , ti ) = St0 *exp( ∫ r (t ) * dt ) − Div *exp( ∫ r (t ) * dt ) .


t0 tdiv

Ainsi, on rajoute de la valeur habituelle du forward, la valeur du dividende capitalisé jusqu’à ti .


Il n’y a que le calcul du forward qui change lorsqu’on introduit des dividendes.
Ainsi, dans la construction de nos trajectoires de spot, on va d’abord regarder les données de marché
concernant les dates et valeurs de dividendes pour ensuite ajuster la valeur du forward selon le
principe rappelé ci-dessous.

*Clause de Type Cap et Floor


Il est possible de mettre un cap et un floor global sur le pay-off. Il s’agit de valeurs max et min pour le
payoff qu’on va recevoir à maturité.
Ainsi, dans cette optique un peu plus générale, le payoff d’une option Napoléon est vu sous la forme.
GT = min(Cap; max( Floor , C + min1<=i <= N ( S ti / S t 0 ) − 1)
Lorsque l’on sait simuler des trajectoires de spot, on peut pour chaque trajectoire, obtenir une
réalisation de GT . Donc, par rapport à la description de notre pricer effectuée dans la section
précédente, il faut ajouter que pour calculer le payoff correspondant à chaque trajectoire donnée, on
commence d’abord par floorer puis caper le minimum des performances plus le coupon.

*Pricing à une date ultérieure t


Lorsque le contrat a été établi à la date initiale t=0 et qu’on se trouve à la date t.
Le pricing se fait en séparant les quantités déterministes (valeurs passées de spot fixées), et les
quantités aléatoires (valeurs de spot futures simulées à partir de la valeur de spot courante St et de
l’équation de diffusion).

27
1-3 : Présentation des Résultats Numériques

Convergence de notre Pricer et Analyse de l’erreur.

On peut résumer par les deux courbes ci-dessous, les résultats du pricer. Sur un test-case bien précis,
on observe le comportement de la prime lorsqu’on fait varier le nombre de trajectoires.
On constate que les résultats de prix que nous avons convergent vers 0.0045 (qui est exactement la
valeur donnée par l’application Murex sur ce test-case).
Mais, on remarque surtout que la prime obtenue avec la méthode antithétique converge clairement plus
vite. Il ya moins de variance que dans le cas de la prime calculée par la méthode classique.
On constate également sur la courbe de droite, le fait que l’erreur à 95% obtenue avec N trajectoires
antithétiques est plus faible que celle obtenue avec 2.N trajectoires classiques.

L’implémentation de la réduction de variance par variables antithétiques permet donc d’améliorer les
performances de notre pricer.
Notons qu’avec 200.000 trajectoires, un ordre de grandeur acceptable de l’erreur ( 3.10e-5) .
Par la suite, on fera les comparaisons avec Murex en s’arrêtant à 4 décimales après la virgule.

Comparaison avec Murex :


Les choix d’implémentation Murex sur le pricer Monte-Carlo sont différents du notre .
L’algorithme implémenté dans Murex est de type Quasi-Monte Carlo.
Mais l’objectif est d’arriver à réconcilier les résultats sur un ensemble de test-cases.
On commence par configurer une action ayant une structure par terme de volatilité, et une option
Napoléon sur cette action de maturité 11 mois , de montant nominal N=1EUR avec un fixing des
valeurs de spot mensuel. Comme autre données de marché, on dispose aussi d’une courbe de taux, sur
laquelle on fera des interpolations linéaires tout comme pour la volatilité.
Le spot courant pour cette action a une valeur de 34 et on peut considérer un scénario consistant à
calculer la prime pour une rangée de valeur de spot allant de 20 à 50.
Les résultats correspondant à différents cas de figure sont présentés ci-après.

28
Cas N1 : Pricing Date initiale sans dividendes avec Cap et Floor

Lorsqu’on est à la date initiale ou aucun fixing n’est encore réalisé, on simule chaque valeur de spot en
prenant le spot courant. (L’expression utilisée dans le cas sans dividendes est :
ti
1 ti ti
Sti = St 0 * exp[ ∫ r ( s ) * ds − * ∫ σ 2 (t ) * dt − ∫ σ ( s ) * dWsQ ]
t0
2 t0 t0

Sti
Ainsi, dans la simulation du ratio de performance
St0 , il n’ya plus aucune dépendance en la valeur du
spot initial St . On retrouve donc mathématiquement le fait que les primes à la date initiale soient
o

insensibles au spot. Cela ne sera plus vérifié lorsque l’on fera le pricing à une date ultérieure après
fixing de la première valeur du spot.
D’autre part les résultats du code test répliquent bien ceux de Murex avec une erreur relative de 0.4%.

Cas N2 : Pricing après signature du contrat avec prise en compte de dividendes.


Ensuite, on peut simuler la situation ou l’option Napoléon est échangée un mois avant, et ou la
première valeur de spot est donc déjà fixée (Dans cet exemple St = 30 ).
o

On peut aussi introduire le cas ou l’action verse un dividende à tdiv = to + 57 jours (La date est
exprimée en fonction de la date initiale de signature to = 0 ) et pour une valeur de 1.5 EUR.
Comme, on peut le voir, les résultats sont assez concluants.
Enfin, on peut rajouter au même case une clause de type Cap et Floor.
Le rajout du cap et floor ramène la prime minimale à la valeur du floor discounté.
On note également que la comparaison des deux code-test donne des résultats très proches comme le
montre les courbes suivantes.

29
Les résultats des tests de comparaisons sont globalement assez satisfaisants en ce qui concerne les
primes. Egalement, les sensibilités qui sont calculées à partir des primes par la méthode des
différences finies sont correctement répliquées.
Nous présentons maintenant la suite de l’étude qui consiste considérer comme sous-jacent, non plus
une action simple, mais un Basket (Panier d’actions).

2-L’Option Napoléon sur Basket

2-1 : Méthode de simulation dans le cas multidimensionnel


On considère un Basket constitué de N actions dont les processus de prix sont notés St1....StN .
i=N
Le prix théorique du Basket est Pth = ∑w *S
i =1
i t
i
ou les wi sont les poids.

Comme précédemment, on se donne sur la période [0, T] une suite de dates de fixings :
to = 0......tM = T . Chaque action (k) peut être associée à une performance minimale Pk calculée de la
Stkj
manière suivante : Pk = max[0, min1≤ j ≤ M ( − 1)] . Le Pay-Off Napoléon sur ce basket est alors donné
Stk0
par la relation suivante :
1 k =N 1 k=N Stkj
G = max[C , * ∑ wk * Pk ] = max[C , * ∑ wk * max(0, min1≤ j ≤ M ( k − 1))] ou C est un
N k =1 N k =1 S t0
coupon fixe pré-défini à l’avance. Ainsi, le flux reçu est lié à la moyenne des performances minimales
de tous les composants du basket.
On se place dans le cadre du modèle de Black Scholes multidimensionnel, et on suppose que chaque
actif a une structure par terme de volatilité. On notera σ i (t ) , la volatilité instantanée de l’actif i.
Sous la mesure de probabilité risque neutre, et en supposant qu’il n’y a pas de dividendes versés par
les sous-jacents, on écrira la dynamique de chacun de nos actifs (i) sous la forme :

dSti
= r (t )* Sti * dt + σ i (t )* Sti * dWt i .
Sti

30
uur uur
Wt = (Wt1.......Wt N ) est un mouvement brownien multidimensionnel. A chaque date Wt est une
vecteur Gaussien de moyenne nulle et de matrice de variance covariance Σ . On posera Σij = ρij * t
en notant ρij , le coefficient de corrélation entre Wt i et Wt j .
Ce coefficient permet de modéliser la corrélation entre les composants (i) et (j) du basket.
En intégrant les équations écrites précédemment, il vient pour les différents actifs
t t
1
Pour i=1, à i=N : Sti = F i (t0 , t ) *exp[ − * σ i2 ( s ) * ds + σ i ( s ) * dWsi ] ou F i (t0 , t ) désigne le
∫ ∫
2 t0 t0

forward de l’actif (i), vu de t0 à la date t.


Dans ce cas ci, pour pouvoir appliquer la méthode de Monte-Carlo, on va simuler des trajectoires du
uur
processus vectoriel St = ( St1.......StN ) .
A chaque tirage du processus vectoriel est associé une réalisation de la variable aléatoire
1 k =N Stkj
G = max[C , * ∑ wk * max(0, min1≤ j ≤ M ( k − 1))] dont on veut calculer l’espérance.
N k =1 S t0
D’un point de vue simulation, ce qu’on doit faire consiste alors à :
uur
(i)Simuler le brownien vectoriel Wt = (Wt1.......Wt N ) .
uur
(ii) En déduire la simulation du processus St = ( St1.......StN ) .

Méthode par factorisation de Cholevski :


Pour se ramener à des mouvements browniens indépendants, on essaie de trouver une matrice A
uur
inversible telle que : Wt = (Wt1.......Wt N ) = A *( Z t1....Z tN ) avec ( Z t1....Z tN ) qui est un brownien
vectoriel aux composantes indépendantes.
Il suffit pour cela que la matrice de variance-covariance de ( Z t1....Z tN ) soit égale à l’identité.
Cette dernière condition équivaut à A * At = ∑ , ou ∑ désigne la matrice de variance-covariance de
uur
Wt = (Wt1.......Wt N ) . La méthode de Factorisation de Cholevski permet de trouver une matrice
triangulaire inférieure qui vérifie A * At = ∑ .
Ainsi, on commence par simuler ( Z t1....Z tN ) , en simulant N mouvements browniens de facon
indépendante et on en utilise la matrice A provenant de la factorisation de Choleski pour obtenir une
uur uur
simulation de Wt = (Wt1.......Wt N ) et St = ( St1.......StN ) .

2-3 : Implémentation pratique dans le cas N=2


uur
Nous n’avons implémenté dans notre code-test que le cas particulier N=2. On a alors Wt = (Wt ..Wt )
1 2

uur t.......ρ * t 
On suppose que la matrice de variance covariance de Wt s’écrit :  
 ρ * t.......t 
 t .........................0 
La matrice A obtenue par factorisation s’écrit :  
 ρ * t ....... (1 − ρ 2 ) * t ..
On peut maintenant simuler un processus brownien corrélé de dimension deux par la relation
uur
Wt = (Wt1..Wt 2 ) = A *( Z t1..Z t2 ) ou Z t1 et Z t2 sont deux mouvements browniens indépendants.

31
uur
La simulation de processus corrélés St = ( St1..St2 ) , s’en suit à l’aide de la relation ci-dessous valable
t t
pour toute action Sti = F i (t0 , t ) *exp[− 1 * σ i2 ( s ) * ds + σ i ( s ) * dWsi ] , F i (t0 , t ) désignant le forward de
2∫ t0

t0
uur
l’actif (i), vu de t0 à la date t. Chaque trajectoire vectorielle de St = ( St1..St2 ) permet d’effectuer un
tirage de la variable aléatoire représentant le pay-off du Napoléon sur le basket.
On en déduit ainsi, de la même façon que dans le cas mono- dimensionnel, l’estimateur du prix et de
l’erreur Monte-Carlo pour notre option.

Test-Case
En plus de l’action que l’on a déjà considérée dans les tests du Napoléon sur Equity, on, configure
une seconde action dont le spot vaut 30 et ayant une structure volatilité constante=11%.
On définit aussi un basket sur ces deux actions de poids w1 = w2 = 1 .
L’option Napoléon considérée sur ce basket est de maturité 11 mois avec des fixings mensuels.

Exemple de trajectoires simulées :


Les figures ci-dessous donnent des exemples de trajectoires simulées en fonction de la corrélation.
Egalement, le tableau joint indique la prime que nous obtenons en fonction de la corrélation.

32
Comparaisons de Primes :
Le tableau ci-dessous donne la prime obtenue lorsque on fait varier la corrélation entre les deux actifs.
La comparaison avec l’application n’est pas terminée dans la mesure ou nous avons constaté sur
quelques tests manuels que la prime Murex ne variait pas lorsqu’on faisait varier la corrélation.
Un travail d’analyse des fichiers de pricing interne Murex est donc à faire pour terminer cet aspect.
On note toutefois que la prime affichée par Murex (0.21%) , est proche de la prime que l’on obtient
avec une corrélation nulle entre nos deux actifs.

Rho Prime Code Test


-1 0,002073539
-0,75 0,002082029
-0,5 0,002059532
-0,25 0,00206703
0 0,002095515
0,5 0,002071408
1 0,00209464

CONCLUSION GENERALE
En conclusion , nous avons pu mener les tests de validation qui sont une phase importante de
l’introduction des nouveaux pay-off.
Ce travail a été enrichissant et très formateur , dans la mesure ou il nous a permis d’entreprendre
l’étude de divers modèles de pricing ainsi que les méthodes numériques associées.
Nous avons notamment pu voir une approche analytique sur le Variance swap et le Corridor Variance
swap, avant d’aborder les méthodes de simulation de Monte-Carlo lors des tests relatifs à l’Option
Napoléon. D’un autre point de vue, nous avons aussi été confronté au problème de la mise en place
d’algorithmes numériques et de leur implémentation informatique en Java, dans le but de pouvoir
comparer nos résultats à ceux de Murex.
Même si certains tests de validation doivent être complétés , les résultats que nous avons obtenus ont
permis de bien répliquer ceux de l’application sur beaucoup d’aspects
Enfin, un autre point positif de cette expérience chez Murex, a été le contact avec le client notamment
sur les questions d’assistance technique.

33
Bibliographie

1] Demeterfi, Derman, Kamal, Kou (1999) : More than You ever wanted to Know About
Volatility Swaps- Goldman Sachs Quantitative Strategies Research Notes.

[2] Breeden Litzenberger (1978). Prices of State Contingent Claims Implicit in Option Prices.
Journal of Buisness, 51, 621, 651.

[3] ElKaraoui (2003) : Couverture des risques dans les marchés financiers.

[4] Moro (1995) The Full Monte Risk Vol8 N2 Page 57-58.

[5] Bruno Bouchard (2006) Cours ENSAE Introduction à l’Evaluation d’Actifs financiers.

[6] Jonh Hull : Options, futures et autres actifs Dérivés.

[7] Numerical Recipes in C.

34
Annexes

TEST STATISTIQUE DE KOLMOGOROV SMIRNOV

On considère une séquences de N entiers en sortie d’un générateurs de nombre aléatoire dans une loi
uniforme U(0,1).

Sous l’hypothèse H0 : U1…..UN sont iid dans une loi uniforme.

1 k =N
* ∑ 1U k ≤t 
ps +∞
→ E (1U ≤t ) = t .
N k =1
On compare pour une même valeur de N, la fonction de répartition obtenue par l’algorithme de
Mersenne Twister à celle obtenue par un autre générateur par défaut comme celui d’Excel.
Comme, on peut le voir, le générateur de Mersenne Twister nous donne de meilleurs résultats.

35
36

S-ar putea să vă placă și