05 · Stratégie 4 — OFI et microprice¶
La seule stratégie du rapport dont le fondement est directement issu de la littérature académique. Elle est aussi la plus exigeante en latence, et sa meilleure utilisation n'est peut-être pas celle qu'on imagine.
Le calcul de l'OFI¶
Reprenons la définition de Cont, Kukanov & Stoikov (2014). À chaque mise à jour du meilleur bid/ask, on note l'état \((P_b, Q_b, P_a, Q_a)\) et l'on calcule l'incrément :
L'OFI sur une fenêtre est la somme des incréments : \(\text{OFI}(W) = \sum_{n \in W} e_n\).
| Symbole | Signification |
|---|---|
| \(P_b^n, P_a^n\) | meilleurs bid et ask après la \(n\)-ième mise à jour |
| \(Q_b^n, Q_a^n\) | tailles correspondantes, en contrats |
| \(\mathbb{1}_{\{\cdot\}}\) | indicatrice, vaut 1 si la condition est vraie, 0 sinon |
Lecture des quatre termes
- Le bid monte ou est renforcé → pression acheteuse, on ajoute la nouvelle taille.
- Le bid baisse ou est réduit → l'ancienne file disparaît, on la soustrait.
- L'ask baisse ou est renforcé → pression vendeuse, on soustrait.
- L'ask monte (est balayé) → la file vendeuse disparaît, on ajoute.
Le point clé : l'OFI compte les annulations au même titre que les exécutions. Un vendeur qui retire ses ordres exerce une pression haussière sans qu'une seule transaction n'ait lieu. C'est ce que le delta ne voit pas.
Une implémentation Python testée est fournie en
annexe, fonction ofi_increment.
Le microprice¶
Noter l'inversion : la taille de l'ask pondère le prix du bid. Quand la file d'achat est grosse (\(Q_b\) élevé), le microprice se rapproche de l'ask, c'est-à-dire du côté vers lequel le prix a le plus de chances de se déplacer.
Le déséquilibre de file normalisé s'écrit :
Son pouvoir prédictif sur la direction du tick suivant est documenté (Gould & Bonart, 2016).
L'usage réaliste : l'exécution, pas le signal¶
Ce que la latence retail interdit
Le pouvoir prédictif du déséquilibre de file porte sur le prochain changement de prix — quelques dizaines à quelques centaines de millisecondes. Avec une latence de 50 ms ou davantage, l'information est largement consommée avant que votre ordre n'arrive.
Utiliser \(I\) comme signal d'entrée autonome en retail, c'est arriver systématiquement en retard sur un signal exact. C'est le pire des deux mondes : le signal est bon, donc les autres l'ont déjà exploité.
L'usage qui reste accessible est différent, et il est réel :
1. Optimisation du timing d'entrée¶
Une fois qu'une stratégie (absorption, imbalances empilées) a produit un signal long, attendre que \(I > 0{,}6\) avant d'envoyer l'ordre au marché. On économise en moyenne une fraction de tick, sans changer la thèse.
Un demi-tick, ce n'est pas rien
Sur MES, un demi-tick vaut 0,625 $ par contrat. Avec une commission aller-retour de 1,02 $, économiser un demi-tick à l'entrée représente une réduction de 60 % du coût de la commission. Sur 1 000 contrats-trades par mois, cela fait 625 $.
L'optimisation d'exécution est le gain le plus certain et le moins risqué disponible en retail. Il ne requiert aucune prédiction — seulement d'attendre quelques centaines de millisecondes le bon moment dans le cycle du carnet.
2. Filtre de rejet¶
Refuser un signal long si \(I < 0{,}35\) au moment de l'exécution : le carnet contredit franchement la thèse. Filtre simple, sans paramètre à optimiser finement.
3. Confirmation d'absorption¶
L'OFI apporte quelque chose que le delta ne voit pas : distinguer une absorption réelle (le vendeur passif recharge ses ordres, l'OFI reste négatif malgré un delta positif) d'une absorption apparente (le vendeur ne recharge pas, l'OFI suit le delta — le niveau va céder).
C'est probablement le meilleur usage de l'OFI en retail
Cette combinaison exploite précisément l'écart entre delta et OFI, sur un horizon (la durée d'une fenêtre d'absorption, 30 secondes) parfaitement compatible avec une latence de 50 ms. C'est le seul endroit du rapport où un résultat académique établi rencontre une contrainte retail sans être détruit par elle.
La stratégie autonome, pour mémoire¶
Si votre latence est faible (VPS Chicago, moins de 5 ms), une stratégie de retour à la moyenne sur OFI extrême devient envisageable :
| Couche | Spécification |
|---|---|
| Régime | Ratio d'efficience ≤ 0,4, spread stable à 1 tick |
| Déclencheur | \(\lvert\text{OFI}(W)\rvert \ge q_{0,98}\) sur fenêtre de 5 s |
| Sens | Contre l'OFI (retour à la moyenne) |
| Cible | 2 à 4 ticks |
| Stop | 4 à 6 ticks |
| Temps maximal | 30 secondes |
Attention au taux d'équilibre
Une cible de 3 ticks et un stop de 5 ticks sur MES exigent, commissions et slippage inclus, un taux de réussite proche de 70 %. C'est extrêmement élevé. Cette configuration n'a de sens que sur ES (où la friction relative est 2,5 fois plus faible) et avec une latence de quelques millisecondes.
En pratique, si vous avez la latence pour cette stratégie, vous avez la latence pour des choses plus rentables. Elle est documentée ici pour complétude, pas comme recommandation.
Ce qu'il faut mesurer¶
| Mesure | Question |
|---|---|
| Corrélation OFI / variation de prix contemporaine | Retrouvez-vous la relation linéaire de CKS sur vos données ? C'est le test de validité de votre implémentation. |
| Autocorrélation de l'OFI | Sur quel horizon persiste-t-il ? Détermine la fenêtre utile. |
| Gain d'exécution du filtre \(I\) | Mesurez le prix moyen obtenu avec et sans. C'est un test A/B simple. |
| Écart delta / OFI en absorption | Le signe de l'OFI discrimine-t-il les absorptions réussies ? |
Le premier test est un test de code, pas de stratégie
Si vous ne retrouvez pas la relation linéaire entre OFI et variation de prix contemporaine sur vos propres données, votre implémentation est fausse. C'est un résultat robuste et reproduit ; ne pas le retrouver est un diagnostic de bug, pas une découverte.
Résumé¶
- L'OFI compte les ajouts et annulations, pas seulement les exécutions : il voit ce que le delta ne voit pas.
- Son pouvoir prédictif porte sur un horizon trop court pour la latence retail en usage autonome.
- Ses usages accessibles : optimiser le timing d'entrée, filtrer les signaux contredits par le carnet, et confirmer les absorptions.
- Le gain d'exécution d'un demi-tick vaut 60 % de la commission sur MES.
- Retrouver la relation linéaire OFI/prix est un test de validité de votre code.
Chapitre précédent : Sweep et reprise de liquidité · Chapitre suivant : Filtres de contexte et risque