# Introduction au calcul stochastique et détection de sauts dans les cours d'actifs financiers

Swann Cordier

► To cite this version:

Swann Cordier. Introduction au calcul stochastique et détection de sauts dans les cours d'actifs financiers. Probabilités [math.PR]. 2025. hal-05419167

HAL Id: hal-05419167

https://inria.hal.science/hal-05419167v1

Submitted on 16 Dec 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
<figure><img src="image_2.png" /></figure>

MINESNANCY
ARTEM

i:
:
.

Institut Élie Cartan
de Lorraine

ÉCOLE DES MINES DE NANCY

DÉPARTEMENT INGÉNIERIE MATHÉMATIQUES

Introduction au calcul
stochastique et détection de sauts
dans les cours d'actifs financiers

Rapport de projet recherche

Swann Cordier

Encadrants : Madalina Deaconu et Antoine Lejay

2024-2025
# Table des matières

## 1 Processus stochastique, martingales et mouvements browniens 4

1.1 Processus stochastique et filtration 4

1.2 Martingales 5

1.3 Mouvement brownien 7

## 2 Calcul stochastique 9

2.1 Intégrale stochastique 9

2.2 Formule d'Itô 10

2.3 Modèle de Black & Scholes 12

2.3.1 Description du modèle 12

2.3.2 Résolution de l'EDS 13

2.3.3 Application 13

## 3 Processus à sauts 16

3.1 Processus de Poisson 16

3.1.1 Modèles avec sauts 17

3.1.2 Simulations 18

3.2 Processus de Hawkes 21

3.2.1 Définition 21

3.2.2 Simulations 22

3.3 Modèle présenté par I. Raffaelli, S. Scotti et G. Toscano 23

3.3.1 Processus de Poisson 25

3.3.2 Processus de Hawkes 26

3.3.3 Processus auto-excitation 28

3.3.4 Processus hybride auto-excitation 30

3.3.5 Conclusion 32

## 4 Détections de sauts à l'aide du test de S. Lee et P. Mykland 34

4.1 Introduction 34

4.2 Modèle 34

4.3 Volatilité instantanée et intégrée 35

4.4 Variation bipuissance 35

4.5 Comparaison avec l'estimateur de la variation quadratique 40

4.6 Statistique de test 42

4.7 Simulations 42

4.7.1 Modèle de Merton 42

4.7.2 Recherche sur grille (Gridsearch) 44
<table><tr><td>4.7.3</td><td>Modèle de Kou</td><td>45</td></tr><tr><td>4.8</td><td>Analyse des résultats</td><td>47</td></tr></table>
# Introduction

Ce rapport présente le travail que j’ai réalisé en deuxième année d’école d’ingénieur aux Mines de Nancy, dans le cadre de mon projet de recherche. Tout au long de l’année, j’ai eu l’opportunité de travailler un jour et demi par semaine à l’Insti-tut Élie Cartan de Lorraine (IECL), sous la supervision des chercheurs Madalina Deaconu et Antoine Lejay.

Je tiens à leur exprimer ma profonde gratitude pour leur encadrement attentif et bienveillant tout au long de ce projet. Leurs conseils, leur rigueur scientifique et leur disponibilité ont été essentiels à la bonne conduite de mes travaux et m’ont permis d’approfondir ma compréhension du calcul stochastique et de la modélisation financière. Je les remercie sincèrement pour le temps qu’ils m’ont consacré et pour la qualité des échanges que nous avons partagés.

La première étape de ce projet a consisté en la lecture d'un article scientifique récent de I. Raffaelli, S. Scotti et G. Toscano [10]. Celui-ci présente un modèle de prix d'actif à volatilité stochastique et avec des sauts suivant un modèle de Hawkes. Pour comprendre les différents mécanismes mis en jeux, j'ai dû me familiariser avec plusieurs notions de calcul stochastique. À cette fin, je me suis largement appuyé sur le cours de D. Villemonais [11] et celui de M. Jeanblanc [6]. J'ai aussi beaucoup utilisé le livre de D. Lamberton et B. Lapeyre [7], ainsi que celui de B. Oksendal [9].

Les chapitres 1, 2 et 3 présentent donc les concepts fondamentaux que j’ai dû assimiler afin de pouvoir aborder cette lecture scientifique de manière rigoureuse.

Une fois le modèle présenté dans l'article compris, j'ai décidé de tester les résultats cités en simulant des cours d'actifs. J'ai alors été confronté à une problématique que j'ai décidé d'appronder : la détection de sauts. En effet, pour modéliser un actif à l'aide d'un processus de Hawkes, les auteurs I. Raffaelli, S. Scotti et G. Toscano ont eu besoin d'identifier les instants d'occurrence des sauts dans les prix. Pour ce faire, ils se sont appuyés sur le test de détection proposé dans l'article de S. Lee et B. Mykland [8].

Or, distinguer une forte variation de prix due à une augmentation de la volatilité d'un véritable saut (c'est-à-dire une discontinuité du processus) constitue un défi important. De plus, ces sauts sont souvent liés à des événements du monde réel, qu'ils soient économiques (publication de résultats financiers, décisions de banques centrales), géopolitiques (élections, conflits) ou naturels (pandémies, catastrophes). J'ai trouvé ce sujet particulièrement stimulant, car il met en lumière les interactions entre la société et les marchés financiers. Ce thème est développé dans le chapitre 4.
# Chapitre 1

## Processus stochastique, martingales et mouvements browniens

Dans ce chapitre, nous introduisons les concepts fondamentaux des processus stochastiques, des martingales et du mouvement brownien. Ces notions sont essentielles en théorie des probabilités et ont de nombreuses applications, notamment en finance où elles permettent de traduire l'aléa des marchés financiers. Nous nous appuierons principalement sur le polycopié de cours de probabilité de Denis Villemonais [11], sur le cours de M2 finance de C. Dombry [5] et sur le chapitre 3 du livre de D. Lamberton et B. Lapeyre [7].

Dans toute la suite, on se place dans un espace probabilisé $(\Omega, \mathcal{F}, \mathbb{P})$.

### 1.1 Processus stochastique et filtration

Nous étudions dans cette partie les processus stochastiques et leurs propriétés. Ces objets mathématiques modélisent l'évolution au cours du temps d'une quantité aléatoire comme : la température, le cours d'un actif sur un marché financier, les phénomènes de rupture en géophysique, etc.

**Définition 1 (Processus stochastique).** Soit $I$ un intervalle de $\mathbb{R}_+$ ou $\mathbb{N}$. Un processus stochastique est une famille de variables aléatoires $(X_t)_{t \in I}$ indexée par le temps.

Dans toute la suite, on indicera par $n$ lorsqu'on se placera en temps discret et par $t$ en temps continu (selon que $I = \mathbb{N}$ ou $I = \mathbb{R}_+$, respectivement).

Par exemple, une marche aléatoire simple sur $\mathbb{Z}$ est un exemple de processus stochastique en temps discret. Si à chaque étape, un marcheur se déplace d'un pas vers la gauche ou la droite avec une probabilité donnée, alors en notant $X_n$ la position du marcheur à l'instant $n$, $(X_n)_{n \in \mathbb{N}}$ est un processus stochastique.

**Définition 2.** Une filtration est une suite croissante de tribus $(\mathcal{F}_t)_{t \ge 0}$ au sens de l'inclusion (c'est-à-dire telle que $\forall t_1 < t_2 \in \mathbb{R}_+, \mathcal{F}_{t_1} \subset \mathcal{F}_{t_2}$), vérifiant $\bigcup_{t=0}^{\infty} \mathcal{F}_t = \mathcal{F}$.
Soit $(X_t)$ un processus stochastique. On dit que $(\mathcal{F}_t)_{t \ge 0}$ est la filtration naturelle de $(X_t)$ lorsque $\forall t \in \mathbb{R}_+$, $\mathcal{F}_t$ est la tribu engendrée par la famille $(X_s)_{0 \le s \le t}$, i.e. $\mathcal{F}_t = \sigma(X_s, 0 \le s \le t)$.

La filtration naturelle représente l'information accumulée au fil du temps jusqu'à l'instant $t$ du processus $(X_t)$, sans informer sur son futur. Elle permet de modéliser l'évolution de la connaissance sur le processus au cours du temps.

**Définition 3.** On dit que le processus $(X_t)_{t \ge 0}$ est **adapté** à la filtration $(\mathcal{F}_t)_{t \ge 0}$ lorsque $\forall t \in \mathbb{R}_+$, $X_t$ est $\mathcal{F}_t$-mesurable.

Par exemple, si $(X_t)$ représente le prix d'une action à l'instant $t$, alors $(X_t)$ est adapté à sa filtration naturelle, car le prix à l'instant $t$ ne dépend que de l'information disponible jusqu'à cet instant.

## 1.2 Martingales

Désormais, nous allons développer la notion de martingale, fréquemment utilisé en calcul stochastique en raison de ses nombreuses propriétés permettant souvent de simplifier les modèles.

**Définition 4.** Soit $\mathcal{F} = (\mathcal{F}_t)_{t \ge 0}$ une filtration. On dit que $(M_t)_{t \ge 0}$ est une martingale par rapport à $(\mathcal{F}_t)_{t \ge 0}$ ou une $\mathcal{F}$-martingale, lorsque :

(i) $\forall t \in \mathbb{R}_+$, $M_t$ est intégrable

(ii) $(M_t)_{t \ge 0}$ est adapté à $(\mathcal{F}_t)_{t \ge 0}$

(iii) $\forall t_1 \le t_2 \in \mathbb{R}_+$, $\mathbb{E}[M_{t_2}|\mathcal{F}_{t_1}] = M_{t_1}$ p.s.

Une martingale peut être vue comme un jeu équitable. Si $(M_t)_{t \ge 0}$ représente la fortune d'un joueur à l'instant $t$, alors pour $t_1 \ge t_2$, la condition $\mathbb{E}[M_{t_2}|\mathcal{F}_{t_1}] = M_{t_1}$ signifie que, en moyenne, le joueur ne gagne ni ne perd d'argent. Cette condition impose par ailleurs que $\forall t \ge 0$, $\mathbb{E}(M_t) = \mathbb{E}(M_0)$.

**Remarque 1.** Lorsque le point (iii) de la définition est remplaçé par : $\forall t_1 \le t_2 \in \mathbb{R}_+$, $\mathbb{E}[M_{t_2}|\mathcal{F}_{t_1}] \ge M_{t_1}$ p.s. (respectivement $\mathbb{E}[M_{t_2}|\mathcal{F}_{t_1}] \le M_{t_1}$ p.s.), on parle de sous-martingale (respectivement de sur-martingale).

Si $(M_t)_{t \ge 0}$ représente la fortune d'un joueur dans un jeu de hasard, une sous-martingale correspond à un jeu favorable au joueur, elle sous estime le gain futur (dans le sens où $M_{t_1}$ est une sous-estimation de $\mathbb{E}[M_{t_2}|\mathcal{F}_{t_1}$], tandis qu'une sur-martingale à l'inverse correspond à un jeu défavorable.

Nous présentons dans la suite un théorème central de décomposition de processus, qui permet de se ramener à une martingale à partir d'une sous-martingale (ou d'une sur-martingale).

**Théorème 1 (Décomposition de Doob).** Soit $\mathcal{F} = (\mathcal{F}_t)_{t \ge 0}$ une filtration et $(X_t)_{t \ge 0}$ une $\mathcal{F}$-sous-martingale. Il existe une unique décomposition de $(X_t)_{t \ge 0}$ sous la forme :

$$ \forall t \in \mathbb{R}_+, \quad X_t = X_0 + M_t + A_t \quad \text{p.s.} $$

avec :
1. $(M_t)$ une $\mathcal{F}$-martingale telle que $M_0 = 0$ p.s.

2. $(A_t)$ un processus croissant et prévisible tel que $A_0 = 0$ p.s. (i.e. $\forall t_1 < t_2 \in \mathbb{R}_+$, $A_{t_2}$ est $\mathcal{F}_{t_1}$-mesurable).

**Démonstration.** Nous allons démontrer ce théorème dans le cas discret, afin de donner une idée générale. Le cas continu est plus technique.

Commençons par démontrer l'existence : soit $(X_n)_{n \ge 0}$ une $\mathcal{F}$-sous-martingale. Pour tout $n \in \mathbb{N}$, on peut écrire :

$$X_n = X_0 + \sum_{k=1}^{n} [(X_k - X_{k-1}) - \mathbb{E}(X_k - X_{k-1} | \mathcal{F}_{k-1})] + \sum_{k=1}^{n} \mathbb{E}(X_k - X_{k-1} | \mathcal{F}_{k-1}).$$

En posant :

$$M_n = \sum_{k=1}^{n} [(X_k - X_{k-1}) - \mathbb{E}(X_k - X_{k-1} | \mathcal{F}_{k-1})], \\ A_n = \sum_{k=1}^{n} \mathbb{E}(X_k - X_{k-1} | \mathcal{F}_{k-1}),$$

on obtient $X_n = X_0 + M_n + A_n$ pour tout $n \in \mathbb{N}$.

Vérifions les propriétés des processus $(M_n)_{n \ge 0}$ et $(A_n)_{n \ge 0}$ :

1. $A_n$ est $\mathcal{F}_{n-1}$-mesurable car c'est une somme de variables aléatoires $\mathcal{F}_{n-1}$-mesurables.

2. $A_n - A_{n-1} = \mathbb{E}[X_n - X_{n-1} | \mathcal{F}_{n-1}] \ge 0$, car $(X_n)$ est une $\mathcal{F}$-sous-martingale.

3. $M_n$ est $\mathcal{F}_n$-mesurable, car il est construit à partir des variables $X_0, \dots, X_n$.

4. $M_n$ est intégrable. En effet, $|M_n| \le |X_n - X_0|$, et $|X_n - X_0|$ est intégrable puisque $(X_n)_{n \ge 0}$ est une sous-martingale.

5. $\mathbb{E}(M_n | \mathcal{F}_{n-1}) = M_{n-1}$. En effet :

$$\mathbb{E}(M_n | \mathcal{F}_{n-1}) = \mathbb{E} \left( \sum_{k=1}^{n} [(X_k - X_{k-1}) - \mathbb{E}(X_k - X_{k-1} | \mathcal{F}_{k-1})] \mid \mathcal{F}_{n-1} \right) \\ = \sum_{k=1}^{n-1} [(X_k - X_{k-1}) - \mathbb{E}(X_k - X_{k-1} | \mathcal{F}_{k-1})] = M_{n-1},$$

car les $(X_k - X_{k-1})_{1 \le k \le n-1}$ et les $\mathbb{E}(\cdot | \mathcal{F}_{n-1})$ sont $\mathcal{F}_{n-1}$-mesurables.

6. On a bien $A_0 = 0$ et $M_0 = 0$.

Ceci prouve l'existence de la décomposition.

