Une stratégie quotidienne qui calcule son signal à partir du cours de clôture de lundi ne peut pas passer un ordre à la clôture de lundi. Elle peut l’envoyer une fois ce prix connu, puis être exécutée à un prix ultérieur auquel il était possible de négocier. Ce petit choix de calendrier peut davantage modifier le résultat qu’un indicateur ingénieux.
Pour un backtest quotidien, établissez la séquence avant d’écrire le signal : quand la bougie est complète, quand la stratégie effectue son calcul, quand l’ordre arrive sur le marché et à quel prix il pourrait raisonnablement être exécuté. Si tous ces événements ont lieu au même instant, le backtest a esquivé la difficulté principale.
Puis-je utiliser le cours de clôture d’aujourd’hui pour négocier à la clôture d’aujourd’hui ?
En général, non. Un signal qui dépend du cours final n’est disponible qu’après la clôture de l’enchère ou la dernière transaction. Une exécution à ce même prix suppose que la stratégie connaissait le résultat assez tôt pour participer à un prix qui a contribué à déterminer ce résultat.
Prenons une règle simple : acheter lorsque le cours de clôture dépasse la moyenne mobile sur 20 jours. À la clôture de lundi, la règle devient vraie. Un backtest qui achète à la clôture de lundi utilise le cours définitif de lundi à la fois pour décider et pour exécuter l’ordre. Dans un modèle simple fondé sur des bougies journalières, l’approximation honnête consiste à générer l’ordre après la clôture de la bougie de lundi et à ne pas l’exécuter avant l’ouverture de mardi, en tenant compte des coûts appropriés.
Certaines stratégies envoient des ordres pour participer à une enchère de clôture en s’appuyant sur les informations disponibles avant l’heure limite de l’enchère. Elles peuvent être backtestées, mais le signal doit utiliser uniquement les données disponibles avant cette limite et l’exécution doit refléter le fonctionnement de l’enchère. La seule mention « signal quotidien » ne garantit ni l’une ni l’autre de ces conditions.
Quel est le bon prix d’exécution pour un backtest quotidien ?
Il n’existe pas de prix universellement juste. Le cours d’ouverture suivant est un point de départ clair lorsque le signal est calculé à partir d’une bougie journalière complète et que l’ordre est envoyé ensuite. Ce n’est pas une garantie : un écart de cours pendant la nuit peut faire bouger le marché, et un ordre au marché entraînera le paiement du spread, des frais et éventuellement d’un impact de marché.
Pour le signal de lundi ci-dessus, supposons que la clôture de lundi soit à $100 et que mardi ouvre à $103. Un backtest de clôture à clôture peut afficher un petit gain s’il fait comme si l’achat avait eu lieu à $100. Avec une entrée à l’ouverture suivante, le prix de départ est $103. L’écart de $3 n’est pas du « slippage » à éliminer par réglage : c’est le prix à payer pour découvrir le signal après la clôture de lundi.
| Le signal devient disponible | Exécution possible | Hypothèse du modèle |
|---|---|---|
| Après la clôture quotidienne | À l’ouverture de la séance suivante | L’ordre peut parvenir au marché avant ou à l’ouverture |
| Avant l’heure limite de l’enchère de clôture | Enchère de clôture | Le signal utilise uniquement les informations disponibles avant l’heure limite ; l’exécution à l’enchère est modélisée |
| Après la clôture quotidienne | À un cours intrajournalier ultérieur | La stratégie attend ; l’exécution nécessite des données intrajournalières et un calendrier défini |
Sur les marchés crypto, la « clôture quotidienne » est une convention, car les échanges se poursuivent au-delà du changement d’horodatage. Une stratégie peut tout de même utiliser une bougie journalière UTC complète, mais elle doit attendre que la bougie soit terminée et que les données soient arrivées. Si votre pipeline de données finalise une bougie avec plusieurs secondes de retard, il est particulièrement difficile de justifier un ordre au cours de la limite temporelle.
Comment modéliser les ordres quand je ne dispose que de bougies journalières ?
Précisez clairement ce que la bougie permet ou non de savoir. Les OHLCV journaliers permettent d’approximer une exécution à l’ouverture suivante, mais ne révèlent ni le spread au moment où votre ordre arrive, ni l’évolution des cours pendant la journée, ni si un ordre à cours limité a rejoint la file d’attente avant que le cours ne le touche.
Pour un ordre au marché quotidien, partez du cours d’ouverture suivant, puis imputez à la stratégie les coûts qu’elle aurait réellement à supporter : frais de la plateforme, estimation du spread et estimation de l’impact adaptée à la taille de l’ordre. Faites varier ces coûts pour tester la robustesse du résultat. Si celui-ci repose sur un spread nul ou un impact négligeable, les bougies journalières ne justifient pas cette confiance.
Pour un ordre à cours limité, le fait que le plus bas de la journée ait atteint votre limite ne prouve pas que votre ordre a été exécuté. Le marché a peut-être atteint ce cours avant l’arrivée de votre ordre, ou le volume exécuté a peut-être été inférieur à la quantité déjà en attente devant vous. Les bougies journalières sont souvent trop grossières pour modéliser correctement la file d’attente. Utilisez des données plus fines si votre hypothèse dépend de l’exécution intrajournalière, ou retenez une hypothèse d’exécution volontairement prudente et indiquez-la clairement.
Quelles vérifications permettent de repérer un biais d’anticipation dans les données journalières ?
J’aime faire quelques vérifications simples, car elles mettent rapidement les hypothèses en évidence :
- Décalez chaque ordre dérivé d’un signal d’une séance. Si la performance s’effondre, vérifiez si le modèle initial utilisait la clôture de la bougie du signal comme prix d’exécution.
- Consignez séparément l’heure du signal, l’heure d’envoi de l’ordre et l’heure d’exécution. Les horodatages doivent raconter une histoire plausible sans interprétation.
- Comparez les exécutions à l’ouverture suivante avec un prix d’exécution ultérieur et prudent. Si une stratégie ne fonctionne qu’au point le plus favorable de la bougie, elle a un problème d’exécution.
- Vérifiez l’effet des jours fériés, des bougies manquantes et des fermetures de marché sur la notion de « séance suivante ». Le jour calendaire suivant n’est pas forcément une séance de négociation.
Un décalage d’une séance est un outil de diagnostic, pas un modèle d’exécution universel. Un rééquilibrage lent de portefeuille, une stratégie d’enchère de clôture et un système crypto qui négocie en continu ont besoin de calendriers différents. L’essentiel est de rendre ce calendrier explicite.
Les données quotidiennes rendent-elles un backtest moins utile ?
Non. Les données quotidiennes peuvent tout à fait convenir à une stratégie dont les décisions et les périodes de détention se mesurent en jours ou en semaines. Elles sont utiles pour déterminer si une règle générale mérite des recherches supplémentaires. Le backtest devient trompeur lorsqu’il prétend décrire avec précision des exécutions que les bougies ne permettent pas d’observer.
J’ai vu plus d’une stratégie s’améliorer considérablement après le remplacement de « signal à la clôture, exécution à la clôture » par « signal à la clôture, exécution à l’ouverture suivante ». Le résultat peut être décevant, mais il est instructif : il vous indique si l’idée tient toujours une fois qu’il devient possible de la mettre en œuvre. Gardez les règles de calendrier à côté du code de la stratégie. Sinon, la prochaine passe d’optimisation réintroduira discrètement l’exécution impossible.
← Tous les articles


