Un backtest peut exécuter votre ordre limite alors qu’aucune occasion réelle de négocier ne se présentait. Si le plus bas d’une bougie passe sous votre limite d’achat, de nombreux moteurs considèrent l’ordre exécuté. Mais ce plus bas indique seulement qu’au moins une transaction déclarée a eu lieu à ce prix ou à un prix inférieur. Il ne dit rien sur les volumes échangés, les ordres placés avant le vôtre dans la file d’attente, ni sur le fait que votre ordre ait été actif à temps.
Cette distinction compte surtout lorsque l’avantage de la stratégie repose sur des exécutions passives fréquentes. Un modèle qui considère chaque contact avec le prix comme une exécution complète peut transformer une entrée patiente en source d’alpha imaginaire.
Une bougie qui touche mon prix limite signifie-t-elle que mon ordre a été exécuté ?
Non. Cela signifie que la fourchette de prix enregistrée pour la bougie incluait votre limite. La possibilité d’exécuter votre ordre dépend du carnet d’ordres, du flux des transactions, de votre position dans la file d’attente et de l’heure d’arrivée de l’ordre.
Imaginez un ordre limite d’achat à 100,00 $. La bougie ouvre à 100,20 $, atteint un plus bas de 99,98 $ et clôture à 100,10 $. Une transaction a peut-être été enregistrée deux cents sous votre prix, mais si une importante file d’attente se trouvait devant vous à 100,00 $ et que seule une petite quantité y a été échangée, votre ordre peut être resté intact. Avec les seules données OHLCV, cette file d’attente est invisible.
Autre difficulté : une bougie agrège des événements sur une période donnée. Si votre signal est calculé à partir de la clôture de cette bougie, vous ne pouvez pas supposer que votre ordre était déjà en attente dans le carnet lorsque le plus bas a été atteint. La bougie compresse la séquence d’événements qui permettrait de répondre à cette question.
Que peuvent réellement m’apprendre les données OHLCV sur l’exécution d’un ordre limite ?
Les données OHLCV peuvent exclure certaines exécutions et en rendre d’autres plausibles. Elles ne permettent ni d’établir votre priorité dans la file d’attente ni de garantir le volume disponible pour votre ordre.
| Observation | Ce que cela permet de conclure | Ce que cela ne prouve pas |
|---|---|---|
| Le plus bas de la bougie reste au-dessus d’une limite d’achat | Aucune transaction déclarée n’a atteint ce prix pendant cette bougie | Que l’ordre aurait été exécuté |
| Le plus bas de la bougie touche la limite d’achat | Le prix limite a été enregistré | Qu’un volume ait été échangé après l’arrivée de votre ordre |
| Le plus bas de la bougie passe sous la limite d’achat | Des transactions ont eu lieu à ce prix ou en dessous | Qu’un volume suffisant ait atteint votre position dans la file d’attente |
| Le volume total de la bougie dépasse la taille de votre ordre | Le marché a échangé au moins cette quantité quelque part pendant la bougie | Que ce volume ait été échangé à votre prix, après l’arrivée de votre ordre |
Un moteur fondé sur les bougies doit donc faire une hypothèse d’exécution. Considérez cette hypothèse comme un modèle avec une limite connue, et non comme un fait déduit de la bougie.
Comment modéliser l’exécution des ordres limites dans un backtest ?
Commencez par définir le moment où l’ordre est envoyé. Déterminez quand le signal devient disponible, quand l’ordre atteint la plateforme et quels événements de marché ultérieurs peuvent interagir avec lui. Pour un signal connu à la clôture d’une bougie, une règle prudente fondée sur les bougies consiste à rendre l’ordre actif à partir de la bougie suivante.
Distinguez ensuite les conditions de prix de la quantité exécutée. Le fait qu’un ordre puisse être exécuté au prix limite ne signifie pas qu’il le sera entièrement. Si vous disposez des transactions enregistrées, mais pas de l’historique du carnet d’ordres, vous pouvez exiger que le volume échangé au prix limite ou à un meilleur prix dépasse un multiple de la taille de votre ordre. Ce multiple constitue une marge approximative pour tenir compte de la file d’attente, pas une constante universelle. Testez plusieurs valeurs et indiquez comment les résultats évoluent.
Par exemple, supposons que la stratégie place un ordre limite d’achat de 2 BTC et que le prix choisi fasse l’objet de transactions portant sur 3 BTC après l’activation de l’ordre. Un modèle exigeant un volume éligible de 5 BTC laisserait l’ordre sans exécution ; un modèle utilisant un multiple de volume de 1.0 l’exécuterait. Aucun des deux résultats ne reconstitue la file d’attente. La comparaison montre à quel point la stratégie dépend d’une hypothèse que vous ne pouvez pas observer.
Conservez les ordres non exécutés dans la simulation. Annulez-les lorsque la stratégie les annulerait et laissez les occasions manquées le rester. Exécuter un ordre dès que son prix limite est touché tout en ignorant ceux qui expirent sans être exécutés biaise à la fois l’exécution et le nombre d’occasions.
Quand ai-je besoin de données sur le carnet d’ordres ?
Utilisez les mises à jour du carnet d’ordres et les transactions lorsque la position dans la file d’attente ou les exécutions partielles sont au cœur de la stratégie : market making, cotations passives de courte durée ou entrées qui dépendent d’une position proche du début d’un niveau de prix très encombré. Même dans ce cas, les données historiques publiques ne révèlent pas forcément votre position exacte dans la file. Vous devez modéliser l’arrivée de l’ordre, les annulations qui le précèdent, les règles d’appariement et votre propre impact de marché.
Pour les stratégies plus lentes, un carnet détaillé peut ajouter de la complexité sans lever l’incertitude principale. Une étude fondée sur les bougies peut tout de même comparer une borne supérieure, où chaque contact avec le prix entraîne une exécution, à des scénarios plus stricts soumis à un seuil de volume. Si l’avantage apparent disparaît dès que vous exigez des exécutions plausibles, c’est une information utile pour votre recherche.
Comment savoir si mon résultat dépend d’hypothèses d’exécution trop optimistes ?
Exécutez la même stratégie avec un petit ensemble de règles d’exécution explicites et comparez autre chose que le rendement final. Suivez le nombre d’ordres exécutés, le taux d’exécution partielle, la durée passée en attente, la quantité annulée, les mouvements manqués après une absence d’exécution et la rotation. Une stratégie peut conserver son rendement phare tout en reposant sur beaucoup moins de transactions, choisies plus favorablement.
Le paper trading est la prochaine vérification utile : envoyez les ordres selon la logique réelle et consignez les accusés de réception, les exécutions et les annulations. Les exécutions en paper trading dépendent encore des règles de la plateforme ou du simulateur, mais elles permettent de tester le timing et la gestion des ordres, invisibles dans une bougie.
Un prix limite touché renseigne sur le prix. Une exécution est une affirmation sur le déroulement de la transaction. Votre backtest doit rendre visible l’écart entre ces deux affirmations.
← Tous les articles


