22 août 2026 · recherche

Pourquoi vos ordres ouverts ont besoin d’une horloge dans le backtest

Pourquoi vos ordres ouverts ont besoin d’une horloge dans le backtest

Une stratégie envoie un ordre à cours limité à 10:00. Son signal change à 10:03. Le backtest remplace discrètement l’ordre à 10:04, puis comptabilise une exécution à 10:05. En paper trading, l’ordre initial peut toujours être en attente sur la plateforme. S’il est exécuté alors que l’ordre de remplacement est lui aussi actif, la stratégie a 2 ordres et un modèle de position qui fait comme s’il n’y en avait qu’un.

Les ordres ouverts ont besoin de leur propre état et de leur propre horloge. Un backtest doit savoir quand chaque ordre a été envoyé, quand il peut être annulé, si l’annulation a bien été reçue par la plateforme et ce qui se passe si une exécution survient au même moment que l’annulation. 3 raccourcis effacent régulièrement ces informations.

Erreur 1 : considérer qu’un nouveau signal annule instantanément l’ordre

Dans de nombreux backtests, la position cible est recalculée à chaque bougie, puis l’ordre en attente est remplacé par ce que demande le dernier signal. L’ordre disparaît ainsi au moment précis où la stratégie change d’avis. Les plateformes réelles ne fonctionnent pas ainsi. Une demande d’annulation prend du temps et l’ordre peut être exécuté avant que la plateforme ne la traite.

Prenons un ordre d’achat à cours limité de 100 actions à 50,00 $. À 10:03, le signal s’affaiblit et la stratégie envoie une demande d’annulation. À 10:03:00.080, 60 actions sont exécutées ; l’annulation est confirmée à 10:03:00.110. Les 40 actions restantes sont annulées, mais la position comprend désormais 60 actions. Un backtest fondé sur les bougies qui supprime l’ordre à 10:03 peut afficher zéro. Un backtest qui suppose une annulation immédiate tout en enregistrant une exécution ultérieure crée une exposition artificielle dans le sens opposé.

Suivez explicitement le cycle de vie de l’ordre : envoyé, confirmé, partiellement exécuté, annulation en attente, annulé ou entièrement exécuté. Conservez les exécutions qui ont lieu avant la confirmation de l’annulation. Pour une simulation à bougies grossières, choisissez et indiquez une règle d’ordre prudente lorsque les 2 événements peuvent survenir dans la même bougie.

Erreur 2 : laisser un ordre en attente actif indéfiniment

Un ordre à cours limité fixé à partir d’un signal de 10:00 peut devenir obsolète, même si le signal ne prévoit aucune règle de sortie explicite. Le carnet évolue, la volatilité change et la valeur de marché de l’instrument peut dériver. Pourtant, un simulateur qui laisse l’ordre actif jusqu’à son exécution peut finir par enregistrer une exécution plusieurs mois plus tard et l’attribuer à une thèse qui n’existe plus.

Définissez une règle de durée de validité des ordres adaptée à la stratégie. Un signal à l’horizon d’1 minute pourrait utiliser une expiration de 30 secondes ; un rééquilibrage quotidien pourrait laisser l’ordre actif jusqu’à la clôture. Ce sont des choix propres à la stratégie, pas des réglages universels. Si la stratégie ajuste le prix à chaque bougie, modélisez la séquence d’annulation et de remplacement au lieu de téléporter miraculeusement l’ordre à son nouveau prix.

Règle de l’ordreUsage courantQuestion pour le backtest
Immédiat ou annulationPrendre la liquidité disponible, puis s’arrêterQuelle quantité pouvait être exécutée à l’envoi ?
Expiration courteSignal rapide avec une brève fenêtre d’exécutionL’ordre était-il encore valide au retour du cours ?
Jusqu’à la fin de la séanceRééquilibrage lent ou intention de participer à l’enchère de clôtureLa plateforme prend-elle réellement en charge cette durée de validité ?

Erreur 3 : compter chaque contact avec le cours comme une exécution

Si le plus bas d’une bougie atteint un cours limité à l’achat, l’ordre n’a pas forcément été exécuté. D’autres ordres ont peut-être fait la queue devant lui, le volume échangé à ce prix était peut-être faible, ou une transaction isolée a peut-être eu lieu avant l’arrivée de l’ordre. Un modèle d’ordre périmé cumule souvent ces 3 erreurs : il laisse l’ordre actif trop longtemps, suppose qu’il était en tête de file, puis lui attribue une exécution complète dès que le cours le touche.

Au minimum, empêchez toute exécution avant l’arrivée de l’ordre et plafonnez la quantité simulée en fonction d’un volume échangé plausible au cours limite. Pour les stratégies sensibles à la position dans la file, utilisez des données de transactions et de carnet d’ordres, ou un modèle de file délibérément prudent. Une exécution fondée sur le simple contact avec le cours peut rester utile pour un premier tri, mais présentez-la comme une approximation optimiste et comparez-la à une hypothèse plus sévère.

Un audit pratique : consignez pour chaque ordre son heure de création, sa période d’activité, la demande d’annulation et sa confirmation, l’heure d’exécution, la quantité exécutée et la quantité restante. Rejouez ensuite quelques transactions autour des inversions de signal. Si vous ne pouvez pas expliquer pourquoi chaque ordre était encore actif au moment de son exécution, le nombre d’exécutions du backtest doit être revu.

Modélisez l’ordre que vous comptez tester en paper trading

L’état de l’ordre relie l’intention de la stratégie à son exposition réelle. La position doit évoluer au gré des exécutions, et non des positions cibles ou des demandes d’annulation. Les remplacements doivent laisser une trace vérifiable, et les exécutions partielles doivent être prises en compte dans la décision suivante. Le backtest devient plus complexe, mais la comparaison avec le paper trading devient aussi pertinente : les 2 systèmes peuvent diverger dans leur exécution pour des raisons que l’on peut identifier.

Lorsque le modèle d’ordre comporte des incertitudes, reflétez-les dans les résultats. Testez des ordres de courte et de longue durée, faites varier le délai d’annulation et montrez dans quelle mesure les performances dépendent d’hypothèses optimistes sur la position dans la file. La stratégie est peut-être solide. Mais son avantage apparent peut aussi provenir des intérêts générés par un ordre que le système réel aurait annulé depuis plusieurs heures.

gestion des ordresbacktestingexécutionpaper trading
← Tous les articles