Le piège du surapprentissage
Si vous donnez à un modèle de machine learning suffisamment de paramètres, il trouvera des patterns dans du bruit aléatoire. La même chose se produit dans le développement de stratégies de trading, de façon moins évidente. Une stratégie avec 12 paramètres ajustables — seuil d'entrée, seuil de sortie, période de référence, filtre de volume, filtre horaire, et ainsi de suite — dispose de suffisamment de degrés de liberté pour s'ajuster presque parfaitement aux données historiques. Le problème, c'est que ces paramètres calibrés ont capturé du bruit propre à la période historique, et non une relation de marché durable.
Vous pouvez le tester directement. Prenez n'importe quelle stratégie qui semble excellente en backtest et décalez ses paramètres de 10 à 20 %. Si les performances s'effondrent, la stratégie est en surapprentissage. Une stratégie robuste devrait se dégrader progressivement avec les variations de paramètres, et non chuter brutalement. Cette chute brutale vous indique que la stratégie a trouvé une fenêtre étroite de données historiques qui fonctionnait par hasard, et non un avantage structurel large.
Le biais de survivance dans les données
La plupart des backtests crypto sont réalisés sur des actifs qui existent actuellement et sont activement tradés. Pourtant, un grand nombre de tokens ont été créés, tradés pendant un certain temps, puis ont effectivement disparu — perdant plus de 99 % de leur valeur ou étant retirés des marchés. Lorsque vous backtestez une stratégie sur « les 50 premiers tokens par capitalisation boursière », vous sélectionnez des tokens qui ont survécu. Votre stratégie ne rencontre jamais ceux qui sont tombés à zéro.
C'est important car de nombreuses stratégies momentum semblent excellentes en backtest. Acheter ce qui monte, vendre ce qui descend. Mais dans un jeu de données biaisé par la survivance, les actifs qui ont monté incluent les survivants futurs, tandis que ceux qui ont chuté et finalement disparu sont exclus du jeu de données. L'alpha de la stratégie est partiellement ou entièrement un artefact de la sélection des données.
La solution consiste à utiliser des données exemptes de biais de survivance, incluant les actifs retirés des marchés et les tokens morts. Ces données sont plus difficiles à obtenir et plus coûteuses, mais elles vous donnent des résultats de backtest nettement plus réalistes.
Slippage et impact de marché
Les backtests supposent généralement que vous pouvez exécuter au prix visible au moment du signal. En pratique, l'acte de trader fait bouger le prix. Si votre stratégie génère un signal d'achat à 100 $, au moment où votre ordre atteint l'exchange et est exécuté, vous pourriez payer 100,15 $. Sur un seul trade, c'est négligeable. Sur des milliers de trades, c'est la différence entre une stratégie rentable et une stratégie perdante.
Le problème de slippage est plus prononcé pour les stratégies qui tradent pendant les périodes de forte volatilité — le moment où vous souhaitez trader est précisément celui où la liquidité se raréfie — et pour les stratégies qui tradent des actifs moins liquides. Une stratégie qui semble excellente en backtest sur DOGE/USD avec un slippage supposé nul pourrait être physiquement impossible à exécuter à ces prix, car le carnet d'ordres ne peut pas absorber la taille de la position sans déplacer significativement le prix.
Une modélisation réaliste du slippage nécessite des données réelles de carnet d'ordres, et pas seulement des bougies OHLCV. Si vous backtestez avec des données en bougies en supposant une exécution au prix de clôture, vous faites preuve d'un optimisme dont la marge dépasse souvent l'intégralité de l'avantage de la stratégie.
Les changements de régime
Les marchés évoluent. Les régimes de volatilité changent, les corrélations se brisent, de nouveaux participants entrent, les réglementations évoluent, et le contexte macroéconomique se transforme. Une stratégie calibrée sur le marché haussier 2020-2021, avec ses taux d'intérêt bas et ses afflux massifs de capitaux retail, se comportera différemment dans un environnement de taux plus élevés avec une composition de participants différente.
La subtilité, c'est que les changements de régime ne sont évidents qu'a posteriori. Vous ne pouvez pas savoir à l'avance quand la structure de marché dont dépend votre stratégie va évoluer. Ce que vous pouvez faire, c'est tester votre stratégie sur plusieurs régimes si les données sont disponibles, et surveiller les performances en temps réel de la stratégie par rapport à ses performances attendues pour détecter quand quelque chose a changé.
Le biais de clairvoyance
C'est le bug le plus insidieux dans le code de backtesting. Le biais de clairvoyance survient lorsque votre stratégie utilise par inadvertance des informations qui n'auraient pas été disponibles au moment du trade. Exemples courants : utiliser le prix de clôture journalier pour prendre une décision à l'ouverture du marché, utiliser un indicateur révisé après sa publication initiale, ou utiliser des données qui arrivent avec un délai (comme les données de réserves d'exchange qui peuvent avoir un décalage de reporting d'une heure).
Dans le code, le biais de clairvoyance apparaît souvent sous la forme d'une erreur de décalage d'un indice. Si votre signal au temps t utilise des données de l'indice t au lieu de t-1, vous regardez en avant. C'est facile à introduire et difficile à détecter par inspection. La meilleure défense consiste à faire tourner votre moteur de backtest en mode strictement événementiel, où la stratégie ne voit jamais que des données déjà « publiées » selon des horodatages réalistes.
Ce qui résiste à la transition vers le trading réel
Les stratégies qui tendent à fonctionner en trading réel partagent certaines propriétés. Elles ont peu de paramètres. Elles reposent sur une logique économique claire, et non sur un simple pattern dans les données. Elles se dégradent progressivement avec les variations de paramètres. Elles ont été testées sur plusieurs périodes et conditions de marché. Et elles tiennent compte de coûts d'exécution réalistes.
Rien de tout cela ne garantit le succès, mais cela améliore les probabilités. Le résultat par défaut — qu'une stratégie backtestée échoue en trading réel — est le taux de base que vous cherchez à battre. Comprendre précisément pourquoi les stratégies échouent vous donne une méthode systématique pour tester votre travail sous pression avant d'engager du capital réel.