Le marché saute-t-il à cet instant ?

BV est aveugle aux sauts ; RV les voit. Leur ratio est ton détecteur de Lévy.

Une seule question à un bit. Si la variance de ces 60 secondes vient d'une diffusion continue, deux estimateurs convergent vers la même cible et leur écart est ~0. Si elle vient d'un saut isolé, un seul des deux estimateurs l'a vu — l'écart explose. Le ratio J = 1 − BV/RV rend cette dichotomie lisible sur un axe [0, 1].

Définition formelle de BV

Sur la même fenêtre \((t − τ, t]\) que celle qui sert à realized-variance — mêmes retours tick-by-tick r_i, même découpe temporelle — on définit la bipower variation :

\[ \mathrm{BV}(t, \tau) = \frac{\pi}{2} \cdot \sum_{i\ :\ r_i,\ r_{i-1} \in \text{window}} |r_i|\,\cdot\,|r_{i-1}| \]

La constante \(π/2\) vient de l'identité gaussienne \(E[|Z|]² = 2/π\) pour \(Z ∼ 𝒩(0, 1)\). Elle calibre l'estimateur de sorte que, en l'absence de saut, \(BV(t, τ) →_p IV(t, τ)\) — la même integrated variance que RV estime ([Thm. 1, p. ~7] — consistance de la bipower variation vers la variance intégrée du processus continu, en présence d'un terme de sauts purs additif).

C'est précisément cette robustesse-au-saut qui distingue BV de RV : RV consomme \(r²\) (qui intègre les sauts), BV consomme \(|r_i|·|r_{i-1}|\) (qui ne voit que ce qui persiste sur deux ticks consécutifs).

Le jump indicator

Le ratio sans dimension :

\[ J(t, \tau) = 1 - \mathrm{BV}(t, \tau) / \mathrm{RV}(t, \tau) \]

Sémantique à un bit. \(J ≈ 0\) \(\to\) diffusion lisse. \(J → 1\) \(\to\) les sauts dominent la variance court terme. C'est la réponse à un bit à la question wheeler qui donne son titre à cette page.

Borne à fenêtre finie : \(J ∈ [−ε, 1]\) avec \(ε = O(1/N)\) — empiriquement \(ε ≈ c/N\) où la constante c se loge entre 5 et 15 selon la queue de la distribution des retours sur la fenêtre (mesuré sur replays MBP-10 internes, pas dérivé analytiquement ; piste de dérivation propre dans Barndorff-Nielsen & Shephard 2004 §4, fini-sample). Le \(−ε\) est purement fini-sample ; asymptotiquement (\(Δ → 0\)) on aurait \(J ∈ [0, 1]\).

Intuition — pourquoi le produit décroisé est aveugle

Sur retours iid gaussiens centrés de variance \(σ²\), l'identité \(E[|r_i| · |r_{i-1}|] = E[|r_i|]² = (2/π) · σ²\) donne directement \(E[BV] = (π/2) · N · (2/π) · σ² = N · σ² = E[RV]\). Donc \(BV ≈ RV\), \(J ≈ 0\) — la signature d'un régime continu.

Maintenant injecte un saut isolé \(Δ_k\) au tick k. Le saut entre :

Le terme de saut dans BV est donc d'ordre \(|Δ_k| · σ\), linéaire en amplitude, alors qu'il est \(Δ_k²\) dans RV, quadratique. À forte amplitude, l'écart explose. Le ratio bascule. C'est mathématiquement le même mécanisme que la décomposition de Lévy-Khintchine du quadratic variation en partie continue + somme des sauts au carré ([Thm. 1] — qui formalise précisément cette décomposition pour les semi-martingales avec sauts).

Biais fini-sample

L'estimateur naïf surestime systématiquement BV à N petit. La forme de correction la plus simple, héritée de la littérature BNS / Andersen– Bollerslev autour de la realized bipower, est :

\[ \mathrm{BV}_{\text{corrected}} = (1 - 2/N)^{-1} \cdot \mathrm{BV}_{\text{naive}} \]

Le 2/N reflète qu'on perd deux paires utilisables aux bords de la fenêtre (le tout premier et le tout dernier). (Note de probité : Huang & Tauchen 2005, parfois cité pour cette forme exacte, formule en réalité des corrections autour du jump test statistic — pas le \((1 − 2/N)⁻¹\) verbatim. La forme ci-dessus est l'asymptotique standard du biais fini-sample sur BV ; nous ne lui attribuons pas de pater plus précis qu'« usage commun post-BNS 2004 ».)

Deux choses différentes méritent d'être distinguées :

L'écart entre l'asymptotique (2/N) et l'empirique vient de la persistance des retours et de l'autocorrélation des |r_i| — pas d'un bug de mesure ni d'une formule différente. À six mois, si tu veux serrer les chiffres, le seul vrai test est le replay sur ta propre fenêtre.

En pratique. On ne l'applique pas par défaut. À \(N ≥ 600\) (10 min @ 1 Hz), 0.25 % de biais est bien plus petit que le bruit du classifier lui-même — le correctif est cosmétique. À N plus petit (60 s @ 1 Hz), le min-tick guard ci-dessous mord avant que le biais ne devienne géopolitique. On gardera le correctif en réserve si le bruit empirique demande qu'on le réactive.

Pour ton cas

Si tu calcules J sur fenêtre 60 s à chaque tick, c'est exactement la mesure qui distingue « ARM bouge fort mais lisse » (volatilité élevée, processus continu, \(J ≈ 0\)) de « ARM bouge fort par sauts » (régime rugueux Mandelbrot, \(J → 1\)).

Le second est la signature que tu décrivais le 2026-05-10 sur WhatsApp. J la rend lisible sans regarder le prix lui-même — il suffit de comparer deux estimateurs de variance dont l'un ferme les yeux sur les sauts.

Min-tick guard

Sur fenêtre courte avec très peu de samples (N < 30), J est trompeur : un premier return solitaire donne BV = 0 (pas de paire disponible), donc J = 1 artefact qui n'a rien à voir avec un saut physique. Le pipeline applique min_tick_count_short = 30 avant de laisser J alimenter le classifier — voir pivot-j-based §"patches (a) min-tick guard" et docs/adr/0005-classifier-signal-j-based.md §"Patches complémentaires" qui posent les défauts (30, 300) et l'invariant « le classifier ne transitionne pas tant que les deux counts ne dépassent pas ».

Sans ce garde, l'estimateur devient instable — le détecteur sonne en l'absence de saut, simplement parce que la fenêtre est trop maigre pour former assez de paires.

Limites

Adversaire & liens

Références