Le backtesting est l'endroit le plus différent entre le trading quantitatif et le trading traditionnel. Selon les données réelles du marché qui se sont produites dans l'histoire, le signal de stratégie de simulation déclenche et correspond rapidement à la transaction, et le rapport de performance et d'autres données sont obtenus pour une période de temps. Pour les actions nationales et étrangères, les contrats à terme sur matières premières, les devises et autres marchés, le backtesting est les composantes les plus importantes du développement de la stratégie.
Dans les chapitres précédents, nous avons appris les bases du langage de programmation grand public, et vous avons appris à utiliser ces bases de programmation pour écrire des stratégies de trading simples. On peut dire que la route est plus de la moitié. Cependant, une fois qu'une stratégie est écrite, elle est encore loin de l'environnement réel du marché. Elle nécessite également un backtesting constant jusqu'à ce que la stratégie puisse implémenter pleinement le contenu du modèle et fonctionner sans heurts.
D'un point de vue de la logique quantitative du trading, une stratégie de trading est en fait basée sur une série de cognitions et d'hypothèses du marché. Le backtesting peut déterminer si ces hypothèses sont stables ou non.
En outre, du point de vue des opérations de négociation quantitatives, les tests antérieurs peuvent aider à détecter les bogues dans la logique de la stratégie, tels que les fonctions futures, le prix glissant, l'ajustement à plusieurs degrés, etc. Fournir des preuves fiables que la stratégie peut être utilisée pour le trading sur le marché réel.
Vérifier l'exactitude du signal de négociation.
Vérifiez que la logique de négociation et vos idées sont réalisables.
Découvrir les défauts du système commercial et améliorer la stratégie initiale.
Donc, le sens du backtesting est de réaliser un processus de trading aussi vrai que possible, de vérifier la validité des données historiques, d'éviter des erreurs coûteuses pour la mauvaise stratégie, de nous aider à filtrer, améliorer et optimiser les stratégies de trading.
La stratégie de trading est basée sur des données historiques statiques pendant le backtesting, mais les données du trading réel sont dynamiques. Par exemple: si le prix le plus élevé est supérieur au prix de clôture d'hier, ouvrez une position longue.
La fonction future utilise le prix futur, ce qui signifie que les conditions actuelles peuvent être modifiées à l'avenir, et la même fonction future peut également provoquer l'instabilité du signal de trading, tel que l'indicateur
Comme indiqué ci-dessous: La fonction d'indicateur en zigzag indique le point de basculement des pics et des creux. Elle peut ajuster sa propre valeur en fonction du dernier prix en temps réel, mais si le prix actuel change, le résultat de la fonction de tour de zigzag changera également. Si vous utilisez cet indicateur avec une telle fonction future, le signal d'ordre actuel peut être configuré et placé, mais ce signal peut ne pas être quantifié plus tard.
Le soi-disant comportement de "prix de vol" fait référence à l'utilisation de prix passés pour le commerce. Par exemple: si le prix le plus élevé est supérieur à un certain prix fixe pour ouvrir une position en utilisant le prix d'ouverture. Cette condition de position d'ouverture est "prix de vol", car sur le marché réel, lorsque le prix le plus élevé est supérieur à un certain prix, le prix peut avoir été supérieur au prix d'ouverture d'une certaine distance, et il est alors impossible d'utiliser le prix d'ouverture pour ouvrir une position. Cependant, dans l'environnement de backtesting, vous pouvez hypothétiquement ouvrir une position au prix d'ouverture.
Il existe également un autre cas où si les écarts de prix dépassent le prix fixe fixé par la stratégie, dans l'environnement de backtesting, le signal de négociation se produira et peut être exécuté; mais sur le marché réel, il ne peut évidemment pas être exécuté.
Le premier type: sur le marché réel, certaines bourses ont la limite quotidienne de la hausse et de la baisse maximales des prix.
Deuxièmement: le mécanisme de correspondance des ordres d'échange, qui sont la priorité de prix et la priorité de temps. Certaines variétés de la profondeur des ordres de marché auront souvent un grand nombre d'ordres en attente d'exécution. Dans le marché réel, vous devez attendre des ordres qui avant votre placement à exécuter, parfois votre ordre ne sera jamais exécuté. Mais dans l'environnement de backtesting, l'ordre en attente sera exécuté à n'importe quel prix sans attendre.
Troisièmement: pour les stratégies d'arbitrage, les profits de backtesting sont généralement très élevés, car chaque fois que l'opération de backtesting a été supposée avoir saisi tous ces prix de spread. Dans des circonstances réelles, la plupart des prix sont impossibles à exécuter, ou parfois un seul sens ou une seule cible de trading de l'action de trading est exécuté, en général, il est presque certain que le sens ou l'objectif de trading propice sera d'abord exécuté, puis vous devez immédiatement essayer d'exécuter le sens opposé ou la variété des ordres de stratégies d'arbitrage. même avec une si courte période de retard, les spreads de cette opportunité de trading peuvent vous coûter plus de 1 ou 2 points de prix, tandis que l'ensemble de la stratégie d'arbitrage de spread n'a obtenu que très peu de prix de profit. Ce genre de situation est très difficile à backtest dans l'environnement de simulation. Les profits réels sont loin des résultats de backtesting.
Quatrièmement: l'événement
Chaque fois que je vois cette image, mon cœur et mon esprit sont amusés. Cette image nous montre une signification vraie, un modèle ridicule, juste assez complexe, est parfaitement adapté à toutes les données.
Pour le trading quantitatif, le backtesting est basé sur des données historiques, mais l'échantillon de données historiques est limité.
Le processus de modélisation de la stratégie quantitative est essentiellement un processus de recherche de données locales non aléatoires à partir d'un grand nombre de données apparemment aléatoires.
Si vous trouvez de mauvaises données de performance en dehors de l'échantillon, ne vous sentez pas désolé ou réticent à admettre que le modèle ne fonctionne pas, et continuez à l'optimiser jusqu'à ce que les données d'échantillon à l'extérieur fonctionnent aussi bien qu'à l'intérieur.
Wall Street a une blague populaire: Supposons qu'il y ait 1000 singes sur le marché qui ont participé à l'investissement. La première année, 500 singes ont été perdus sur le marché. À la moitié de la deuxième année, il reste 250 singes. À la fin de la troisième année, il reste 125 singes.
…
Au cours de la neuvième année, le dernier singe est resté. Puis vous le regardez, plus vous le regardez, plus vous sentez son visage familier. Enfin, vous voyez la couverture d'un magazine financier et vous criez: "Hé, c'est Warren Buffett?
Bien que ce ne soit qu'une blague, vous pouvez toujours le cartographier à la situation du monde réel. Par exemple, s'il y a 1000 gestionnaires de fonds, après 10 ans, environ 10 gestionnaires de fonds surperformeront le marché pendant 10 ans consécutifs. Cela peut être causé par la chance aléatoire et les décisions, ces gestionnaires de fonds
Comme le rapport de backtest ci-dessous, la plupart des investisseurs choisiront le chiffre de gauche. qui a une performance très solide sans retracement significatif.
mais s'il vous plaît attendez, comme indiqué sur la droite, qui est la situation réelle. la courbe de gauche est seulement le meilleur parmi ces nombreux backtests. c'est à dire, il y a beaucoup de performances bien pires que la situation de gauche.
Dans un environnement commercial réel, les prix fluctuent toujours. Lorsque vous êtes optimiste quant à une opportunité de trading, le prix peut avoir changé au moment de passer un ordre. Le problème du glissement, que ce soit dans le trading subjectif ou dans le trading quantitatif, est donc inévitable.
Mais le backtesting est basé sur des données statiques, il est difficile de simuler l'environnement commercial réel. Par exemple: le prix de l'ordre est de 1050 pour acheter, mais le prix de négociation réel peut être de 1051. Il existe de nombreuses situations pour ce phénomène, telles que: vide de liquidité dans les mouvements de prix extrêmes, retard du réseau, retard des systèmes matériel et logiciel, retard de réponse du serveur, etc.
Test de retour sans glissement
Comme indiqué ci-dessus, est un rapport de backtest sans glissement, la courbe de profit semble bonne, mais il y a des différences entre le backtest et le trading réel sur le marché réel.
Retour à l'essai avec glissement
Comme indiqué ci-dessus, la même stratégie, si ajoutée avec 2 points de glissement, les résultats de backtesting avec et sans glissement sont très différents, ce qui signifie que cette stratégie doit être améliorée ou abandonnée.
Certaines personnes peuvent se demander, puisqu'il peut y avoir tellement de problèmes dans le trading quantitatif, comment puis-je prouver que ma stratégie est ok? La réponse est simple, nous devons d'abord simuler le trading par cette stratégie un certain temps avant d'utiliser l'argent réel, si le prix du trading et la situation de simulation de trading sont presque les mêmes avec la logique de la stratégie, alors au moins prouver la logique de la stratégie n'a pas de problème.
Dans tous les cas, pour un développeur de système de trading expérimenté, le backtesting est un must. Parce qu'il peut vous dire si une idée de stratégie peut être validée dans les données historiques. Mais souvent, le backtesting ne signifie pas que l'avenir sera rentable. Parce qu'il y a trop de trous dans le backtesting, après avoir payé le prix, vous le comprendrez. Et ces leçons sont toutes empilées en argent réel. Cet article est principalement pour réduire les détours et les pièges.
Qu'est- ce qu'une suradaptation et comment l'éviter?
Quels sont les exemples de "violence des survivants" dans la vie réelle?