Montrons alors l'unicité : supposons que pour tout $n \in \mathbb{N}$, $X_n = X_0 + A_n + M_n = X_0 + A'_n + M'_n$, avec $((A_n)_{n \ge 0}, (M_n)_{n \ge 0})$ et $((A'_n)_{n \ge 0}, (M'_n)_{n \ge 0})$ vérifiant la décomposition de Doob. Alors $\forall n \in \mathbb{N}$ :

$$M_n - M'_n = A'_n - A_n.$$
Le processus $(A'_n - A_n)$ est donc une martingale. Or $(A'_n - A_n)$ est prévisible, donc $\forall n \in \mathbb{N}$ :

$$ \mathbb{E}(A'_{n+1} - A_{n+1} | \mathcal{F}_n) = A'_{n+1} - A_{n+1}. $$

Cela implique que $(A'_n - A_n)$ est constant, égal à son premier terme : 0. Ainsi, $A'_n = A_n$ et $M'_n = M_n$ pour tout $n \in \mathbb{N}$. L'unicité est donc prouvée. $\square$

La décomposition de Doob est un outil puissant en théorie des martingales. Elle permet de séparer la partie sans tendance (la martingale) de la partie ayant une dynamique directionnelle prévisible (le processus croissant). Cette décomposition est notamment utilisée en finance pour décomposer les processus de prix en une martingale et une tendance.

**Remarque 2.** On appelle **compensateur de la sous-martingale** $(X_t)_{t \ge 0}$ le processus $(A_t)$ obtenu dans sa décomposition de Doob.

**Remarque 3.** On utilise souvent cette décomposition lorsque $M = (M_t)_{t \ge 0}$ est une martingale de carré intégrable. Dans ce cas, $(M_t^2)_{t \ge 0}$ est une sous-martingale, et on appelle **crochet de M** (noté $\langle M \rangle$) le compensateur associé à la décomposition de $(M_t^2)_{t \ge 0}$.

## 1.3 Mouvement brownien

Nous abordons le processus clé du calcul stochastique en temps continu : le mouvement brownien. Il permet de traduire les fluctuations aléatoires infinitésimales entre chaque instant. Il tire son nom des observations de Robert Brown (1828), qui décrivit le mouvement très désordonné et irrégulier de fines particules de pollen en suspension dans l'eau, caractérisé par d'incessants changements de direction. Ce phénomène aléatoire a inspiré la modélisation mathématique du mouvement brownien.

**Définition 5.** On dit que le processus $(X_t)_{t \ge 0}$ est à **trajectoires continues** s'il existe un ensemble de probabilité nulle $N$, tel que $\forall \omega \in \Omega \setminus N$, $t \mapsto X_t(\omega)$ est continue.

**Définition 6.** On appelle **mouvement brownien** $B = (B_t)_{t \ge 0}$ un processus à trajectoires continues vérifiant :

(i) $\forall 0 \le t_1 \le t_2$, $B_{t_2} - B_{t_1} \sim \mathcal{N}(0, t_2 - t_1)$,

(ii) $\forall k \ge 2, 0 = t_0 < t_1 < \dots < t_k$, les accroissements $(B_{t_i} - B_{t_{i-1}})_{1 \le i \le k}$ sont indépendants.

Lorsque de plus $B_0 = 0$ p.s., on parle de **mouvement brownien standard**.

En finance, le mouvement brownien est utilisé pour modéliser l'évolution des prix des actifs financiers. Par exemple, le modèle de Black-Scholes (chapitre 2) repose sur l'hypothèse que le logarithme du rapport des prix $\ln(S_t/S_0)$ suit un mouvement brownien avec dérive.
Nous représentons Figure 1.1 une trajectoire d'un mouvement brownien sur [0, 1]. On remarque le caractère chaotique de la trajectoire qui change sans cesse de direction. En effet, le mouvement brownien est un processus continu, mais il n'est diff'erentiable en aucun point.

<figure><img src="image_3.png" /><figcaption>FIGURE 1.1 – Trajectoire d'un mouvement brownien sur [0, 1].</figcaption></figure>

**Remarque 4.** D'après le théorème de Donsker, le mouvement brownien peut aussi être vu comme la limite en loi d'une marche aléatoire.

En conclusion, ce chapitre a introduit les processus à la base du calcul stochastique : les martingales et le mouvement brownien. Ces notions seront des outils essentiels pour construire la théorie probabiliste des chapitres suivants.
# Chapitre 2

## Calcul stochastique

Dans ce chapitre, nous abordons les concepts clés des intégrales stochastiques, du calcul d'Itô et leurs applications. Nous illustrerons ensuite ces concepts sur le modèle classique de Black et Scholes. Pour cela, nous nous sommes appuyés sur les chapitres 3 et 4 du livre de D. Lamberton et B. Lapeyre [7], les chapitres 3 et 4 du cours de M. Jeanblanc [6] et sur les premiers chapitres du livre de B. Oksendal [9].

### 2.1 Intégrale stochastique

Dans toute cette section, on pose $\mathcal{F} = (\mathcal{F}_t)_{t\ge0}$ une filtration, $(\Omega, \mathcal{F}, \mathbb{P})$ l'espace probabilisé associé et $(B_t)_{t\ge0}$ un mouvement brownien adapté à $\mathcal{F}$.

On cherche alors à définir $\int_0^t X_s dB_s$. A priori, cette intégrale n'est pas définie car le brownien n'est pas différentiable. L'idée est donc de donner un sens à cette expression pour une classe de processus stochastiques qui nous le permette.

**Définition 7.** On dit que $(X_t)_{t\ge0}$ est un **processus intégrable** si :

(i) $(X_t)_{t\ge0}$ est adapté à $(\mathcal{F}_t)_{t\ge0}$

(ii) $\forall \omega \in \Omega, t \mapsto X_t(\omega)$ est càdlàg (continu à droite, limite à gauche)

(iii) $\forall t \ge 0, \mathbb{E} \left[ \int_0^t X_s^2 ds \right] < +\infty$.

On prouve ensuite que cette classe de processus convient en passant par les processus étagés.

**Définition 8.** $(X_t)_{t\ge0}$ est un **processus étagé** s'il existe $p \in \mathbb{N}$, $0 = t_0 < t_1 < \dots < t_p \in \mathbb{R}_+$, $(Y_i)_{0\le i\le p} \in L^2(\Omega, \mathcal{F}_{t_i}, \mathbb{P})$ tel que $\forall t \in \mathbb{R}_+, X_t = \sum_{i=0}^p Y_i \mathbf{1}_{[t_i, t_{i+1}]}(t)$ p.s.

Un processus étagé peut être vu comme une approximation simple d'un processus plus complexe. Par exemple, si $(X_t)_{t\ge0}$ représente le prix d'une action à des instants discrets, alors $(X_t)_{t\ge0}$ est un processus étagé.

L'intégrale stochastique d'un processus étagé peut alors être définie comme suit :
Soit $X_t = \sum_{i=0}^{p} Y_i \mathbf{1}_{[t_i, t_{i+1}]}(t)$ un processus étagé, on définit :

$$I_t(X) = \int_0^t X_s dB_s = \sum_{i=0}^{p} Y_i (B_{t_{i+1} \wedge t} - B_{t_i \wedge t}).$$

Pour un processus étagé, l'intégrale stochastique est simplement définie comme une somme pondérée des accroissements du mouvement brownien sur des intervalles de temps.

On utilise ensuite le théorème suivant pour conclure.

**Théorème 2.** Soit $(X_t)_{t \ge 0}$ un processus intégrable, il existe $(X^n)_{n \in \mathbb{N}} = (\sum_{i=0}^{p_n} Y_i^n \mathbf{1}_{[t_i, t_{i+1}]} )_{n \in \mathbb{N}}$ une suite de processus étagés tels que :

$$\mathbb{E} \left[ \int_0^t (X_s - X_s^n)^2 ds \right] \xrightarrow{n \to \infty} 0.$$

De plus, il existe $I_t(X)$ de carré intégrable telle que :

$$\mathbb{E} \left[ |I_t(X) - I_t(X^n)|^2 \right] \xrightarrow{n \to \infty} 0. \qquad (2.1)$$

*Démonstration.* Nous renvoyons le lecteur au cours de Monique Jeanblanc [6]. □

Ce théorème montre que tout processus intégrable peut être approximé par une suite de processus étagés, ce qui permet de définir l'intégrale stochastique dans le cas général :

Soit $(X_t)_{t \ge 0}$ un processus intégrable, on définit **l'intégrale stochastique de** $(X_t)_{t \ge 0}$ comme :

$$\forall t \ge 0, \quad \int_0^t X_s dB_s = I_t(X),$$

avec $I_t(X)$ tel que défini en (2.1).

## 2.2 Formule d'Itô

Maintenant que nous avons pu donner un sens à $\int_0^t X_s dB_s$ pour une certaine classe de processus, nous pouvons exploiter cette écriture grâce à de nombreux résultats, dont celui fondamental de la formule d'Itô.

**Définition 9.** Soit $(\mathcal{F}_t)_{t \ge 0}$ une filtration et $(B_t)_{t \ge 0}$ un $\mathcal{F}_t$-mouvement brownien. On appelle **processus d'Itô**, un processus $(X_t)_{t \ge 0}$ à valeurs dans $\mathbb{R}$, tel que :

$$\forall t \ge 0, \quad X_t = X_0 + \int_0^t K_s ds + \int_0^t H_s dB_s \quad \text{p.s.} \qquad (2.2)$$

avec :
(i) $X_0 \mathcal{F}_0$-mesurable

(ii) $\forall t \ge 0$, $K_t$ et $H_t$ sont $\mathcal{F}_t$-mesurables

(iii) $\int_0^{+\infty} |K_s| ds < +\infty \text{ p.s.}$

(iv) $\int_0^{+\infty} H_s^2 ds < +\infty \text{ p.s.}$

**Remarque 5.** $(K_t)_{t \ge 0}$ est appelé **dérive** tandis que $(H_t)_{t \ge 0}$ est appelé **diffusion** du processus d'Itô. L'idée est que $(K_t)_{t \ge 0}$ contrôle la tendance "moyenne" du processus alors que $(H_t)_{t \ge 0}$ contrôle l'amplitude de ses variations.

Dans le modèle de Black-Scholes que l'on abordera ensuite, la dérive représente le taux de rendement moyen d'une action, tandis que la diffusion représente la volatilité du prix de l'action.

**Propriété 1.** Soit $(X_t)_{t \ge 0}$ un processus d'Itô, alors la décomposition donnée par (2.2) est unique.

*Démonstration.* Nous renvoyons le lecteur à l'exercice 19 (page 81) et à la proposition 3.4.9 (page 63) du livre de D.Lamberton et B.Lapeyre [7]. □

**Théorème 3 (Formule d'Itô).** Soit $(X_t)_{t \ge 0}$ un processus d'Itô donné par (2.2) :

Soit $f: \mathbb{R} \mapsto \mathbb{R}$ une fonction deux fois différentiable, on a alors :

$$ \forall t \ge 0, \quad f(X_t) = f(X_0) + \int_0^t f'(X_s) \, dX_s + \frac{1}{2} \int_0^t f''(X_s) \, d\langle X, X \rangle_s, \quad (2.3) $$

où par définition :

$$ \forall t \ge 0, \quad \langle X, X \rangle_t = \int_0^t H_s^2 \, ds. \quad (2.4) $$

De plus, si $f$ dépend aussi du temps et que $f: \mathbb{R} \times \mathbb{R} \to \mathbb{R}$ est deux fois différentiable en $x$ et une fois différentiable en $t$, ces dérivées étant continues en $(t, x)$ (i.e. $f$ est $C^{1,2}$), on a :

$$ \begin{aligned} f(t, X_t) = f(0, X_0) &+ \int_0^t f_t(s, X_s) \, ds \\ &+ \int_0^t f_x(s, X_s) \, dX_s + \frac{1}{2} \int_0^t f_{xx}(s, X_s) \, d\langle X, X \rangle_s. \end{aligned} \quad (2.5) $$

La formule d'Itô est une généralisation de la règle de dérivation en chaîne pour les processus stochastiques. Elle prend en compte les variations quadratiques du processus, ce qui est spécifique au calcul stochastique.

**Propriété 2 (Intégration par parties).** Soient $(X_t)_{t \ge 0}$, $(Y_t)_{t \ge 0}$ deux processus d'Itô de dérives respectives $K_s$ et $K'_s$ et de diffusions respectives $H_s$ et $H'_s$. Alors :

$$ X_t Y_t = X_0 Y_0 + \int_0^t X_s \, dY_s + \int_0^t Y_s \, dX_s + \langle X, Y \rangle_t, $$

avec : $\langle X, Y \rangle_t = \int_0^t H_s H'_s \, ds$.
Démonstration. On utilise la formule d'Itô avec la fonction $x \to x^2$ pour les processus $(X_t)_{t \ge 0}$, $(Y_t)_{t \ge 0}$ et $(X_t + Y_t)_{t \ge 0}$. On obtient, $\forall t \ge 0$ :

$$X_t^2 = X_0^2 + 2 \int_0^t X_s dX_s + \int_0^t H_s^2 ds,$$

$$Y_t^2 = Y_0^2 + 2 \int_0^t Y_s dY_s + \int_0^t H_s^2 ds,$$

$$(X_t + Y_t)^2 = (X_0 + Y_0)^2 + 2 \int_0^t (X_s + Y_s) d(X_s + Y_s) + \int_0^t (H_s + H_s')^2 ds.$$

Ainsi,

$$2X_t Y_t = (X_t + Y_t)^2 - X_t^2 - Y_t^2 \\ = 2X_0 Y_0 + 2 \int_0^t X_s dY_s + 2 \int_0^t Y_s dX_s + 2 \langle X, Y \rangle_t.$$

D'où le résultat.

<figure><img src="image_4.png" /></figure>

Cette formule est l'analogue stochastique de l'intégration par parties en calcul classique. Le terme $\langle X, Y \rangle_t$ représente la covariation des processus $(X_t)_{t \ge 0}$ et $(Y_t)_{t \ge 0}$.

## 2.3 Modèle de Black & Scholes

Illustrons ces résultats sur le célèbre exemple du modèle de Black & Scholes.

### 2.3.1 Description du modèle

Le modèle de Black et Scholes est l'une des applications les plus populaire du calcul stochastique en finance.

L'évolution du prix d'un actif $(S_t)_{t \ge 0}$ sous la dynamique de Black et Scholes est donnée par l'équation différentielle stochastique suivante :

$$dS_t = \mu S_t dt + \sigma S_t dB_t, \qquad (2.6)$$

où :

1. $\mu$ est le taux de rendement de l'actif,

2. $\sigma \ge 0$ est la volatilité de l'actif,

3. $(B_t)_{t \ge 0}$ est un mouvement brownien standard.

Ce modèle repose sur de nombreuses hypothèses discutables, notamment la constance de la volatilité et du taux de rendement. Il a toutefois révolutionné la finance quantitative, car il fournit une formule explicite et facilement calculable pour le prix des options, et reste encore largement utilisé aujourd'hui.
### 2.3.2 Résolution de l'EDS

On applique la formule d'Itô (2.3) à la fonction ln, en admettant que $S_t > 0$. En utilisant (2.6), nous avons :

$$d \ln S_t = \frac{1}{S_t} dS_t - \frac{1}{2} \frac{1}{S_t^2} (\sigma^2 S_t^2 dt).$$

Substituons $dS_t$, en utilisant (2.6) :

$$ \begin{aligned} d \ln S_t &= \frac{1}{S_t}(\mu S_t dt + \sigma S_t dB_t) - \frac{1}{2} \frac{1}{S_t^2}(\sigma^2 S_t^2 dt) \\ &= \left(\mu - \frac{1}{2}\sigma^2\right) dt + \sigma dB_t. \end{aligned} \qquad (2.7) $$

En intégrant des deux côtés entre 0 et $t$, on obtient :

$$\ln S_t = \ln S_0 + \int_0^t \left( \mu - \frac{1}{2}\sigma^2 \right) ds + \int_0^t \sigma dB_s.$$

Puisque $\int_0^t \sigma dB_s = \sigma B_t$, on en déduit :

$$S_t = S_0 \exp \left( \left( \mu - \frac{1}{2}\sigma^2 \right) t + \sigma B_t \right).$$

Comme la solution de l'EDS est unique et que l'on a trouvé un résultat strictement positif, cela justifie à posteriori notre utilisations de la formule d'Itô avec la fonction ln.

### 2.3.3 Application

Nous allons maintenant appliquer ce résultat pour estimer la volatilité $\sigma$ et le rendement $\mu$ d'un cours de bourse selon le modèle de Black & Scholes, en utilisant une méthode de Monte-Carlo.

Rappelons que, puisque $dB_t \sim N(0, dt)$ (i.e. $dB_t$ suit une loi normale de paramètres $(0, dt)$, l'équation (2.7) implique que les accroissements infinitésimaux du logarithme du prix suivent

$$d \ln S_t \sim N \left( \left( \mu - \frac{\sigma^2}{2} \right) dt, \sigma^2 dt \right).$$

Dans la pratique, à partir d'une série discrète de prix $(S_{t_i})_{1 \le i \le n}$ de pas $\Delta t$, on peut calculer les accroissements discrets du log-prix

$$\Delta \ln S_{t_i} = \ln S_{t_i} - \ln S_{t_{i-1}}.$$

On obtient ainsi un échantillon de variables aléatoires approximant une loi normale de moyenne $(\mu - \frac{\sigma^2}{2}) \Delta t$ et de variance $\sigma^2 \Delta t$.
Un estimateur naturel pour la moyenne est la moyenne empirique

$$ \hat{m} = \frac{1}{n} \sum_{i=1}^{n} \Delta \ln S_{t_i}, $$

et pour la variance l'estimateur

$$ \hat{v} = \frac{1}{n} \sum_{i=1}^{n} (\Delta \ln S_{t_i})^2 - \hat{m}^2. $$

Connaissant le pas de temps $\Delta t$, ces deux équations permettent d'estimer si-
multanément $\mu$ et $\sigma$. De plus, grâce au théorème central limite, la variance de ces
estimateurs diminue en $1/n$.

Mettons cette méthode en pratique sur le cours de l'action Apple pour l'année 2024 obtenu sur yahoo finance.

La figure 2.1 montre l'évolution des prix d'ouverture de l'action Apple sur cette période.

<figure><img src="image_5.png" /><figcaption>FIGURE 2.1 – Évolution du prix d'ouverture de l'action Apple en 2024.</figcaption></figure>

En appliquant cette méthode d'estimation sur les données du cours d'ouverture de l'action Apple pour l'année 2024, nous obtenons les résultats suivants :

$$ \hat{\sigma} = 0,2491 \quad \text{et} \quad \hat{\mu} = 0,3368. $$

Cela signifie que, sous l'hypothèse du modèle de Black-Scholes, le rendement moyen annuel de l'action Apple en 2024 est estimé à environ 33,68 %, avec une volatilité de 24,91 %. Ce rendement élevé reflète une croissance soutenue du titre, tandis que la volatilité reste modérée pour une action technologique, suggérant une relative stabilité sur l'année.

Cependant, ces estimations reposent sur l'hypothèse forte selon laquelle les ren-
dements log sont normalement distribués et que les prix évoluent de manière conti-
nue. Or, en pratique, les marchés financiers sont fréquemment exposés à des chocs
exogènes, des annonces économiques ou des effets de contagion qui provoquent des mouvements brusques, discontinus, difficilement expliqués par un simple mouvement brownien.

De ce fait, bien que le modèle de Black-Scholes constitue une première approximation, il reste insuffisant pour capturer la réalité de certains comportements de marché. C'est pourquoi il est pertinent de s'intéresser à des modèles plus riches, intégrant explicitement la possibilité de sauts dans les dynamiques de prix. Ces modèles permettent de mieux refléter les discontinuités observées dans les données réelles, et sont particulièrement utiles pour améliorer la détection d'événements extrêmes ou rares. Nous allons donc étudier de tels modèles dans le chapitre suivant.
# Chapitre 3

## Processus à sauts

Pour modéliser de manière plus réaliste l'évolution des prix d'actifs financiers, il est essentiel de prendre en compte des variations ponctuelles et brutales, souvent provoquées par des événements macroéconomiques inattendus. Ces discontinuités ne s'expliquent pas uniquement par une forte volatilité; elles correspondent plutôt à l'apparition soudaine de sauts dans la dynamique des prix. Nous allons donc nous intéresser dans cette partie à des processus stochastiques capables de capturer ces discontinuités spontanées. Pour cela nous nous appuirons sur le chapitre 7 du livre de D. Lamberton et B. Lapeyre [7] pour les processus de Poisson, ainsi que sur le rapport de synthèse issu du projet recherche de Loubna Ben Allal [1] pour les processus de Hawkes. Enfin, nous utiliserons ces notions pour étudier le modèle développé dans l'article de I. Raffaelli, S. Scotti et G. Toscano [10].

### 3.1 Processus de Poisson

Nous débutons cette partie en définissant les processus ponctuels. Nous détaillerons la cas particulier du processus de Poisson, ainsi que son utilisation dans certains modèles courants.

**Définition 10.** Un processus ponctuel $(N_t)_{t \ge 0}$ est un processus stochastique à valeurs entières, croissant par sauts de taille 1, tel que $N_0 = 0$ et $N_t \to \infty$ lorsque $t \to \infty$. Il modélise l'occurrence d'événements discrets dans le temps.

On note $(T_n)_{n \ge 1}$ les instants des sauts (ou événements), définis par :

$$T_n := \inf\{t > 0 : N_t = n\}.$$

On lui associe une intensité $(\lambda_t)_{t \ge 0}$, qui représente le taux instantané d'occurrence conditionnel des événements. Plus précisément, $\lambda_t$ est définie par :

$$\lambda_t := \lim_{\Delta t \to 0} \frac{1}{\Delta t} \mathbb{E}[N_{t+\Delta t} - N_t | \mathcal{F}_t],$$

où $(\mathcal{F}_t)$ est la filtration naturelle associée à N. Cette intensité satisfait :

$$\mathbb{E}[dN_t | \mathcal{F}_t] = \lambda_t dt.$$
Le processus de Poisson est le processus ponctuel le plus simple, dans ce cas l'intensité est constante.

**Définition 11.** Un processus ponctuel est appelé **processus de Poisson** d'intensité $\lambda > 0$ si :

(i) Le processus est à accroissements indépendants et stationnaires.

(ii) Pour tout $s, t \in \mathbb{R}_+$, la variable aléatoire $N_{s+t} - N_s$ suit une loi de Poisson de paramètre $\lambda t$, i.e.

$$ \forall n \in \mathbb{N}, \quad \mathbb{P}(N_{s+t} - N_s = n) = e^{-\lambda t} \frac{(\lambda t)^n}{n!}. $$

On visualise un tel processus dans la figure 3.1. Les instants où le processus s'incrémente correspondent aux sauts.

<figure><img src="image_6.png" /><figcaption>FIGURE 3.1 – Représentation d'un processus de Poisson d'intensité $\lambda = 5$ sur une fenêtre de temps $[0, 1]$.</figcaption></figure>

**Remarque 6.** Dans la version de base, les sauts sont de taille 1. En pratique, on modélise les amplitudes des sauts en multipliant le processus de Poisson par des variables aléatoires i.i.d. qui déterminent les hauteur des sauts.

On utilise typiquement :

1. des lois log-normales (modèle de Merton),

2. des lois exponentielles (modèle de Kou),

en veillant à ce qu'elles puissent prendre des valeurs positives ou négatives, par exemple via une loi de mélange avec probabilité $p_{\text{neg}}$ d'être sur $\mathbb{R}_-$ et $1 - p_{\text{neg}}$ sur $\mathbb{R}_+$.

### 3.1.1 Modèles avec sauts

Pour une modélisation réaliste, on intègre un terme de saut dans l'équation différentielle stochastique (EDS), comme ci-dessous.
## Modèle de Merton

Le modèle s'écrit :

$$dS_t = \mu dt + \sigma dB_t + Y_t dJ_t \quad (3.1)$$

où :

1. $(S_t)_{t \ge 0}$ est le prix de l'actif,

2. $(B_t)_{t \ge 0}$ est un mouvement brownien standard,

3. $(J_t)_{t \ge 0}$ est un processus de Poisson d'intensité $\lambda > 0$,

4. $(Y_t)_{t \ge 0}$ est une suite de variables i.i.d. suivant une **loi log-normale mixte**, permettant des sauts négatifs (avec probabilité $p_{\text{neg}}$) et positifs (avec probabilité $1 - p_{\text{neg}}$),

5. les processus $(B_t)_{t \ge 0}$, $(J_t)_{t \ge 0}$ et $(Y_t)_{t \ge 0}$ sont supposés mutuellement indépendants.

## Modèle de Kou

Le modèle s'écrit :

$$dS_t = \mu dt + \sigma dB_t + Y_t dJ_t \quad (3.2)$$

où :

1. $(S_t)_{t \ge 0}$ est le prix de l'actif,

2. $(J_t)_{t \ge 0}$ est un processus de Poisson d'intensité $\lambda > 0$,

3. $(Y_t)_{t \ge 0}$ est une suite de variables i.i.d. suivant une **loi exponentielle mixte**, permettant des sauts négatifs (avec probabilité $p_{\text{neg}}$) et positifs (avec probabilité $1 - p_{\text{neg}}$),

4. les processus $(B_t)_{t \ge 0}$, $(J_t)_{t \ge 0}$ et $(Y_t)_{t \ge 0}$ sont supposés mutuellement indépendants.

### 3.1.2 Simulations

Pour simuler un cours financier suivant un des modèles précédents, on discrétise l'EDS selon un schéma de différences finies. Cette méthode est dite d'Euler-Maruyama. Explicitons celle-ci.

#### Méthode d'Euler-Maruyama pour les processus à sauts

La méthode d'Euler-Maruyama permet de simuler numériquement des équations différentielles stochastiques. Dans le cas d'un processus de type :

$$dS_t = \mu dt + \sigma dB_t + Y_t dJ_t$$

on adapte le schéma pour prendre en compte les sauts aléatoires introduits par le processus de Poisson $J_t$. L'idée est de simuler, à chaque pas de temps $\Delta t$, à la fois :

1. une évolution continue $\mu\Delta t + \sigma\Delta B_t$ avec $\Delta B_t \sim \mathcal{N}(0, \Delta t)$,

2. la présence de sauts $N \sim \mathcal{P}(\lambda\Delta t)$,
3. les tailles de saut $Y_1, ..., Y_N$, tirées selon une loi choisie (log-normale ou exponentielle mixte).

On met à jour la variable $S_t$ à chaque pas selon :

$$S_{t+\Delta t} = S_t + \mu\Delta t + \sigma\Delta B_t + \sum_{j=1}^{N} Y_j.$$

**Algorithm 1 Euler-Maruyama pour EDS avec sauts**

**Require:** Prix initial $S_0$, nombre de pas $n$, horizon $T$, paramètres $\mu, \sigma, \lambda$

**Require:** Loi de saut $Y \sim \text{log-normale}$ ou exponentielle mixte

1: $\Delta t \leftarrow T/(n-1)$

2: **for** $i = 0$ à $n-1$ **do**

3:     Tirer $\Delta B \sim N(0, \Delta t)$

4:     Tirer $N \sim P(\lambda\Delta t)$

5:     Tirer $Y_1, ..., Y_N \sim \text{loi de saut}$

6:     $S_{i+1} \leftarrow S_i + \mu\Delta t + \sigma\Delta B + \sum_{j=1}^{N} Y_j$

7: **end for**

En pratique, lorsque le pas de temps $\Delta t$ est suffisamment petit, la probabilité d'avoir plus d'un saut par intervalle est négligeable. On peut alors supposer qu'il y a au plus un saut par pas de temps, ce qui permet de simplifier l'algorithme comme suit :

1. Tirer $u \sim U(0, 1)$

2. Si $u \le \lambda\Delta t$, alors un saut a lieu : on tire un $Y \sim \text{loi de saut}$.

3. Sinon, il n'y a pas de saut à cet instant.

Les figures 3.2 et 3.3 présentent des simulations numériques obtenues à l'aide du schéma de discrétisation décrit précédemment, sur une fenêtre temporelle de 750 minutes — soit deux journées de marché — avec un pas de temps d'une minute. Le prix initial de l'actif fictif est fixé à $S_0 = 1000$. Les paramètres choisis pour les modèles sont : $\mu = 10^{-5}$, $\sigma = 10^{-3}$ et $\lambda = 0,05$. La figure 3.4, à titre comparatif, montre le cours minute réel du Nasdaq-100 sur deux journées consécutives : les 6 et 7 juin 2025.
<figure><img src="image_7.png" /><figcaption>FIGURE 3.2 – Simulation avec le modèle de Merton</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>FIGURE 3.3 – Simulation avec le modèle de Kou</figcaption></figure>

<figure><img src="image_9.png" /><figcaption>FIGURE 3.4 – Cours réel du Nasdaq en haute fréquence</figcaption></figure>

En observant le cours du Nasdaq-100 sur la figure 3.4, on peut se demander
si l'apparition des sauts est entièrement aléatoire ou s'il n'y a pas de phénomènes sous-jacents. Par exemple, entre les minutes 200 et 400, on peut faire l'hypothèse qu'il y a un déclenchement de sauts en cascade. Cela nous amène donc à considérer le modèle suivant où les sauts peuvent interagir entre eux : le processus de Hawkes.

## 3.2 Processus de Hawkes

Les processus de Hawkes permettent de modéliser des phénomènes où l'apparition d'un saut augmente temporairement la probabilité d'apparition de nouveaux sauts. Contrairement au processus de Poisson où les sauts sont indépendants et apparaissent à une intensité constante, l'intensité des processus de Hawkes dépend des sauts précédents, et décroît ensuite de manière exponentielle avec le temps en l'absence de nouveaux événements.

### 3.2.1 Définition

**Définition 12.** Un processus de Hawkes est un processus ponctuel $(N_t)_{t \ge 0}$ dont l'intensité à l'instant $t$, notée $\lambda_t$, est donnée par :

$$ \lambda_t = \lambda_0 + \sum_{t_i < t} \alpha e^{-\beta(t-t_i)} $$

où :

(i) $\lambda_0 > 0$ est l'intensité de base,

(ii) $\alpha > 0$ mesure l'impact immédiat d'un saut sur l'intensité,

(iii) $\beta > 0$ contrôle la vitesse de décroissance de cet effet dans le temps,

(iv) les $t_i$ désignent les instants des sauts précédents.

Ainsi, chaque saut passé augmente momentanément l'intensité $\lambda_t$, qui décroît ensuite de façon exponentielle jusqu'à ce qu'un nouveau saut survienne.

**Remarque 7.** Ce type de processus est bien adapté à la modélisation de phénomènes d'auto-excitation observés sur les marchés financiers, tels que :

1. les séries d'ordres successifs déclenchés par une première transaction,

2. les réactions en chaîne suite à une annonce importante,

3. les périodes de forte activité concentrée dans le temps.

En particulier, les processus de Hawkes capturent la tendance des événements à apparaître en grappes, ce qui les rend plus réalistes que les processus de Poisson classiques.

La figure 3.5 illustre l'évolution d'un processus de Hawkes au cours du temps, pour les paramètres $\lambda_0 = 7,5$, $\alpha = 8,5$ et $\beta = 85$. On y observe un phénomène de sauts en cascade autour de $t = 0,6$. La figure 3.6 montre quant à elle l'évolution de l'intensité $\lambda_t$, marquée par une augmentation brutale après chaque événement, suivie d'une décroissance exponentielle.
<figure><img src="image_10.png" /><figcaption>FIGURE 3.5 – Représentation d'un processus de Hawkes sur une fenêtre de temps $[0, 1]$.</figcaption></figure>

<figure><img src="image_11.png" /><figcaption>FIGURE 3.6 – Représentation de l'intensité $\lambda_t$ associée.</figcaption></figure>

### 3.2.2 Simulations

Supposons que l'on ait un actif qui soit modélisé de la façon suivante :

$$dS_t = \mu dt + \sigma dB_t + Y_t dJ_t \quad (3.3)$$

où :

1. $(S_t)_{t \ge 0}$ est le prix de l'actif,

2. $(B_t)_{t \ge 0}$ est un mouvement brownien standard,

3. $(J_t)_{t \ge 0}$ est un processus de Hawkes de paramètres $(\lambda_0, \alpha, \beta)$,

4. $(Y_t)_{t \ge 0}$ est une suite de variables i.i.d. suivant une certaine loi de probabilité,
5. les processus $(B_t)_{t \ge 0}$, $(J_t)_{t \ge 0}$ et $(Y_t)_{t \ge 0}$ sont supposés mutuellement indépendants.

Pour simuler une trajectoire d'un tel actif, on peut toujours utiliser la méthode d'Euler-Maruyama comme en algorithme 1, en actualisant cette fois-ci l'intensité du processus $\lambda_t$ à chaque itération. On suppose également qu'il n'y a au plus qu'un seul saut par pas de temps.

<caption>**Algorithm 2** Simulation d'un processus de Hawkes avec schéma d'Euler-Maruyama</caption>

**Require:** Prix initial $S_0$, nombre de pas $n$, horizon $T$, paramètres $\mu, \sigma, \lambda_0, \alpha, \beta$
**Require:** Loi de saut $Y \sim \text{log-normale}$ ou exponentielle mixte
1: $\Delta t \leftarrow T/(n-1)$
2: $\mathcal{T} \leftarrow \emptyset$ \quad ▷ Liste des instants de saut
3: **for** $i = 0$ à $n-1$ **do**
4: &nbsp;&nbsp;&nbsp;&nbsp;$t \leftarrow i\Delta t$
5: &nbsp;&nbsp;&nbsp;&nbsp;Calculer $\lambda_t \leftarrow \lambda_0 + \sum_{t_j \in \mathcal{T}} \alpha e^{-\beta(t-t_j)}$
6: &nbsp;&nbsp;&nbsp;&nbsp;Tirer $u \sim U(0, 1)$
7: &nbsp;&nbsp;&nbsp;&nbsp;**if** $u \le \lambda_t \Delta t$ **then**
8: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Un saut a lieu : ajouter $t$ à $\mathcal{T}$
9: &nbsp;&nbsp;&nbsp;&nbsp;Tirer $Y \sim \text{loi de saut}$
10: &nbsp;&nbsp;&nbsp;&nbsp;**else**
11: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$Y \leftarrow 0$
12: &nbsp;&nbsp;&nbsp;&nbsp;**end if**
13: &nbsp;&nbsp;&nbsp;&nbsp;Tirer $\Delta B \sim N(0, \Delta t)$
14: &nbsp;&nbsp;&nbsp;&nbsp;$S_{i+1} \leftarrow S_i + \mu \Delta t + \sigma \Delta B + Y$
15: **end for**

Il existe toutefois des algorithmes de simulation de processus de Hawkes plus efficaces, comme celui d'Ogata qui utilise une méthode de rejet. Le lecteur intéressé pourra se référer à la section 7.2 du rapport de Loubna Ben Allal [1].

## 3.3 Modèle présenté par I. Raffaelli, S. Scotti et G. Toscano

Maintenant que nous avons introduit les processus à sauts, nous pouvons nous intéresser au modèle développé par I. Raffaelli, S. Scotti et G. Toscano dans leur article [10].

Celui-ci s'écrit :

$$ egin{cases} dX_t = \mu dt + \sqrt{V_t} dB_t - \frac{1}{2} V_t dt + Z_t dJ_t \\ dV_t = \kappa(\phi - V_t) dt + \epsilon dB_t + L_t dJ_t \\ \lambda_t = \lambda_0 + \alpha \sum_{i \in \mathbb{N}} e^{-\beta(t-T_i)} \mathbf{1}_{T_i \le t} + \theta V_t \end{cases} \quad (3.4) $$

où :

1. $(X_t)_{t \ge 0}$ est le log-prix de l'actif,

2. $(V_t)_{t \ge 0}$ est la variance du prix de l'actif,
3. $(B_t)_{t \ge 0}$ est un mouvement Brownien standard,

4. $(J_t)_{t \ge 0}$ est un processus ponctuel d'intensité $(\lambda_t)_{t \ge 0}$ stochastique, dont les instants de sauts sont numérotés $(T_i)_{i \in \mathbb{N}}$,

5. $(Z_t)_{t \ge 0}$ et $(L_t)_{t \ge 0}$ sont des suites de variables i.i.d. suivant une loi exponentielle mixte,

6. les processus $(B_t)_{t \ge 0}$, $(J_t)_{t \ge 0}$, $(Z_t)_{t \ge 0}$ et $(L_t)_{t \ge 0}$ sont supposés mutuellement indépendants.

Même si la première équation rappelle celle des modèles précédents (le terme $-\frac{1}{2}V_t d_t$ provient de la composition par la fonction logarithme d'après la formule d'Itô), le modèle est nettement plus complexe.

Tout d'abord, il est à volatilité stochastique : $\sigma$ n'est plus constante mais vaut $(\sqrt{V_t})_{t \ge 0}$, avec $(V_t)_{t \ge 0}$ régit par une EDS dont on peut analyser les différents termes :

1. le terme $\kappa(\phi - V_t)d_t$ modélise une force de rappel, qui a tendance à ramener la variance à son niveau moyen $\phi$,

2. le terme $\epsilon dB_t$ correspond au bruit de la variance, induit par les fluctuations du marché,

3. le terme $L_t dJ_t$ traduit, au même titre que $Z_t dJ_t$, les mouvements de marché brutaux et soudains.

De plus, $(\lambda_t)_{t \ge 0}$ n'est pas exactement l'intensité d'un processus de Hawkes, puisqu'elle dépend aussi de la variance via le terme $\theta V_t$.

On remarque aussi que pour $\theta = 0$, on se trouve dans le cas d'un processus de Hawkes, et si de plus $\alpha = 0$, on se ramène à un processus de Poisson.

Pour pouvoir simuler numériquement ce modèle, on utilise une discrétisation par différences finies de type Euler-Maruyama. Le système d'équations 3.4 devient alors :

$$ egin{cases} 
\tilde{X}_{k+1} = \tilde{X}_k + \mu h + \sqrt{\tilde{V}_k} G_k - \frac{1}{2} \tilde{V}_k h + Z_k d \tilde{J}_k, \\ 
\tilde{V}_{k+1} = \tilde{V}_k + \kappa(\phi - \tilde{V}_k)h + \epsilon G_k + L_k d \tilde{J}_k, \\ 
\tilde{\lambda}_k = \lambda_0 + \alpha \sum_{i \in \mathbb{N}} e^{-\beta(kh-T_i)} \mathbf{1}_{T_i \le kh} + \theta \tilde{V}_k, 
\end{cases} 
\quad (3.5) $$

où $h$ est le pas de discrétisation, $(G_k)$ est une famille de variables aléatoires i.i.d. de loi $N(0, h)$, et les tildes indiquent les versions discrétisées des processus. Comme la variance est toujours positive, si lors d'une itération le terme $\tilde{V}_k + \kappa(\phi - \tilde{V}_k)h + \epsilon N(0, h) + L_k d \tilde{J}_k$ est négatif, on prendra $\tilde{V}_{k+1} = 0$.

On peut ensuite simuler l'évolution de l'actif comme dans l'algorithme 2, en veillant cette fois à mettre également à jour la variance à chaque itération.

Dans leur article, I. Raffaelli, S. Scotti et G. Toscano présentent quatre sous-modèles distincts selon le choix des paramètres. Deux d'entre eux ont déjà été évoqués : le modèle de Poisson ($\alpha = \theta = 0$) et le modèle de Hawkes ($\alpha > 0, \theta = 0$).

Le troisième est appelé modèle auto-exécité. Il correspond au cas où $\alpha = \mu = 0$ et $\theta > 0$, ce qui implique que l'intensité des sauts est proportionnelle à la variance. La dynamique de celle-ci suit alors un processus de branchements, ce qui permet une modélisation autonome des chocs de marché. Ce modèle présente également
l'avantage de ne faire intervenir que les processus $(X_t)$ et $(V_t)$, simplifiant ainsi sa mise en œuvre numérique.

Toutefois, cette approche n'intègre pas les événements exogènes susceptibles de provoquer des sauts, ceux-ci étant uniquement expliqués par la volatilité. Pour pallier cette limite, les auteurs introduisent un quatrième sous-modèle, appelé hybride auto-excité. Il correspond au cas $\alpha = 0, \mu > 0$ et $\theta > 0$. L'intensité des sauts devient alors une fonction affine de la variance, et le terme constant $\mu$ permet de modéliser l'occurrence spontanée de sauts exogènes. La volatilité suit dans ce cas un processus de branchements avec migration.

Présentons les résultats obtenus pour chacun des modèles.

### 3.3.1 Processus de Poisson

Pour illustrer le comportement du modèle dans le cas où les sauts sont gouvernés par un processus de Poisson homogène, nous simulons la trajectoire d'un actif sur un intervalle de temps $[0, 10]$ avec un pas de discrétisation $h = 0,01$, selon le schéma numérique (3.5).

Les paramètres choisis sont les suivants :

$$ (\mu, \kappa, \phi, \lambda_0, \alpha, \beta, \theta) = (0,01, 4, 0,05, 1, 0, 0, 0), $$

ce qui correspond bien au cas poissonien, avec $\alpha = \theta = 0$.

Les variables aléatoires $(Z_t)_{t \ge 0}$ et $(L_t)_{t \ge 0}$ représentant les amplitudes des sauts suivent des lois exponentielles. Plus précisément, chaque saut est tiré selon une loi exponentielle de paramètre $\lambda_Z = 0,5$ pour $Z_t$ et $\lambda_L = 0,05$ pour $L_t$, avec de plus pour $(Z_t)_{t \ge 0}$ une probabilité $p_{\text{neg}} = 0,7$ d'être négatif (et donc $1 - p_{\text{neg}} = 0,3$ d'être positif).

Les trajectoires du prix $(S_t = S_0 e^{X_t})_{t \ge 0}$ et de la variance $(V_t)_{t \ge 0}$ sont présentées dans les figures 3.7 et 3.8, respectivement. Le processus de comptage $(J_t)_{t \ge 0}$ associé aux sauts est visualisé en figure 3.9. Le prix initial est fixé à $S_0 = 1000$.

<figure><img src="image_12.png" /><figcaption>FIGURE 3.7 – Trajectoire du prix de l'actif dans le cas poissonien</figcaption></figure>
<figure><img src="image_13.png" /><figcaption>FIGURE 3.8 – Évolution de la variance</figcaption></figure>

<figure><img src="image_14.png" /><figcaption>FIGURE 3.9 – Processus de comptage des sauts</figcaption></figure>

On observe que les sauts provoquent des variations soudaines du prix et de la variance. Par exemple, leur chute observée autour de $t = 3$ est directement liée à l'apparition d'un saut. Cela reflète bien l'impact ponctuel mais potentiellement significatif d'un choc dans un modèle à sauts.

### 3.3.2 Processus de Hawkes

On réalise la même simulation que précédemment, en changeant seulement les constantes du modèle. On prend cette fois-ci $(\mu, \kappa, \phi, \lambda_0, \alpha, \beta, \theta) = (0.01, 0.4, 0.05, 1, 5, 20, 0)$.

De même, les évolutions du prix $(S_t = S_0 \exp(X_t))_{t \ge 0}$ et de la variance $(V_t)_{t \ge 0}$ de l'actif sont tracées figures 3.10 et 3.11. La figure 3.12 représente le processus de comptage $(J_t)_{t \ge 0}$ et celle 3.13 la trajectoire de l'intensité $(\lambda_t)_{t \ge 0}$ du processus.
<figure><img src="image_15.png" /><figcaption>FIGURE 3.10 – Trajectoire du prix de l’actif</figcaption></figure>

<figure><img src="image_16.png" /><figcaption>FIGURE 3.11 – Trajectoire de la variance</figcaption></figure>
<figure><img src="image_17.png" /><figcaption>FIGURE 3.12 – Evolution du processus de comptage</figcaption></figure>

<figure><img src="image_18.png" /><figcaption>FIGURE 3.13 – Evolution de l’intensité du processus</figcaption></figure>

On observe un phénomène de sauts en cascade proche de $t = 2$. Près de 10 sauts sont constatés sur un intervalle de temps de 2 unités. Le nombre de sauts croit de manière exponentielle, ce qui a pour conséquence de faire chuter le prix de l’actif, le divisant environ par 3. L’intensité des sauts fini ensuite par redescendre, permettant au prix de l’actif de reprogresser presque linéairement.

### 3.3.3 Processus auto-excitation

On change encore les paramètres du modèle en prennant $(\mu, \kappa, \phi, \lambda_0, \alpha, \beta, \theta) = (0.01, 0.4, 0.05, 0, 0, 0, 10)$.

Encore une fois, les évolutions du prix ($S_t = S_0 \exp(X_t))_{t \ge 0}$ et de la variance ($V_t)_{t \ge 0$ de l’actif sont illustrées figures 3.14 et 3.15. La figure 3.16 représente le processus de comptage ($J_t)_{t \ge 0}$ et celle 3.17 la trajectoire de l’intensité ($\lambda_t)_{t \ge 0}$ du processus.
<figure><img src="image_19.png" /><figcaption>FIGURE 3.14 – Trajectoire du prix de l’actif</figcaption></figure>

<figure><img src="image_20.png" /><figcaption>FIGURE 3.15 – Trajectoire de la variance</figcaption></figure>
<figure><img src="image_21.png" /><figcaption>FIGURE 3.16 – Evolution du processus de comptage</figcaption></figure>

<figure><img src="image_22.png" /><figcaption>FIGURE 3.17 – Evolution de l’intensité du processus</figcaption></figure>

On a donc ici une évolution de l’intensité proportionnelle à celle de la variance. On peut toujours observer des apparitions de sauts successifs (par exemple proche de $t = 5$ ou $t = 9$), bien que l’intensité ne dépende pas explicitement du processus de comptage comme dans le cas du modèle de Hawkes. En effet ici, l’occurence d’un saut a pour conséquence d’augmenter la variance de l’actif (d’après 3.5), ce qui provoque une hausse de l’intensité. Par rapport au modèle précédent, ces dynamiques de sauts en chaîne sont amoindries et ne peuvent avoir lieu que lorsque la volatilité de l’actif est élevée.

### 3.3.4 Processus hybride auto-excitation

On prend ici $(\mu, \kappa, \phi, \lambda_0, \alpha, \beta, \theta) = (0.01, 0.4, 0.05, 1, 0, 0, 1)$ et on représente les évolutions du prix $(S_t = S_0 \exp(X_t))_{t \ge 0}$ et de la variance $(V_t)_{t \ge 0}$ dans les figures
3.18 et 3.19. Les figures 3.20 et 3.21 montrent les trajectoires du processus de sauts $(J_t)_{t \ge 0}$ et de l'intensité $(\lambda_t)_{t \ge 0}$.

<figure><img src="image_23.png" /><figcaption>FIGURE 3.18 – Trajectoire du prix de l’actif</figcaption></figure>

<figure><img src="image_24.png" /><figcaption>FIGURE 3.19 – Trajectoire de la variance</figcaption></figure>
<figure><img src="image_25.png" /><figcaption>FIGURE 3.20 – Evolution du processus de comptage</figcaption></figure>

<figure><img src="image_26.png" /><figcaption>FIGURE 3.21 – Evolution de l’intensité du processus</figcaption></figure>

On a alors un mélange entre le processus de Poisson et le processus auto-excitation. Il y a à la fois des apparitions de sauts spontannées, dûs à la constante $λ_0$, et des phénomènes de sauts successifs, dûs à la dépendance par rapport à la variance. Par exemple, on observe un saut en $t = 4$, bien qu’à cet instant la variance soit proche de 0, et à l’inverse, on observe des sauts en cascade entre $t = 8$ et $t = 10$ lorsque la variance est à son maximum.

### 3.3.5 Conclusion

De ses observations, on peut supposer que le modèle hybride auto-excitation est le plus pertinent. Il permet de traduire à la fois les phénomènes d’apparition spontanée et de réaction en chaîne des sauts sur les marchés financiers, tout en étant plus facilement implémentable que le processus de Hawkes. En effet, celui-ci nécessite
la mise à jour permanente des trois composantes ($X_t, V_t, \lambda_t$) tandis que le modèle hybride déduit $\lambda_t$ de $V_t$ et n'a donc besoin de garder en mémoire uniquement ($X_t, V_t$).

Cette hypothèse sera testée et confirmée par I. Raffaelli, S. Scotti et G. Toscano dans leur article [10], en testant les différents modèles sur des données financières réelles du S&P500. Pour cela, les auteurs ont eu besoin d'un outil pour détecter les sauts sur le cours boursier, afin de mettre à jour l'intensité $\lambda_t$. Je me suis donc concentré sur cette problématique et j'ai décidé d'y dédier le chapitre suivant.

Certains résultats intéressants sur le modèle qui ont été développés pendant mon projet recherche n'ont pas pu être inclus dans ce rapport par manque de temps. Notamment les conditions nécessaires afin que le processus vérifie la propriété de Markov, et les résultats de retour à la moyenne, de vitesse de retour à la moyenne et d'ergodicité en utilisant la version compensée du processus.
# Chapitre 4

## Détections de sauts à l'aide du test de S. Lee et P. Mykland

### 4.1 Introduction

Nous avons vu que le cours d'un actif pouvait être modélisé par un processus à sauts, traduisant les mouvements brutaux des marchés financiers. Toutefois, sur des données réelles, il est assez difficile de déterminer si une variation soudaine s'explique par une hausse de la volatilité ou bien par un saut. Pourtant, dans certaines modélisations, comme celle de Hawkes, il est nécessaire de déterminer les sauts sur un intervalle de temps. Ceci nous amène donc à chercher des moyens de détécter des sauts sur les données d'un cours.

Pour cela, nous allons utiliser un test mis au point par S. Lee et P. Mykland en 2008 [8]. Nous donnerons les idées générales sans rentrer dans les détails.

### 4.2 Modèle

Pour notre modélisation, on va considérer une filtration $\mathcal{F} = (\mathcal{F}_t)_{t \ge 0}$ et se placer dans un espace probabilisé $(\Omega, \mathcal{F}, \mathbb{P})$. On définit alors $(X_t)_{t \ge 0}$ le log-prix de notre actif. On va donc représenter $(X_t)_{t \ge 0}$ comme suit :

1. En absence de sauts :

$$dX_t = \mu_t dt + \sigma_t dB_t \quad (4.1)$$

avec $(\mu_t)_{t \ge 0}$, $(\sigma_t)_{t \ge 0}$ et $(B_t)_{t \ge 0}$ des processus $\mathcal{F}_t$-adaptés.

2. En présence de sauts :

$$dX_t = \mu_t dt + \sigma_t dB_t + Y_t dJ_t \quad (4.2)$$

avec $(J_t)_{t \ge 0}$ un processus de comptage indépendant de $(B_t)_{t \ge 0}$, et $(Y_t)_{t \ge 0}$ représentant l'intensité des sauts.
Il est important de remarquer que $(\sigma_t)_{t \ge 0}$ correspond bien à la volatilité de l'actif mais que $(\mu_t)_{t \ge 0}$ ne correspond pas à son rendement. Celui-ci serait en effet donné par pour tout $t \ge 0$, $r_t = \mu_t + \frac{\sigma^2}{2}$ d'après la formule d'Itô.

Nous allons réaliser un test d'hypothèse. On notera $(H_0)$ le cas sans sauts et $(H_1)$ le cas avec.

## 4.3 Volatilité instantanée et intégrée

Avant de pouvoir détecter d'éventuels sauts dans la trajectoire d'un actif, une première étape consiste à estimer sa volatilité $(\sigma_t)_{t \ge 0}$. Cette estimation permet de distinguer les variations de prix dues à une forte incertitude (volatilité) de celles causées par des événements exceptionnels (sauts).

Il est donc important de bien comprendre la distinction entre **volatilité instantanée** et **volatilité intégrée** :

1. La **volatilité instantanée** correspond à la fonction $(\sigma_t)_{t \ge 0}$, qui mesure l'incertitude à un instant donné. En pratique, cette grandeur est difficile à observer directement, car elle varie continuellement et de manière non déterministe.

2. La **volatilité intégrée**, notée $\int_S^T \sigma_t^2 dt$, représente l'accumulation de la variance instantanée sur une certaine période $[S, T]$. Elle est plus accessible empiriquement, car elle peut être estimée à partir de données discrètes de prix observées sur une période donnée, contrairement à la volatilité instantanée qui n'est pas directement observable.

Nous nous concentrerons donc principalement sur l'estimation de cette volatilité intégrée.

## 4.4 Variation bipuissance

Maintenant que nous avons modélisé notre actif et défini précisément l'objet de notre estimation, à savoir $\int_S^T \sigma_t^2 dt$ sur un intervalle de temps $[S, T]$ choisi, il convient d'utiliser un estimateur robuste à la présence de sauts. Autrement dit, un estimateur dont la valeur ne varie pas significativement selon que l'on soit sous $H_0$ (absence de saut) ou $H_1$ (présence de saut). Pour cela, nous utilisons l'estimateur de la variation bipuissance, défini sur une fenêtre de lissage de $K$ observations par :

$$ \hat{\sigma}_{t_i}^2 = \frac{1}{K-2} \sum_{j=i-K+2}^{i-1} |X_{t_j} - X_{t_{j-1}}| |X_{t_{j-1}} - X_{t_{j-2}}|, \quad (4.3) $$

pour $i \ge K-2$ et $K > 2$, avec les $(t_j)$ les points de discrétisation sur l'intervalle de temps considéré $[0, t]$ (on estime alors uniquement la volatilité locale sur la fenêtre de lissage).

Montrons quelques résultats sur cet estimateur :

**Théorème 4.** *Notons $\mathcal{H}$ l'hypothèse suivante :*
1. les observations se font en hautes fréquences, i.e. $\sqrt{\Delta t}$ domine $\Delta t$,

2. $\sigma_t$ est assez régulière sur l'intervalle d'observation $[0, t]$ pour que $\|\sigma\|_{\infty, [0, t]}$ et

$$ \mathrm{osc}(\sigma, \Delta t) = \sup_{x,y \in [0,t], |x-y| \le \Delta t} |\sigma_x - \sigma_y| \quad (4.4) $$

soient correctement définis.

Alors, sous l'hypothèse $\mathcal{H}$ et en absence de sauts, on a l'inégalité suivante :

$$ \left| \mathbb{E}(\hat{\sigma}_{t_i}^2) - \frac{\mu_1^2}{K-2} \int_{t_{i-K+1}}^{t_{i-1}} \sigma_s^2 ds \right| \le 2\mu_1^2 \cdot \mathrm{osc}(\sigma, \Delta t) \cdot \|\sigma\|_{\infty, [0,t]} \cdot \Delta t, \quad (4.5) $$

$$ \text{avec } \mu_1 = \mathbb{E}(|\epsilon_j|) = \sqrt{2/\pi}. $$

**Remarque 8.** Ce résultat montre que l'estimateur $\hat{\sigma}_{t_i}^2$ est asymptotiquement non-biaisé et estime correctement $\frac{\mu_1^2}{K-2} \int_{t_{i-K+1}}^{t_{i-1}} \sigma_s^2 ds$ lorsque $\Delta t$ est suffisament petit. Réduire $\Delta t$ permet alors de contrôler l'erreur de l'estimateur mais cela diminue aussi la taille de la fenêtre de lissage.

**Démonstration.** Sous l'hypothèse $H_0$, le logarithme du prix de l'actif suit la dynamique continue suivante :

$$ dX_t = \mu_t dt + \sigma_t dB_t. $$

On discrétise l'intervalle d'observation $[0, t]$ selon le schéma de Euler-Maruyama. On note $(t_j)$ les instants de discrétisation et $r_j = X_{t_j} - X_{t_{j-1}}$ le rendement logarithmique entre deux instants successifs. On obtient :

$$ r_j = \mu_{t_j} \Delta t + \sigma_{t_j} \sqrt{\Delta t} \epsilon_j, \quad \text{où } (\epsilon_j) \text{ v.a.i.i.d. de loi } \mathcal{N}(0, 1), \quad \Delta t = t_j - t_{j-1}. $$

À haute fréquence, $\sqrt{\Delta t}$ domine $\Delta t$, donc la composante de dérive devient négligeable devant la diffusion, ce qui donne l'approximation :

$$ r_j \approx \sigma_{t_j} \sqrt{\Delta t} \epsilon_j. $$

Ainsi, le produit de deux rendements consécutifs s'écrit :

$$ |r_j||r_{j-1}| \approx \sigma_{t_j} \sigma_{t_{j-1}} \Delta t |\epsilon_j \epsilon_{j-1}|. \quad (4.6) $$

L'estimateur de la variation bipuissance devient alors :

$$ \hat{\sigma}_{t_i}^2 = \frac{1}{K-2} \sum_{j=i-K+2}^{i-1} |r_j||r_{j-1}|. $$

En substituant par (4.6) :

$$ \hat{\sigma}_{t_i}^2 \approx \frac{1}{K-2} \sum_{j=i-K+2}^{i-1} \sigma_{t_j} \sigma_{t_{j-1}} \Delta t |\epsilon_j \epsilon_{j-1}|. \quad (4.7) $$
Par linéarité de l'espérance et indépendance des $\epsilon_j$, on a :

$$
\begin{align*}
\mathbb{E}(\hat{\sigma}_{t_i}^2) &\approx \frac{1}{K-2} \sum_{j=i-K+2}^{i-1} \sigma_{t_j} \sigma_{t_{j-1}} \Delta t \mathbb{E}(|\epsilon_j \epsilon_{j-1}|) \\
&\approx \frac{1}{K-2} \sum_{j=i-K+2}^{i-1} \sigma_{t_j} \sigma_{t_{j-1}} \Delta t \mathbb{E}(|\epsilon_j|) \mathbb{E}(|\epsilon_{j-1}|) \\
&\approx \frac{\mu_1^2}{K-2} \sum_{j=i-K+2}^{i-1} \sigma_{t_j} \sigma_{t_{j-1}} \Delta t,
\end{align*}
$$

où $\mu_1 = \mathbb{E}(|\epsilon_j|) = \sqrt{2/\pi}$ pour une variable normale centrée réduite.

Par ailleurs, la variation quadratique intégrée sur la fenêtre de lissage s'écrit (en excluant les points extremaux) :

$$
\int_{t_{i-K+1}}^{t_{i-1}} \sigma_s^2 ds = \sum_{j=i-K+2}^{i-1} \int_{t_{j-1}}^{t_j} \sigma_s^2 ds.
$$

On décompose chaque terme comme suit :

$$
\begin{align*}
\int_{t_{j-1}}^{t_j} \sigma_s^2 ds &= \int_{t_{j-1}}^{t_j} (\sigma_s - \sigma_{t_j}) \sigma_s ds + \int_{t_{j-1}}^{t_j} \sigma_{t_j} \sigma_s ds \\
&= \int_{t_{j-1}}^{t_j} (\sigma_s - \sigma_{t_j}) \sigma_s ds + \int_{t_{j-1}}^{t_j} \sigma_{t_j} (\sigma_s - \sigma_{t_{j-1}}) ds + \int_{t_{j-1}}^{t_j} \sigma_{t_{j-1}} \sigma_{t_j} ds.
\end{align*}
$$

En utilisant osc($\sigma$, $\Delta t$) définit en (4.4), on majore les deux premiers termes :

$$
\left| \sum_{j=i-K+2}^{i-1} \int_{t_{j-1}}^{t_j} (\sigma_s - \sigma_{t_j}) \sigma_s ds \right| \le (K-2) \cdot \mathrm{osc}(\sigma, \Delta t) \cdot \|\sigma\|_{\infty, [0,t]} \cdot \Delta t, \quad (4.8)
$$

et de même :

$$
\left| \sum_{j=i-K+2}^{i-1} \int_{t_{j-1}}^{t_j} \sigma_{t_j} (\sigma_s - \sigma_{t_{j+1}}) ds \right| \le (K-2) \cdot \mathrm{osc}(\sigma, \Delta t) \cdot \|\sigma\|_{\infty, [0,t]} \cdot \Delta t. \quad (4.9)
$$

Enfin,

$$
\sum_{j=i-K+2}^{i-1} \int_{t_{j-1}}^{t_j} \sigma_{t_{j-1}} \sigma_{t_j} ds = \sum_{j=i-K+2}^{i-1} \sigma_{t_{j-1}} \sigma_{t_j} \Delta t. \quad (4.10)
$$

Ainsi, en combinant (4.8), (4.9) et (4.10), on obtient la borne d'approximation :

$$
\left| \mathbb{E}(\hat{\sigma}_{t_i}^2) - \frac{\mu_1^2}{K-2} \int_{t_{i-K+1}}^{t_{i-1}} \sigma_s^2 ds \right| \le 2\mu_1^2 \cdot \mathrm{osc}(\sigma, \Delta t) \cdot \|\sigma\|_{\infty, [0,t]} \cdot \Delta t.
$$

□
**Remarque 9.** Ainsi, dans le cas fréquent où l'on modélise l'actif avec une volatilité constante $\sigma$ (Black-Scholes), alors la volatilité intégrée sur la fenêtre de lissage vaut : 
$$ \int_{t_{i-K+1}}^{t_{i-1}} \sigma^2 dt = \sigma^2(K-2)\Delta t. $$ 
Donc l'estimateur de la variation bipuissance nous donne $\hat{\sigma}_t^2 = \mu_1^2\sigma^2\Delta t$. On obtient alors la volatilité instantanée par $\sigma = \frac{\hat{\sigma}_t}{\mu_1\sqrt{\Delta t}}$.

Nous allons désormais montrer un résultat de consistance de l'estimateur.

**Lemme 1.** On se place sous l'hypothèse $\mathcal{H}$ et on suppose de plus que $\sigma_t$ est constante égale à $\sigma$. On a alors :

$$ \mathbb{E}(\hat{\sigma}_{t_i}^4) = \frac{\sigma^4}{(K-2)^2} \left( (K-2)\Delta t^2 + (K-4)(K-3)\Delta t^2 \mu_1^4 + 2(K-3)\Delta t^2 \mu_1^2 \right). $$

*Démonstration.* On rappelle que pour $\Delta t$ suffisament petit, on peut écrire :

$$ \hat{\sigma}_{t_i}^2 = \frac{1}{K-2} \sum_{j=i-K+2}^{i-1} \sigma_{t_j} \sigma_{t_{j-1}} |\Delta_j B| |\Delta_{j-1} B| $$

avec $\Delta_j B = B_{t_j} - B_{t_{j-1}}$ les incréments du brownien d'après 4.7.

On peut alors écrire :

$$
\begin{align*}
\mathbb{E}(\hat{\sigma}_{t_i}^4) &= \mathbb{E} \left[ \left( \frac{1}{K-2} \sum_{j=i-K+2}^{i-1} \sigma_j \sigma_{j-1} |\Delta_j B| |\Delta_{j-1} B| \right)^2 \right] \\
&= \mathbb{E} \left[ \left( \frac{\sigma^2}{K-2} \sum_{j=i-K+2}^{i-1} |\Delta_j B| |\Delta_{j-1} B| \right)^2 \right] \quad \text{(constance de } \sigma) \\
&= \frac{\sigma^4}{(K-2)^2} \mathbb{E} \left[ \left( \sum_{j=i-K+2}^{i-1} |\Delta_j B| |\Delta_{j-1} B| \right)^2 \right] \\
&= \frac{\sigma^4}{(K-2)^2} \mathbb{E} \left[ \sum_{j=i-K+2}^{i-1} |\Delta_j B|^2 |\Delta_{j-1} B|^2 + 2 \sum_{j=i-K+2}^{i-1} \sum_{k=i-K+2}^{j-1} |\Delta_k B| |\Delta_j B| |\Delta_{k-1} B| |\Delta_{j-1} B| \right] \\
&= \frac{\sigma^4}{(K-2)^2} \left[ \sum_{j=i-K+2}^{i-1} \mathbb{E}(|\Delta_j B|^2) \mathbb{E}(|\Delta_{j-1} B|^2) \right. \\
&\qquad \left. + 2 \sum_{j=i-K+2}^{i-1} \sum_{k=i-K+2}^{j-2} \mathbb{E}(|\Delta_k B|) \mathbb{E}(|\Delta_{k-1} B|) \mathbb{E}(|\Delta_j B|) \mathbb{E}(|\Delta_{j-1} B|) \right. \\
&\qquad \left. + 2 \sum_{j=i-K+3}^{i-1} \mathbb{E}(|\Delta_j B|^2) \mathbb{E}(|\Delta_{j-2} B|^2) \right] \quad \text{(indépendance des incréments)} \\
&= \frac{\sigma^4}{(K-2)^2} \left[ (K-2)\Delta t^2 + (K-4)(K-3)\Delta t^2 \mu_1^4 + 2(K-3)\Delta t^2 \mu_1^2 \right],
\end{align*}
$$

où l'on a utilisé les faits suivants :
1. $\mathbb{E}(|\Delta_j B|^2) = \Delta t,$

2. $\mathbb{E}(|\Delta_j B|) = \mu_1 \sqrt{\Delta t}$, avec $\mu_1 = \sqrt{2/\pi}$,

3. les termes croisés pour $k < j - 1$ donnent $(K - 4)(K - 3)$ combinaisons,

□

**Lemme 2.** On se place sous l'hypothèse $\mathcal{H}$. Alors, le lemme 1 se généralise :

$$ \mathbb{E}(\hat{\sigma}_{t_i}^4) = \frac{\bar{\sigma}^4}{(K-2)^2} \left( (K-2)\Delta t^2 + (K-4)(K-3)\Delta t^2 \mu_1^4 + 2(K-3)\Delta t^2 \mu_1^2 \right), $$

$$ \text{avec } \bar{\sigma}^2 = \frac{1}{\Delta t(K-2)} \int_{t_{i-K+1}}^{t_{i-1}} \sigma_s^2 ds $$

*Démonstration.* On a :

$$ \begin{aligned} \mathbb{E}(\hat{\sigma}_{t_i}^4) &= \mathbb{E} \left[ \left( \frac{1}{K-2} \sum_{j=i-K+2}^{i-1} \sigma_j \sigma_{j-1} |\Delta_j B| |\Delta_{j-1} B| \right)^2 \right] \\ &= \mathbb{E} \left[ \left( \frac{1}{K-2} \sum_{j=i-K+2}^{i-1} (\sigma_j \sigma_{j-1} - \bar{\sigma}^2) |\Delta_j B| |\Delta_{j-1} B| + \frac{1}{K-2} \sum_{j=i-K+2}^{i-1} \bar{\sigma}^2 |\Delta_j B| |\Delta_{j-1} B| \right)^2 \right]. \end{aligned} $$

En utilisant la régularité de $\sigma_t$, on peut montrer de manière similaire à la preuve du théorème 4 que le premier terme à l'intérieur du carré est négligeable devant le second. On peut ainsi se ramener au cas du lemme 1 et on a le résultat souhaité. □

On déduit alors de ces deux lemmes le résultat suivant.

**Théorème 5.** On se place sous l'hypothèse $\mathcal{H}$. On a alors,

$$ \mathrm{Var}(\hat{\sigma}_{t_i}^2) \approx \frac{\bar{\sigma}^4 + 2\mu_1^2}{K} \Delta t^2 \quad \text{lorsque } K \to \infty. $$

*Démonstration.* On a : $\mathrm{Var}(\hat{\sigma}_{t_i}^2) = \mathbb{E}(\hat{\sigma}_{t_i}^4) - \mathbb{E}(\hat{\sigma}_{t_i}^2)^2$.

Or, d'après le théorème 4, pour $\Delta t$ suffisamment petit, on peut écrire :

$$ \mathbb{E}(\hat{\sigma}_{t_i}^2) \approx \frac{\mu_1^2}{K-2} \int_{t_{i-K+1}}^{t_{i-1}} \sigma_s^2 ds = \mu_1^2 \Delta t \bar{\sigma}^2, $$

$$ \text{avec } \bar{\sigma}^2 = \frac{1}{\Delta t(K-2)} \int_{t_{i-K+1}}^{t_{i-1}} \sigma_s^2 ds. $$

Ainsi,

$$ \begin{aligned} \mathrm{Var}(\hat{\sigma}_{t_i}^2) &\approx \frac{\bar{\sigma}^4}{(K-2)^2} \left( (K-2)\Delta t^2 + (K-4)(K-3)\Delta t^2 \mu_1^4 + 2(K-3)\Delta t^2 \mu_1^2 \right) - \mu_1^4 \Delta t^2 \bar{\sigma}^4 \\ &\approx \frac{\bar{\sigma}^4 + 2\mu_1^2}{K} \Delta t^2 \quad \text{lorsque } K \to \infty. \end{aligned} $$

□
Lorsque le nombre d'observations *K* est suffisamment grand, la variance de l'estimateur décroit de façon quadratique par rapport à $\Delta t$. Celui-ci est donc d'autant plus intéressant que la fréquence des données est élevée.

Cela nous permet enfin d'énoncer le résultat de consistance de l'estimateur.

**Théorème 6.** Sous l'hypothèse $\mathcal{H}$, l'estimateur de la variation bipuissance $\hat{\sigma}_{t_i}^2$ est consistant, c'est-à-dire que pour tout $\varepsilon > 0$,

$$ \mathbb{P} \left( \left| \hat{\sigma}_{t_i}^2 - \frac{\mu_1^2}{K-2} \int_{t_{i-K+1}}^{t_{i-1}} \sigma_s^2 ds \right| > \varepsilon \right) \underset{K \to \infty}{\longrightarrow} 0. $$

*Démonstration.* On pose

$$ \theta = \frac{\mu_1^2}{K-2} \int_{t_{i-K+1}}^{t_{i-1}} \sigma_s^2 ds. $$

Par l'inégalité de Bienaymé-Tchebychev, on a pour tout $\varepsilon > 0$,

$$ \mathbb{P} \left( \left| \hat{\sigma}_{t_i}^2 - \mathbb{E}(\hat{\sigma}_{t_i}^2) \right| > \varepsilon \right) \le \frac{\mathrm{Var}(\hat{\sigma}_{t_i}^2)}{\varepsilon^2}. $$

Or à hautes fréquences, $\mathbb{E}(\hat{\sigma}_{t_i}^2) \approx \theta$ et comme $\lim_{K \to \infty} \mathrm{Var}(\hat{\sigma}_{t_i}^2) = 0$, on en déduit que

$$ \lim_{K \to \infty} \mathbb{P} \left( \left| \hat{\sigma}_{t_i}^2 - \theta \right| > \varepsilon \right) = 0, $$

ce qui montre la convergence en probabilité de $\hat{\sigma}_{t_i}^2$ vers $\theta$, donc la consistance de l'estimateur. $\square$

Maintenant que nous avons établi des résultats satisfaisants sur cet estimateur, on peut tester son efficacité en le comparer avec l'estimateur de la variation quadratique.

## 4.5 Comparaison avec l'estimateur de la variation quadratique

En simulant le cours d'un actif avec des sauts ponctuels, nous pouvons observer empiriquement la différence de comportement entre l'estimateur de la variation bipuissance et l'estimateur classique de la variation quadratique, défini par :

$$ \tilde{\sigma}_{t_i}^2 = \frac{1}{K-2} \sum_{j=i-K+2}^{i-1} |X_{t_j} - X_{t_{j-1}}|^2. $$

Nous avons simulé, en Python, le cours d'un actif suivant un modèle de type Merton avec sauts.

$$ dX_t = \mu dt + \sigma dB_t + Y_t dJ_t \quad (4.11) $$

avec l'apparition de sauts $(J_t)_{t \ge 0}$ suivant un processus de Poisson de paramètre $\lambda$ et l'intensité des sauts $(Y_t)_{t \ge 0}$ suivant une loi log-normale mixte sur $\mathbb{R}_+$ et $\mathbb{R}_-$.

Les figures 4.1 et 4.2 illustrent l'évolution des deux estimateurs sur deux trajets simulées du cours de l'actif avec $\lambda = 5$ et $\sigma = \sigma_{réel} = 10^{-3}$.
<figure><img src="image_27.png" /><figcaption>FIGURE 4.1 – Évolution des deux estimateurs sur une première trajectoire simulée.</figcaption></figure>

<figure><img src="image_28.png" /><figcaption>FIGURE 4.2 – Évolution des deux estimateurs sur une seconde trajectoire simulée.</figcaption></figure>

Ces résultats illustrent bien que l’estimateur de la variation bipuissance est moins sensible aux sauts que celui de la variation quadratique classique, ce qui justifie notre choix.

En effet, le principe est que, contrairement à la somme des carrés des variations (estimateur quadratique classique), la somme des produits de variations consécutives est moins affectée par un saut isolé. Ainsi, un saut ponctuel n’impacte au plus qu’un seul terme de la somme, tandis qu’il peut dominer l’estimateur quadratique. Pour une comparaison théorique plus approfondie, nous renvoyons le lecteur à l’article de E. Barndorff-Nielsen et N. Shepard [4].
## 4.6 Statistique de test

Pour le test, on utilisera la statistique de test développée dans l'article de S. Lee et P. Mykland [8] :

$$L(i) = \frac{X_{t_i} - X_{t_{i-1}}}{\hat{\sigma}_{t_i}}$$

où $(X_t)_{t \ge 0}$ correspond au log prix de l'actif et $(\hat{\sigma}_{t_i})$ est notre estimateur de la variation bipuissance. On a alors le résultat suivant :

**Théorème 7.** La statistique de test $L(i)$ a les comportements suivant sur les intervalles $(t_{i-1}, t_i]$ :

1. Sous $(H_0)$ (absence de saut),

$$L(i) \approx \frac{U}{\mu_1} \qquad (4.12)$$

avec $U \sim N(0, 1)$ et $\mu_1 = \sqrt{\frac{2}{\pi}}$.

2. Sous $(H_1)$ (présence de saut à un instant $\tau \in (t_{i-1}, t_i]$),

$$L(i) \approx \frac{U}{\mu_1} + \frac{Y(\tau)}{\mu_1 \sigma \sqrt{\Delta t}} \qquad (4.13)$$

avec $Y(\tau)$ l'intensité du saut au temps $\tau$ et $\Delta t$ le pas de temps.
En particulier, $L(i) \to +\infty$ lorsque $\Delta t \to 0$.

*Démonstration.* On peut se référer aux théorèmes 1 et 2 de l'article de S. Lee et P. Mykland [8]. □

Ainsi, pour détecter la présence d'un saut sur l'intervalle $(t_{i-1}, t_i]$, on compare $L(i)$ à la distribution de référence $N(0, 1/\mu_1^2)$. Si $L(i)$ s'écarte significativement de cette distribution (typiquement en dépassant un seuil critique), on rejette $H_0$ et on conclut à la présence probable d'un saut.

## 4.7 Simulations

Nous appliquons désormais ce test sur des données simulées et analysons les résultats.

Pour cela, nous simulons un actif suivant un modèle fixé en utilisant une discrétisation de type Euler-Maruyama.

### 4.7.1 Modèle de Merton

Nous avons choisi dans un premier temps d'étudier un modèle de type Merton avec sauts, défini par :

$$dX_t = \mu dt + \sigma dB_t + Y_t dJ_t \qquad (4.14)$$

avec l'apparition de sauts $(J_t)_{t \ge 0}$ suivant un processus de Poisson de paramètre $\lambda$ et l'intensité des sauts $(Y_t)_{t \ge 0}$ suivant une loi log-normale.
Nous choisissons ensuite un niveau de confiance $\alpha \in [0, 1]$ qui permet, via la fonction quantile de la loi normale, de fixer le seuil de rejet de l'hypothèse nulle $H_0$ (et donc de détecter un saut).

Voici les résultats obtenus pour un premier cours simulé de $N = 1000$ valeurs en prenant $\alpha = 0.95$ :

<figure><img src="image_29.png" /><figcaption>FIGURE 4.3 – Cours simulé pour $\alpha = 0.95$</figcaption></figure>

<table><caption>TABLE 4.1 – Matrice de confusion pour $\alpha = 0.95$</caption><thead><tr><th>Classe réelle \ prédite</th><th>Pas de saut</th><th>Saut</th></tr></thead><tbody><tr><td>Pas de saut</td><td>923</td><td>22</td></tr><tr><td>Saut</td><td>0</td><td>55</td></tr></tbody></table>

Pour évaluer quantitativement ces résultats, on peut utiliser la fonction de score $F_1$, définie comme :

$$F_1 = 2 \cdot \frac{\text{Précision} \cdot \text{Rappel}}{\text{Précision} + \text{Rappel}},$$

où la Précision est le rapport entre le nombre de vrais positifs et le nombre total de prédictions positives, et le Rappel est le rapport entre le nombre de vrais positifs et le nombre total de cas réellement positifs.

Ici on obtient un score $F_1$ de : 0.8333. La matrice de confusion est donnée dans la table 4.1.

On remarque que notre test ici prédit trop de sauts et que toutes les erreurs proviennent de sauts prédits à tort. On déduit donc que notre confiance $\alpha = 0.95$ n'est pas adaptée. On décide donc d'être plus strict en réalisant une nouvelle simulation avec $\alpha = 0.995$.

Nous obtenous alors un score $F_1$ de : 0.9734. La matrice de confusion est donnée dans la table 4.2.
<figure><img src="image_30.png" /><figcaption>FIGURE 4.4 – Cours simulé pour $\alpha = 0.995$</figcaption></figure>

<table><caption>TABLE 4.2 – Matrice de confusion pour $\alpha = 0.995$</caption><thead><tr><th>Classe réelle \ prédite</th><th>Pas de saut</th><th>Saut</th></tr></thead><tbody><tr><td>Pas de saut</td><td>942</td><td>0</td></tr><tr><td>Saut</td><td>3</td><td>55</td></tr></tbody></table>

Ces résultats sont très bons mais encore une fois toutes les erreurs proviennent d'une même case de la matrice de confusion : sauts réels non prédits. Nous avons donc sans doute été trop stricts dans notre test avec une valeur de $\alpha$ trop élevée. L'idée serait alors de trouver la valeur de l'hyperparamètre $\alpha$ qui soit optimale pour la détection de sauts dans notre modèle.

### 4.7.2 Recherche sur grille (Gridsearch)

Dans notre cas, la fonction de score $F_1$ n'étant pas régulière, les méthodes d'optimisation classiques telles que la descente de gradient ne sont pas appropriées. Une approche plus adaptée consiste à effectuer une recherche sur grille (gridsearch), en testant différentes valeurs de $\alpha$ et en conservant celle qui maximise le score $F_1$.

Nous effectuons ainsi une première recherche sur grille pour $\alpha \in \{0.9, 0.95, 0.99, 0.995, 0.999, 0.9995, 0.9999\}$, afin d'obtenir un ordre de grandeur de la valeur optimale. Pour chaque valeur de $\alpha$, nous simulons l'actif sur $N = 1000$ observations, selon la même procédure que précédemment. Les résultats obtenus sont présentés ci-dessous :

<table><caption>TABLE 4.3 – Résultats du premier gridsearch</caption><tr><th>Valeur de α</th><td>0.9</td><td>0.95</td><td>0.99</td><td>0.995</td><td>0.999</td><td>0.9995</td><td>0.9999</td></tr><tr><th>Score F<sub>1</sub></th><td>0.4926</td><td>0.6086</td><td>0.9126</td><td>0.9504</td><td>0.8602</td><td>0.8607</td><td>0.8400</td></tr></table>
En supposant que la fonction $\alpha \mapsto F_1(\alpha)$ présente un comportement globalement unimodal, on peut estimer que la valeur optimale de $\alpha$ se situe autour de 0,995.

Une seconde recherche est alors menée sur un intervalle restreint : $\alpha \in \{0.9935, 0.9940, 0.9945, 0.9950, 0.9955, 0.9960, 0.9965\}$. Les résultats obtenus sont les suivants :

<table><caption>TABLE 4.4 – Résultats du second gridsearch</caption><tr><td>Valeur de α</td><td>0.9935</td><td>0.9940</td><td>0.9945</td><td>0.9950</td><td>0.9955</td><td>0.9960</td><td>0.9965</td></tr><tr><td>Score F<sub>1</sub></td><td>0.9887</td><td>0.9574</td><td>0.9879</td><td>0.9734</td><td>0.9803</td><td>0.9873</td><td>0.9347</td></tr></table>

On observe que les scores obtenus sont relativement proches les uns des autres, ce qui suggère que nous avons atteint un plateau de performance. Les légères variations entre les scores peuvent être attribuées à la variabilité de la simulation. Il ne semble donc pas pertinent de raffiner davantage la recherche. La valeur $\alpha = 0.995$ apparaît comme un compromis satisfaisant.

En conclusion, lorsque l'on modélise un actif à l'aide d'un processus de Merton avec sauts, le test de Lee et Mykland s'avère particulièrement efficace pour détecter les discontinuités. Toutefois, le choix du seuil de confiance $\alpha$ reste crucial : une valeur trop faible entraîne un excès de faux positifs, tandis qu'une valeur trop élevée réduit la capacité de détection. La recherche sur grille constitue donc une méthode robuste pour ajuster ce paramètre, et l'analyse menée nous conduit à retenir $\alpha = 0,995$ comme valeur optimale.

### 4.7.3 Modèle de Kou

Désormais, nous souhaitons étudier une nouvelle dynamique de sauts. Notre actif suivra un modèle de Kou, défini par :

$$dX_t = \mu dt + \sigma dB_t + Z_t dJ_t \quad (4.15)$$

avec l'apparition de sauts $(J_t)_{t \ge 0}$ suivant toujours un processus de Poisson de paramètre $\lambda$, mais cette fois-ci l'intensité des sauts $(Z_t)_{t \ge 0}$ suit une loi exponentielle mixte sur $\mathbb{R}_-$ et $\mathbb{R}_+$.

Nous réalisons alors le même test que précédemment sur un cours simulé de $N = 1000$ valeurs, en prenant un niveau de confiance $\alpha = 0.995$. Voici les résultats obtenus :
<figure><img src="image_31.png" /><figcaption>FIGURE 4.5 – Cours simulé avec $\alpha = 0.995$</figcaption></figure>

<table><caption>TABLE 4.5 – Matrice de confusion pour $\alpha = 0.995$</caption><thead><tr><th>Classe réelle \ prédite</th><th>Pas de saut</th><th>Saut</th></tr></thead><tbody><tr><td>Pas de saut</td><td>956</td><td>3</td></tr><tr><td>Saut</td><td>32</td><td>9</td></tr></tbody></table>

Score $F_1$ : 0.3333

Les résultats sont très mauvais, en particulier la plupart des sauts n'ont pas été détectés. On peut donc penser que nous avons été trop stricts ici en prenant $\alpha = 0.995$. Comme précédemment, nous pouvons réaliser une recherche sur grille (gridsearch) pour déterminer une valeur de $\alpha$ plus appropriée.

Nous aeffectuons donc un gridsearch pour $\alpha \in \{0.9, 0.95, 0.99, 0.995, 0.999, 0.9995, 0.9999\}$. Nous obtenons alors les résultats suivants :

<table><caption>TABLE 4.6 – Résultats du gridsearch</caption><thead><tr><th>Valeur de α</th><th>0.9</th><th>0.95</th><th>0.99</th><th>0.995</th><th>0.999</th><th>0.9995</th><th>0.9999</th></tr></thead><tbody><tr><th>Score F<sub>1</sub></th><td>0.2488</td><td>0.2535</td><td>0.3661</td><td>0.3448</td><td>0.4117</td><td>0.2333</td><td>0.2325</td></tr></tbody></table>

Le meilleur résultat correspond donc à $\alpha = 0.999$ avec un score $F_1$ de 0.4117, ce qui est relativement faible.

Nous avons donc une nette baisse des scores lorsque l'on passe d'un actif où l'intensité des sauts est modélisée par une loi log-normale (Modèle de Merton) à un actif où celle-ci est modélisée par une loi exponentielle (Modèle de Kou). Cette nette dégradation de performance interroge. Nous en proposerons une explication dans la partie suivante.
## 4.8 Analyse des résultats

Avant de commencer notre analyse, rappelons les définitions des lois log-normale et exponentielle.

**Définition 13.** Une variable aléatoire X est dite suivre une loi log-normale de paramètres $\mu$ et $\sigma^2$, si la variable Y = ln(X) suit une loi normale d'espérance $\mu$ et de variance $\sigma^2$.

La densité de probabilité de X est alors donnée par :

$$f_X(x) = \frac{1}{x\sigma\sqrt{2\pi}} \exp\left(-\frac{(\ln x - \mu)^2}{2\sigma^2}\right), \quad x > 0.$$

On peut représenter graphiquement cette densité comme ci-dessous :

<figure><img src="image_32.png" /><figcaption>FIGURE 4.6 – Densité de la loi log-normale pour différentes valeurs de $\sigma$</figcaption></figure>

**Définition 14.** Une variable aléatoire X suit une loi exponentielle de paramètre $\lambda > 0$ si sa densité de probabilité est donnée par :

$$f_X(x) = \lambda e^{-\lambda x}, \quad x \ge 0.$$

De même, on peut représenter graphiquement cette densité comme ci-dessous :
<figure><img src="image_33.png" /><figcaption>FIGURE 4.7 – Densité de la loi exponentielle pour différentes valeurs de λ</figcaption></figure>

On observe que la loi exponentielle génère des sauts dont les amplitudes sont généralement beaucoup plus proches de zéro que ceux produits par une loi log-normale. Ainsi, lorsque les sauts suivent une loi exponentielle, ils sont en moyenne moins marqués, ce qui rend leur détection nettement plus difficile. En effet, si l'amplitude d'un saut est du même ordre de grandeur que les fluctuations du mouvement brownien, il devient pratiquement impossible de les distinguer.

Ce phénomène est confirmé par les résultats de S. Asmussen et J. Rosiński [2], qui montrent que la superposition d'un grand nombre de petits sauts peut s'apparenter à un mouvement brownien. Dans ce contexte, il est donc peu pertinent de chercher à identifier individuellement ces petits sauts.

Notre objectif est justement de détecter des sauts significatifs, c'est-à-dire ceux qui reflètent un véritable choc de marché. Les sauts de faibles amplitudes, eux, peuvent être absorbés dans la volatilité du modèle. En d'autres termes, un actif modélisé par une forte volatilité continue ou par une somme de nombreux petits sauts produit un comportement similaire. On peut donc se ramener à la seule étude des sauts significatifs.

Dans un modèle de Hawkes, si l'on souhaite que l'intensité des sauts soit influencée par les petits sauts, il est alors pertinent de faire dépendre cette intensité de la volatilité elle-même, comme proposé par I. Raffaelli, S. Scotti et G. Toscano [10].

En conclusion, les performances dégradées de notre test dans le cas du modèle de Kou ne remettent pas en cause sa pertinence. Il s'est révélé efficace pour détecter les sauts d'amplitudes significatives, ce qui constitue précisément l'objectif visé.
Conclusion

En résumé, dans mon projet recherche, je me suis d'abord intéressé aux notions
de processus stochastiques en temps continus (martingales, mouvements browniens),
puis à la théorie du calcul stochastique (intégrale stochastique, calcul d'Itô). J'ai en-
suite utilisé ces notions pour modéliser des cours d'actifs financiers. J'ai commencé
par des modèles simples, comme celui de Black-Scholes, avant d'en étudier de plus
complexes intégrant des processus de sauts (modèles de Kou et de Merton). En-
fin, j'ai étudié le modèle de I. Raffaelli, S. Scotti et G. Toscano [10], qui combine
processus de Hawkes et volatilité stochastique.

L'analyse de ce dernier modèle m'a confronté à une problématique sous-jacente :
comment détecter les sauts dans des cours d'actifs financiers ? Cette détection est en
effet nécessaire pour ajuster l'intensité du processus de sauts. J'ai donc choisi d'ap-
prondir ce sujet, en m'appuyant sur l'article de S. Lee et P. Mykland [8]. J'ai mené
une analyse statistique sur des données simulées afin d'évaluer la performance du
test selon le modèle étudié. J'ai pu alors constater que lorsque l'amplitude des sauts
est trop faible, ils deviennent indétectables. Toutefois, les résultats de S. Asmussen
et J. Rosinski [2], montrent que la détection de sauts de faibles amplitudes n'est
pas nécessairement pertinente, car un modèle avec une faible volatilité et une forte
intensité de petits sauts est équivalent à un modèle à forte volatilité : de nombreux
petits sauts peuvent être approchés par un mouvement brownien. Ainsi, dans un
processus de Hawkes, il semble plus judicieux de mettre à jour le terme exponen-
tiel de l'intensité des sauts uniquement lorsqu'ils sont significatifs, quitte à intégrer
ensuite un terme dépendant de la volatilité dans le calcul de l'intensité, comme le
propose I. Raffaelli, S. Scotti et G. Toscano [10]. On peut donc se ramener à la seule
 étude des sauts d'amplitudes significatives.

Il y a néanmoins certains points que j'aurais souhaité aborder dans ce projet
mais que je n'ai pas eu le temps de développer. J'aurais d'abord aimé appliquer le
test de Lee et Mykland [8] directement au modèle de I. Raffaelli, S. Scotti et G.
Toscano [10], afin d'étudier l'impact de la volatilité stochastique sur la détection des
sauts. J'aurais également voulu comparer ce test avec celui de O. Barndorff-Nielsen
et N. Shephard [3], qui repose sur une approche différente. Par ailleurs, j'aurais
aimé utiliser le test de S. Lee et P. Mykland [8] sur des données financières réelles.
Cependant, les données boursières hautes fréquences sont souvent difficiles d'accès,
ce qui a été un frein. Enfin, une piste intéressante aurait été d'exploiter la détection
de sauts dans des modèles de gestion des risques ou de valorisation d'options.

Finalement, ce projet m'a permis de développer mes compétences en calcul sto-
chastique, en modélisation d'actifs ainsi qu'en analyse statistique. Je suis certain
que ces compétences me seront d'une forte utilité pour mon parcours professionnel.
Au-delà des aspects techniques, cette expérience m'a aussi permis de m'initier au monde de la recherche, et a conforté mon envie de réaliser une thèse, qu'elle soit académique ou industrielle.
Bibliographie

[1] Loubna Ben ALLAL. *Processus de Hawkes*. Rapport de projet recherche et stage, disponible sur HAL: https://hal.science/hal-02947341. 2020.

[2] Soren ASMUSSEN et Jan ROSINSKI. « Approximations of Small Jumps of Lévy Processes with a View Towards Simulation ». In : *Journal of Applied Probability* 38.2 (2001), p. 482-493. JSTOR : 3215901.

[3] Ole E. BARNDORFF-NIELSEN et Neil SHEPHARD. « Econometrics of Testing for Jumps in Financial Economics Using Bipower Variation ». In : *Journal of Financial Econometrics* 4.1 (2005), p. 1-30. ISSN : 1479-8409, 1479-8417. DOI : 10.1093/jjfinec/nbi022.

[4] Ole E. BARNDORFF-NIELSEN et Neil SHEPHARD. « Power and Bipower Variation with Stochastic Volatility and Jumps ». In : *Journal of Financial Econometrics* 2.1 (2004), p. 1-37. ISSN : 1479-8409, 1479-8417. DOI : 10.1093/jjfinec/nbh001.

[5] Clément DOMBRY. *Master Modélisation Statistique M2 Finance - chapitre 4 Mouvement Brownien et modèle de Black-Scholes*. Présentation de cours, Université de Franche-Comté.

[6] Monique JEANBLANC. *Cours de Calcul stochastique*. Polycopié de cours, Master 2IF Evry. 2006.

[7] Damien LAMBERTON et Bernard LAPEYRE. *Introduction au calcul stochastique appliqué à la finance*. 3e éd. Paris : Ellipses, 2012. ISBN : 978-2-7298-7198-7.

[8] Suzanne S. LEE et Per A. MYKLAND. « Jumps in Financial Markets : A New Nonparametric Test and Jump Dynamics ». In : *Review of Financial Studies* 21.6 (2008), p. 2535-2563. ISSN : 0893-9454, 1465-7368. DOI : 10.1093/rfs/hhm056.

[9] Bernt Karsten ØKSENDAL. *Stochastic Differential Equations : An Introduction with Applications*. 6th ed., corrected third printing 2005. Universitext. Berlin : Springer, 2005. ISBN : 978-3-540-04758-2.

[10] Iacopo RAFFAELLI, Simone SCOTTI et Giacomo TOSCANO. « Hawkes-Driven Stochastic Volatility Models : Goodness-of-Fit Testing of Alternative Intensity Specifications with S & P500 Data ». In : *Annals of Operations Research* 336.1-2 (2024), p. 27-45. ISSN : 0254-5330, 1572-9338. DOI : 10.1007/s10479-022-04924-9.
[11] Denis VILLEMONAIS. *Probabilités pour l'étude des processus stochastiques en temps discret*. Polycopié de cours, Mines Nancy. 2023.
# Annexe

Nous présentons dans l'annexe les codes développés pour obtenir les simulations.

Estimation des paramètres d'un cours financier selon le modèle de Black & Scholes par méthode de Monte-Carlo :

def parametres(indice='AAPL', date_debut= '2024-01-01', date_fin= '2024-12-31'):

```python
# On télécharge les données financières grâce au package
-> yfinance
data = yf.download(indice, start = date_debut, end = date_fin)
```

```python
prix_ouverture = data["Open"].squeeze().tolist()
# La liste prix_ouverture contient alors le prix de l'actif
-> lors de l'ouverture quotidienne de la bourse
```

```python
log_S = np.log(prix_ouverture)
d_log_S = np.diff(log_S)
T = len(d_log_S)
```

```python
# On utilise les estimateurs de l'esperance et de la variance
est_esperance = 1/T * sum(d_log_S)
est_variance = 1/T * sum([x**2 for x in d_log_S]) - est_esperance**2
-> est_esperance**2
```

```python
sigma Journalier = math.sqrt est_variance)
rendement Journalier = est_esperance + (sigma Journalier**2)/2
```

```python
# Il y a 252 jours de bourse par an, et les variances et
-> rendements trouvées sont ceux d'une seule journée
sigma_annuel = mathsqrt(252) * sigma_journalier
rendement_annuel = 252* rendement_journalier
```

```python
# On renvoie le rendement et la volatilité annuels
return(rendement_annuel, sigma_annuel)
```

Simulation d'un actif avec le modèle de Kou (les amplitudes des sauts suivent des loi exponentielles) :
# Modèle de Kou (loi exponentielle)

def nu(lambz, pneg):
    U = randomhea
    if U <= pneg:
        z = -rando
    else :
        z = rando
    return z

def simu_actif(mu = 10**-5, sigma = 10**-3, s0 = 1000, T = 1, N =
  200, lamb = 5, lambz = 0.2, pneg = 0.5) :
    dt = T/N

# Initialisation de la trajectoire

S = np .zeros(N)
S[0] = s0
T_sauts = []
time_grid = np .linspace(0, T, N)

# Simulation de la trajectoire avec le schéma d'Euler-Maruyama
for t in range(1, N):

U = randomhea
if U <= lamb*dt : # Cas avec saut
    T_sauts.append(t)
    z = nu(lambz, pneg)
    Z = np.random
    S[t] = S[t-1] + mu * S[t-1] * dt + sigma * S[t-1] *
          np.floordt) * Z + z

else :
    Z = np.random
    S[t] = S[t-1] + mu * S[t-1] * dt + sigma * S[t-1] *
          np.floordt) * Z

cours_simule = pd .DataFrame(S, index =time_grid, columns = ["Prix
  de l'actif"])
return cours_simule, T_sauts

Simulation d'un actif avec un modèle de Merton avec sauts (les amplitudes des sauts suivent des loi log normales) :

# Modèle de Merton (log normale)

def nu2(moy,ec_t,pgn,C):
    u = np .random .uniform()
    if u > pneg :
```python
return C*np.random.lognormal(mean=moy, sigma=ec_t)
else :
    return -C*np.random.lognormal(mean=moy, sigma=ec_t)
```

```python
def simu_actif(mu = 10**-5, sigma = 10**-3, s0 = 1000, T = 1, N =
  1000, lamb = 5, moy = 0, ec_t = 0.0, C = 0.5, pneg = 0.8) :
    dt = T/N
```

### Initialisation de la trajectoire

```python
S = np(zeros(N))
S[0] = s0
time_grid = np.linspace(0, T, N)
T_sauts = []
```

### Simulation de la trajectoire avec le schéma d'Euler-Maruyama

```python
for t in range(1, N):
```

```python
    U = randomhea uniform(0,1)
    if U <= lamb * dt:  # Cas avec saut
        T_sauts.append(t * dt)
        z = nu2(moy,ec_t, pneg,C)
        Z = np.random .normal(0, 1)
        S[t] = S[t-1] + mu * S[t-1] * dt + sigma * S[t-1] *
              np .sqrt(dt) * Z + z
```

```python
else :
    Z = np.random .normal(0, 1)
    S[t] = S[t-1] + mu * S[t-1] * dt + sigma * S[t-1] *
          np .sqrt(dt) * Z
```

```python
cours_simule = pd .Frame(S, index =time_grid, columns =["Prix de
  l'actif"])
return cours_simule, T_sauts
```

Simulation d'un actif selon le modèle de I.Raffaelli, S.Scotti et G.Toscano
[10] :

### Fonction qui renvoie la trajectoire d'un brownien

```python
def Brownien(h,N):
    D = np.random .normal(0,math .sqrt(h),N)
    B = np .cumsum(D)
    return B
```

### On choisit la mesure de proba pour obtenir l et z :
```python
def nu(lambl, lambz, pneg):
    l = random.expovariate(1/lambl)
    U = randomhea
    if U <= pneg :
        z = -random.expovariate(1/lambz)
    else :
        z = random.expovariate(1/lambz)
    return l,z
```

```python
def modele(X0, V0, mu, alpha, theta, beta, kappa, phi, lamb0, scale,
             lambl, lambz, pneg, periode, h):
    # Nombre total d'itérations selon la période et le pas de temps
    N = int(1 + periode / h)
    print(N)

    # Initialisation des trajectoires du prix (X), de la volatilité
    ↪ → (V),
    # des temps de saut (T), amplitudes des sauts de volatilité
    ↪ → (L),
    # des sauts sur le prix (Z) et de l'intensité lambda
    X = [X0]
    V = [V0]
    T = []
    L = []
    Z = []
    lamb = [lamb0]

    # Génération de deux mouvements browniens indépendants (bruit
    ↪ → sur X et V)
    B1 = Brownien(h, N)
    B2 = Brownien(h, N)

    # Boucle de discrétisation temporelle
    for k in range(1, N):
        U = randomhea
        # --- Cas où un saut survient ---
        if U <= lamb[k - 1] * h:
            # On enregistre l'instant du saut
            T.append(k * h)
            # On tire un couple (l,z) représentant l'intensité du
            ↪ → saut sur V et sur X
            l, z = nu(lambl, lambz, pneg)
            L.append(l)
            Z.append(z)
```
# Mise à jour du prix X

X.append(X[k - 1]
+ mu * h
+ math.hsqrt(V[k - 1]) * (B1[k] - B1[k - 1])
- 0.5 * V[k - 1] * h
+ z)

# Mise à jour de la variance V

V.append(max(0, V[k - 1]
+ kappa * (phi - V[k - 1]) * h
+ scale * (B2[k] - B2[k - 1])
+ 1))

# --- Cas sans saut ---

else:

# Mise à jour du prix X sans saut

X.append(X[k - 1]
+ mu * h
+ math.hsqrt(V[k - 1]) * (B1[k] - B1[k - 1])
- 0.5 * V[k - 1] * h)

# Mise à jour de la volatilité V sans saut

V.append(max(0, V[k - 1]
+ kappa * (phi - V[k - 1]) * h
+ scale * (B2[k] - B2[k - 1])))

# Mise à jour de l'intensité _k, dépendante des sauts
→ passés (effet Hawkes) et de la variance

lambda.append(mu
+ alpha * sum([math.exp(-beta * (k * h - Ti)) for
  Ti in T])
+ theta * V[k]))

# On retourne les trajectoires simulées

return X, V, T, L, Z, lambda

Calcul des estimateurs de la volatilité locale :

def est_vol(prices, K = 10):

returns = np.log(prices).diff().dropna()

# Estimation de la volatilité locale avec l'estimateur de la
→ variation bipuissance

sigma = np zesos(len(returns))
```python
for i in range(len returns):
    l = [abs returns iloc[j] * returns iloc[j+1]) for j in
         range max(i - K + 2, 0), max(i, len returns -1)) ]
    sigma[i] = np sqrt( 1/len(1) * sum(1))
    sigma = pd DataFrame sigma, index=returns index, columns =
         ['sigma'])
```

return sigma

```python
def est_vol_naif(prices, K = 10):
    returns = np.log(prices).diff().dropna()
    # Estimation de la volatilité locale avec l'estimateur de la
    # variation quadratique
    sigma = np zeros(len(returns))
    for i in range(len(returns)):
        l = [returns iloc[j]**2 for j in range(max(i - K + 2, 0),
                                                max(i, len(returns) -1))]
        sigma[i] = np sqrt( 1/len(1) * sum(1))
        sigma = pd DataFrame sigma, index=returns index, columns =
             ['sigma'])
    return sigma
```

Test de S. Lee et P. Mykland [8] :

```python
def lee_mykland jump_test(prices, alpha= 0.995, K =10):
    # Calcul des rendements logarithmiques
    returns = np.log(prices).diff().dropna()
    # Estimation de la volatilité locale
    sigma = np zeros(len(returns))
    for i in range(len(returns)):
        l = [abs returns iloc[j] * returns iloc[j+1]) for j in
             range(max(i - K + 2, 0), max(i, len(returns) -1)) ]
        sigma[i] = np sqrt( 1/len(1) * sum(1))
        sigma = pd DataFrame sigma, index=returns index, columns =
             ["Prix
             de l'actif"])
    # Standardisation des rendements
    L = returns / sigma

threshold = norm.ppf(alpha, scale = np sqrt(np pi/2) ) # On
    # utilise scale pour l'écart type de notre loi normale.
```
# Détection des sauts

jumps = abs(L) > threshold

jump_indices = jumps.loc[jumps["Prix de l'actif"] == True].index

→ # Récupère uniquement les lignes où jumps vaut True.

jump_indices_entiers = prices.index.get_indexer(jump_indices)

return jump_indices_entiers, jumps, L, sigma

## Génération de la matrice de confusion :

from sklearn.metrics import confusion_matrix

def matrice_conf(cours_simule, index_sauts_simule, jump_indices):

# Convertir en set pour comparaison rapide

index_sauts_simule_set = set(index_sauts_simule)

jump_indices_set = set(jump_indices)

# Indices temporels du DataFrame

all_indices = range(len(cours_simule))

# Vecteur des vrais sauts (y_true)

y_true = np.array([1 if idx in index_sauts_simule_set else 0 for

→ idx in all_indices])

# Vecteur des sauts prédits (y_pred)

y_pred = np.array([1 if idx in jump_indices_set else 0 for idx in

→ all_indices])

# Calcul de la matrice de confusion en forçant les labels 0 et

→ 1

cm = confusion_matrix(y_true, y_pred, labels=[0,1])

# Création d'un DataFrame pour une meilleure lisibilité

cm DF = pd.DataFrame(cm,

index = ["Pas de saut (réel)", "Saut (réel)"]

columns = ["Pas de saut (prédit)", "Saut

→ (prédit)"]])

return cm DF

## Calcul du score F₁ à partir d'une matrice de confusion :

def score(conf_matrix):

tn, fp, fn, tp = conf_matrix.values.flatten()

# Calcul de la précision et du rappel
precision = tp / (tp + fp) if (tp + fp) != 0 else 0
rappel = tp / (tp + fn)
f1 = 2 * precision * rappel / (precision + rappel)
return f1

## Recherche sur grille (gridsearch) :

```python
# Fonction d'évaluation pour le Grid Search
def evaluation_func(alpha):
```

```python
cours_simule, index_sauts_simule = simu_actif2(T = 10, N = 1000)

jump_indices = lee_mykland jump_test(cours_simule, alpha =
    alpha)

matrice_confusion = matrice_conf(cours_simule,
    index_sauts_simule, jump_indices)

return score matrice_confusion
```

```python
alpha_values = [0.9935, 0.9940, 0.9945, 0.9950, 0.9955, 0.9960,
    0.9965]  # Liste des valeurs de alpha à tester
```

```python
best_score = -np.inf
best_alpha = None
```

```python
# Recherche du meilleur alpha
for alpha in alpha_values:
    score_alpha = evaluation_func(alpha)
    print(f"Testé alpha={alpha}, score={score_alpha}")

if score_alpha > best_score:
    best_score = score_alpha
    best_alpha = alpha
```

```python
print(f"Meilleur alpha : {best_alpha} avec un score de {best_score}")
```