Menu

Construire un système de trading algorithmique avec la simulation de Monte-Carlo

En tant que trader, lorsque vous devez calculer le risque ou la cohérence de votre système de trading, vous devez tester vos systèmes de trading. La simulation de Monte-Carlo est un bon outil pour cela. La méthode de Monte-Carlo est basée sur une simulation où toutes les possibilités sont évaluées par une génération de nombres aléatoires et tous les scénarios possibles sont simulés.

Ce que nous voulons, c'est générer autant de nombres aléatoires que possible, afin de simuler le plus grand nombre possible de nos scénarios de trading. Cela revient à dire ce qui se passerait si certaines variables comme le spread, l'entrée et la sortie ou le prix lui-même étaient modifiés. Vous verrez comment chaque option évolue dans le temps, si elle est viable à long et à court terme, et quelles autres variables peuvent influencer son cours.

Dans cet article, je vous montrerai comment ce test peut vous aider dans votre trading, quelques exemples pratiques, et nous saurons également comment l'utiliser de manière concrète.

Comment utiliser la méthode de Monte-Carlo ?

La simulation de Monte-Carlo concerne l'économie, aussi bien dans les entreprises que dans l'investissement, ce dernier étant celui où on la voit le plus souvent en action. Dans le domaine de l'investissement, ce type de simulation est utilisé pour créer, évaluer et analyser des portefeuilles d'investissement. Elle sert également à évaluer des produits financiers complexes, tels que les options financières ou les modèles de gestion des risques.

Le retour sur investissement étant imprévisible, ce type de méthode est utilisé pour évaluer différents types de scénarios. Un exemple simple se trouve dans le trading. Comme vous le savez, les mouvements des prix ne peuvent pas être prédits. Ils peuvent être approchés, mais il est impossible de le faire avec précision. C'est là qu'intervient la simulation de Monte-Carlo, où l'on essaie d'imiter le comportement d'un système de trading ou d'un ensemble de systèmes pour analyser leur évolution. Une fois la simulation effectuée, on en extrait un très grand nombre de scénarios possibles.

Origine du nom

Monte-Carlo cite le nom d'un célèbre casino situé dans la principauté de Monaco. Il est connu pour être la "capitale du jeu", car la roulette est un simple générateur de nombres aléatoires. Le système a été conçu en 1946 lorsque le mathématicien Stanislaw Ulam a pensé à une méthode efficace pour améliorer son jeu en solo.

C'est à cette occasion qu'il s'est rendu compte qu'il serait plus facile d'approcher le résultat global du match solo en faisant de multiples essais avec les cartes et en comptant les proportions des résultats que de calculer une à une toutes les possibilités de combinaisons. Il a présenté cette idée à un autre mathématicien, John Von Neumann, sous sa forme la plus rudimentaire. Celui-ci fut tellement impressionné par le système qu'il s'efforça de perfectionner la formule.

Les progrès technologiques, ainsi que l'ordinateur et les théories d'Alan Turing, ont permis de faciliter l'avancement de l'étude de cette simulation financière particulière. Une lettre de Neumann au laboratoire de Los Alamos a permis de diffuser la formule à tous. L'utilisation du modèle de Monte-Carlo comme outil de recherche provient des travaux réalisés dans le cadre du développement de la bombe atomique pendant la Seconde Guerre mondiale au laboratoire national de Los Alamos, aux États-Unis.

Ces travaux portaient sur la simulation de problèmes hydrodynamiques probabilistes concernant la diffusion des neutrons dans la matière à fission. Cette diffusion a un comportement éminemment aléatoire. Aujourd'hui, elle est un élément fondamental des algorithmes de ray tracing pour la génération d'images 3D. En principe, elle a été idéalisée par Neumann pour évaluer des intégrales multiples. Aujourd'hui, elle est utilisée sur le marché du travail pour toutes sortes de statistiques, et très curieusement, pour des décisions administratives à haut risque, où il serait difficile de vérifier la validité d'une variante.

Comprendre Monte-Carlo

La donnée la plus essentielle à garder à l'esprit lors de vos calculs est que vous devez générer une bonne quantité de nombres aléatoires. Comment pouvez-vous générer des nombres aléatoires ? Alors qu'au casino Monte-Carlo, cette opération est utilisée avec une roulette, cela pourrait vous prendre plus de temps que prévu. La meilleure solution pour vous est d'utiliser un logiciel.

