Skip to main content
Il arrive qu’un trader regarde un ordre exécuté et trouve le prix d’exécution aberrant, ou regarde sa ligne de P&L et trouve que le nombre ne colle pas avec son calcul à la main. Cette page explique les sources habituelles d’écarts apparents et ce qu’il faut nous envoyer si, après lecture, vous pensez toujours qu’il y a un vrai bug.

Comment fonctionne l’appariement, vu de haut

Les ordres sur Intention sont appariés à l’intérieur d’IntentionKernel contre un carnet d’ordres central, selon une stricte priorité prix-temps. Le séquencement est déterministe : chaque réplique de la chaîne reproduit le même ordonnancement des messages, donc la même suite d’exécutions. La description complète est sur la page Répartiteur d’ordres et de transactions, et la vue machine à états sur la page IntentionKernel. Pour un ticket portant sur une exécution, la propriété qui compte est celle-ci : il n’y a pas de flux d’ordres privilégié et pas de moteur d’appariement off-chain ; votre ordre et l’ordre qui l’a exécuté sont tous deux inscrits dans le flux canonique de blocs.

Pourquoi le prix d’exécution peut différer du prix affiché

Le nombre affiché à l’écran au moment où vous avez cliqué sur « buy » n’est pas celui auquel vous êtes exécuté, et c’est normal.
  • Le slippage. Un ordre au marché — ou un ordre à cours limité immédiatement exécutable — parcourt le carnet jusqu’à exécuter toute la taille ou atteindre son plafond de cours limité. Si la meilleure limite était peu fournie, le prix moyen effectif peut être nettement moins bon que le meilleur cours vu un instant plus tôt.
  • Les exécutions intercalées. Les ordres d’autres participants peuvent atterrir dans le même bloc, ou dans le bloc situé entre votre dernier rafraîchissement d’écran et le bloc qui contient votre ordre. Ces exécutions consomment de la liquidité et déplacent le prix effectif de votre propre ordre.
  • La latence entre l’instantané et la soumission. Le prix à l’écran est un instantané ; le temps que votre ordre soit séquencé et apparié, le carnet a pu bouger. Ce n’est pas un défaut du moteur d’appariement ; c’est la conséquence du temps de trajet, non nul, entre vous et la chaîne.

P&L latent et P&L réalisé

  • Le P&L latent reflète la valorisation de votre position ouverte au prix de marquage courant. Il bouge en continu avec le prix de marquage : c’est une estimation courante, pas un montant réglé.
  • Le P&L réalisé est le résultat cumulé des positions que vous avez déjà clôturées. Il ne bouge pas avec le prix de marquage. Il ne change que lorsque vous réduisez ou clôturez une position.
Confondre les deux est la première source de signalements « mon P&L est faux ». Si le nombre en question bougeait pendant que vous le regardiez, c’est presque certainement du latent.

Prix de marquage et prix de la dernière transaction

Le prix de marquage n’est pas le prix de la dernière transaction. C’est une référence lissée, utilisée pour la comptabilité de marge, le P&L latent, le financement et les liquidations, construite pour résister à la manipulation d’une transaction isolée. La page Prix de marquage décrit comment il est bâti. Le prix de la dernière transaction est simplement celui auquel la dernière exécution s’est faite. Les deux peuvent diverger, surtout sur des marchés rapides, et cette divergence est voulue : se servir de la dernière transaction pour la marge rendrait les liquidations trivialement manipulables. Les paiements de financement sont eux aussi calculés contre le prix de marquage ; voir Financement si votre ligne de P&L réalisé contient des flux de financement auxquels vous ne vous attendiez pas.

Lire l’attribution par exécution

Chaque exécution est émise avec un identifiant, un prix, une quantité, des frais et une position de séquencement. Vous pouvez les récupérer depuis l’API ou depuis le flux d’exécution. Les enregistrements par exécution sont la réponse canonique à la question « qu’est-il arrivé à mon ordre » ; le récapitulatif de l’interface n’est qu’un rendu pratique de ces enregistrements.

Quoi nous envoyer si cela paraît toujours faux

Écrivez à contact@intention.xyz avec :
  • Votre identifiant d’ordre et, si vous l’avez, l’identifiant d’exécution.
  • Le prix et la taille attendus, et sur quoi vous fondiez cette attente.
  • Le prix et la taille observés dans l’application ou l’API.
  • La hauteur de bloc ou l’horodatage UTC auquel l’exécution s’est réglée.
  • Une phrase décrivant l’écart.
Nous rejouerons l’étape d’appariement à partir du bloc et vous expliquerons ce que le moteur a réellement fait.