Si nous voulons générer 10 000 nombres aléatoires, pour vous donner un exemple, imaginez le temps qu'il nous faudrait pour calculer chaque probabilité. On utilise des programmes informatiques qui génèrent ces nombres. Ils ne sont pas considérés comme des nombres purement aléatoires, car ils sont créés par le programme à l'aide d'une formule. Cependant, ils sont très similaires aux variables aléatoires de la réalité. On les appelle des nombres pseudo-aléatoires. Tout ceci étant dit, il ne reste plus qu'à voir une application correcte de la méthode.

Un exemple pratique :

Les programmes de conception assistée par ordinateur peuvent déterminer rapidement le volume de modèles très complexes. Ces logiciels, en général, ne sont pas capables de déterminer le volume (par exemple, pour un prisme, l'aire de base multipliée par la hauteur). L'une des choses que l'on pourra faire est donc de diviser le modèle en un ensemble de petits sous-modèles avec lesquels le volume pourra être déterminé. Cependant, cela consomme beaucoup de ressources pour le calcul du volume de chacun des éléments.

Pour cela, ils utilisent des simulations de Monte-Carlo, qui sont plus robustes et efficaces. Le logiciel connaît l'expression analytique de la géométrie du modèle (position des nœuds, des arêtes et des surfaces) et peut approximer un point qui se trouve à l'intérieur du modèle ou à l'extérieur à un coût bien moindre.

Tout d'abord, le logiciel place le modèle dans un volume connu (par exemple, dans un cube de 1 m3 de volume). Il génère ensuite un point aléatoire à l'intérieur du volume connu et enregistre si le point est "tombé" à l'intérieur ou à l'extérieur du modèle. Ce processus est répété plusieurs fois (des milliers ou des millions), ce qui permet d'obtenir un enregistrement très important du nombre de points tombés à l'intérieur et à l'extérieur.

La probabilité qu'un point tombe à l'intérieur est proportionnelle au volume du modèle, donc la proportion de points qui sont tombés à l'intérieur, par rapport au total des points générés, est la même proportion de volume que le modèle occupe dans le cube de 1 m3. Si 50% des points sont tombés dedans, le modèle occupe 50% du volume total, c'est-à-dire 0,5 m3. Évidemment, plus le logiciel génère de points, plus l'erreur d'estimation du volume sera faible.

Malgré ce qu'on vous dit, le trading est difficile. Et développer une stratégie de trading (algorithme) est difficile. Pour construire un algo correctement, vous devez faire un certain nombre de choses correctement. Par exemple, vous devez savoir comment ne pas sur-optimiser votre stratégie. Plus facile à dire qu'à faire !

Cependant, dans la suite de cet article je vais me concentrer sur ce qui se passe APRÈS avoir testé et optimisé votre stratégie.

Test et développement de systèmes de trading algorithmique
Que dois-je faire après les tests et l'optimisation ?

Tous les traders savent combien il est difficile de concevoir des systèmes de trading qui présentent un avantage durable. Beaucoup de gens peuvent regarder un graphique et déterminer des règles de trading qui s'adaptent parfaitement à un graphique particulier. Cependant, lorsqu'ils testent leurs règles sur une grande quantité d'historique de marché, ils voient que leur système est vraiment sans valeur.

D'autres traders développeront un système en négligeant les commissions et le slippage. Le système de trading semble génial, et le trader est très enthousiaste, jusqu'à ce que ces coûts frictionnels réels soient ajoutés, et qu'un système gagnant se transforme en un système d'équilibre ou pire.

Améliorer le trading algorithmique

Si vous avez des difficultés à élaborer une stratégie de trading algo, vous devez vraiment comprendre COMMENT construire correctement un algo. Avec une méthode de test et de développement appropriée, il est courant pour les traders de tester des dizaines, des centaines, voire des milliers d'idées de trading avant d'en trouver une qui fonctionne.

Voici à quoi ressemble le processus de développement d'une stratégie dont nous parlons dans cet article :

étapes du système de trading

Beaucoup de traders supposent que les tests - l'optimisation, les tests de Walk-Forward, etc. - constituent la majeure partie du processus de développement. Pourtant, une fois qu'un système de trading a passé le stade du développement et des tests initiaux, le travail est loin d'être terminé. D'autres étapes sont nécessaires avant d'engager des fonds réels dans un système de trading. Le respect de ces règles "après le développement" peut permettre à un trader d'économiser des milliers de dollars et d'éviter bien des maux de tête.

L'une des erreurs commises par les traders est de baser leurs décisions de trading sur la forme de la courbe d'équité historique du backtest. De nombreux traders regardent la courbe d'équité et se disent "puisque le drawdown maximum historique est de X $, je n'aurai probablement jamais un drawdown plus important que cela". Ou bien ils diront "ce système a gagné de l'argent chaque année, donc il est sûr".

Malheureusement, ces deux hypothèses sont très, très fausses. En effet, la courbe historique des actions n'est qu'un des nombreux chemins possibles que le système de trading aurait pu prendre au fil du temps. C'est ce que montre la figure 1. Si l'on modifie quelques transactions ici et là, le drawdown maximum aurait pu être bien pire, et les périodes rentables auraient facilement pu devenir des périodes de perte. D'un autre côté, les performances auraient également pu être meilleures que ce qu'elles étaient.

Simulation de Monte-Carlo - 1

Simulation de Monte-Carlo

Existe-t-il un moyen d'analyser ce phénomène - de voir les différentes voies qu'un système de trading aurait pu emprunter ? Oui, il y en a un, avec une méthode appelée analyse de Monte-Carlo. Cliquez ici pour télécharger un simulateur de Monte-Carlo gratuit.

L'analyse de Monte-Carlo repose sur l'idée que les transactions effectuées dans le passé se reproduiront dans le futur, mais dans un ordre différent et inconnu. En brouillant les transactions dans un ordre différent, des courbes d'équité différentes seront générées.

Bien qu'il y ait des circonstances où l'analyse de Monte-Carlo n'est pas appropriée, pour la plupart des systèmes de trading, l'analyse est valide et peut fournir un grand aperçu des caractéristiques du système de trading. Avec l'analyse Monte-Carlo, il suffit d'écrire chaque résultat de transaction sur un morceau de papier, de les déposer dans un chapeau, puis de choisir les transactions une par une pour créer une courbe d'équité. Les ordinateurs peuvent évidemment effectuer ce processus d'échantillonnage beaucoup plus rapidement, et créer des milliers de courbes d'équité simulées en quelques secondes.

Lorsque vous analysez des milliers de simulations de Monte-Carlo, vous obtenez des statistiques sur le plus gros drawdown possible, le rendement annuel possible et le risque de ruine. Si vous avez des objectifs de performance pour les résultats des simulations, vous pouvez alors facilement voir si votre système atteint vos objectifs. Il est impossible d'obtenir de telles informations en se contentant de regarder la courbe historique des actions.

L'incubation du système de trading

Lorsque la plupart des traders finissent de développer une stratégie, ils sont généralement si enthousiastes (qui peut les en blâmer ?) qu'ils se précipitent dans le trading en argent réel. Cela peut être une grosse erreur, surtout pour les traders débutants. Cela est dû en grande partie aux logiciels de trading. La plupart des logiciels de trading modernes permettent de créer très facilement des systèmes, de modifier les règles et d'effectuer de multiples optimisations. En fait, la plupart des logiciels sont configurés pour encourager l'optimisation - le logiciel rend la chose très facile à faire.

Simulation de Monte-Carlo - 2

Ainsi, comme le logiciel encourage un grand nombre de ces mauvaises habitudes, la courbe historique des actions sera invariablement plus belle à chaque nouveau test. Mais, la plupart du temps, un backtest plus beau n'a aucune corrélation (ou même une corrélation négative) avec les performances futures. Pourquoi en est-il ainsi ? En termes simples, l'ajout de règles, de filtres et l'exécution de plus d'optimisations ont pour effet d'adapter la stratégie de trading aux données historiques. En réalité, un trader souhaite exactement le contraire : une stratégie de trading qui fonctionne bien sur les données précédentes, mais qui n'est pas adaptée à celles-ci. Ces types de systèmes fonctionnent mieux dans le futur.

Souvent, l'observation de la stratégie après son développement fournit des indices importants. Ce processus s'appelle l'incubation. Dans sa forme la plus simple, vous laissez la stratégie fonctionner en direct, mais sans la négocier, pendant une période de 3 à 6 mois. Une fois par mois, vous examinez les résultats et ajoutez ces nouveaux résultats à votre courbe d'équité historique de backtest. Un exemple de ceci est illustré l'image ci-dessus, où les résultats de l'incubation sont ajoutés aux résultats historiques du walk-forward (optimisation avancée). Puisque dans ce cas les résultats de l'incubation sont similaires aux résultats historiques, cela donne au trader la certitude que le développement de la stratégie a été effectué correctement.

Après quelques mois d'incubation, vous constaterez probablement l'une des deux choses suivantes : les performances du système "ressemblent" à celles des tests historiques, ou non. Une astuce consiste à imprimer la courbe d'équité (performance historique et performance incubée) aussi grande que possible, et à la coller sur un mur à environ 3 mètres de distance. Si vous pouvez voir où se termine le test historique et où commence l'incubation, vous avez un problème. Idéalement, il ne devrait y avoir aucun changement de performance entre les résultats historiques et ceux de l'incubation.

Il existe des tests plus orientés statistiquement que vous pouvez exécuter sur les résultats de la stratégie pour déterminer si les performances ont changé. Un histogramme des résultats quotidiens est une de ces méthodes. Encore une fois, il s'agit de voir si les performances du système changent ou non après que vous ayez développé le système. Qu'est-ce qui pourrait provoquer un changement de performance ? Il est certain que si le marché se comporte différemment de ce qu'il a été au cours de l'historique des tests, les performances peuvent changer de façon spectaculaire. En supposant que vous avez testé des années de données, cela n'est probablement pas trop probable. Il est plus probable qu'une erreur ait été commise lors du développement. Par exemple, la stratégie peut avoir été sur-optimisée, avec trop de variables. Ou bien, le développeur a peut-être examiné les données actuelles avant de sélectionner ses règles, ce qui est une forme de biais rétrospectif.

Analyse des corrélations

Un autre domaine que de nombreux traders négligent après le développement du système est la corrélation avec d'autres systèmes. Évidemment, si vous ne négociez qu'un seul système, vous n'avez pas à vous inquiéter. Mais si vous ajoutez un système à votre portefeuille de trading, vous devez vous assurer que votre nouveau système complète vos autres systèmes. Vous ne voulez pas que tous vos systèmes achètent et vendent en même temps. En d'autres termes, vous souhaitez que vos systèmes soient aussi peu corrélés que possible.

Simulation de Monte-Carlo - 3

Une façon d'obtenir une corrélation est de négocier sur différents marchés et différentes périodes. Bien souvent, cela permet d'obtenir une corrélation suffisante. Si vous aimez les preuves mathématiques de la corrélation, vous pouvez effectuer une régression linéaire des résultats des systèmes de trading. La meilleure façon de procéder est de comparer les résultats des deux stratégies, et de voir quel est le coefficient de corrélation. Si les résultats sont compris entre -0,5 et +0,5, vous avez une paire de systèmes qui ne sont pas corrélés entre eux. L'image ci-dessus montre à quoi peuvent ressembler des systèmes corrélés et des systèmes non-corrélés. Les traders doivent toujours chercher des systèmes non-corrélés et éviter les systèmes corrélés.

La corrélation des systèmes est importante, car un facteur clé du trading est le contrôle adéquat des risques. Lorsque deux systèmes ou plus sont fortement corrélés, votre niveau de risque augmente considérablement. Comme alternative, vous voulez vraiment des systèmes qui ne sont pas corrélés. Cela crée une courbe d'actions plus lisse et constitue un élément clé d'une bonne diversification.

Tests limités en argent réel

Après avoir effectué une simulation de Monte-Carlo de vos systèmes de trading, incubé votre système pendant quelques mois et vérifié que votre nouveau système n'est pas corrélé aux autres systèmes que vous utilisez, il est peut-être temps de le tester réellement avec un petit nombre de contrats.

Pourquoi un petit nombre de contrats, plutôt qu'un grand nombre ? Il y a plusieurs raisons, tout d'abord, il est toujours possible que les systèmes ayant passé toutes les étapes précédentes échouent. Deuxièmement, le trading avec un petit nombre de contrats est un excellent moyen de vérifier les hypothèses que vous avez faites concernant le slippage. Vous pouvez découvrir que le slippage est beaucoup plus, ou beaucoup moins grand que vous ne l'aviez prévu, et donc votre approche de dimensionnement des positions lorsque vous passez à la taille maximale pourrait changer. Enfin, vous pouvez décider que vous n'aimez pas le système, même s'il produit des bénéfices. De nombreuses personnes qui aiment suivre les tendances, par exemple, ont des difficultés à utiliser des stratégies de retour à la moyenne. Il est préférable de découvrir que vous n'aimez pas le trading d'un système alors que vous êtes en train de trader à petite échelle.

Conclusion

Une fois qu'un système est développé, il est clair que le trading en argent réel n'est pas la prochaine étape. La meilleure approche consiste plutôt à procéder avec prudence et à poursuivre l'analyse. Des simulations de Monte-Carlo à l'incubation, en passant par l'analyse de corrélation et les tests limités en argent réel, ces étapes supplémentaires peuvent épargner à votre compte de trading, et à vous-même, bien des maux de tête. Au final, vous disposerez d'une stratégie plus robuste et d'une vision plus réaliste de ce à quoi vous devez vous attendre lorsque vous utilisez cette stratégie avec de l'argent réel.

Compte démo gratuit