{"id":151,"date":"2023-11-25T11:02:16","date_gmt":"2023-11-25T10:02:16","guid":{"rendered":"https:\/\/mltrading.fr\/?p=151"},"modified":"2023-12-03T17:32:45","modified_gmt":"2023-12-03T16:32:45","slug":"strategies-de-trading-le-grand-debat","status":"publish","type":"post","link":"https:\/\/mltrading.fr\/index.php\/2023\/11\/25\/strategies-de-trading-le-grand-debat\/","title":{"rendered":"Strat\u00e9gies de trading: le grand d\u00e9bat"},"content":{"rendered":"\n<p>En mati\u00e8re de conception de robot de trading, on pourrait identifier 2 approches principales qui semblent \u00eatre en opposition. <\/p>\n\n\n\n<p>La premi\u00e8re tend \u00e0 rechercher un &#8220;alpha&#8221; optimum, c&#8217;est \u00e0 dire un ensemble de quelques crit\u00e8res (g\u00e9n\u00e9ralement moins de 10), qui permettraient de g\u00e9n\u00e9rer des trades globalement favorables et qui ainsi se suffiraient \u00e0 eux-m\u00eames. Dans cette approche, on voit d&#8217;un mauvais \u0153il toute tentative d&#8217;optimisation qui ferait prendre syst\u00e9matiquement un risque trop grand d&#8217;over-fitting (suroptimisation de la phase d&#8217;entra\u00eenement avec d\u00e9gradation des performances lors du passage en r\u00e9el). <br>Cette approche pourrait \u00eatre compar\u00e9e \u00e0 la recherche d&#8217;une aiguille dans une botte de foin. Une recherche souvent longue avant d&#8217;aboutir \u00e0 une formule suffisamment robuste pour garantir des revenus quelles que soient les conditions de march\u00e9. Cette qu\u00eate du Graal, toutefois, si elle se concr\u00e9tise, permet par la suite de mettre en \u0153uvre un robot d&#8217;une simplicit\u00e9 d\u00e9concertante&#8230; <br>Cette approche requiert beaucoup de patience, et de curiosit\u00e9. Il faut \u00e9galement savoir qu&#8217;un alpha peut \u00eatre non rentable sur un actif donn\u00e9, mais g\u00e9n\u00e9rer des profits r\u00e9guliers sur un autre pourtant proche. Une syst\u00e9matisation des tests sur des dizaines, voire des centaines d&#8217;actifs peut donc s&#8217;av\u00e9rer \u00eatre une strat\u00e9gie payante. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>&#8220;Amateurs develop individual strategies, believing that there is such a thing as a magical formula for riches. In contrast, professionals develop methods to mass-produce strategies. The money is not in making a car, it is in making a car factory.<br>Think like a business. Your goal is to run a research lab like a factory, where true discoveries are not born out of inspiration, but out of methodic hard work. That was the philosophy of physicist Ernest Lawrence, the founder of the first U.S. National Laboratory&#8221;<\/p>\n<cite>Marcos Lopez de Prado \u2013 Advances en Financial Machine Learning<\/cite><\/blockquote>\n\n\n\n<p>La deuxi\u00e8me approche tend \u00e0 consid\u00e9rer qu&#8217;il est inutile de chercher \u00e0 mod\u00e9liser par un moyen simple un probl\u00e8me aussi complexe que des donn\u00e9es financi\u00e8res. A probl\u00e8me complexe, solution complexe. Il s&#8217;agit donc ici de chercher une strat\u00e9gie brute acceptable, c&#8217;est \u00e0 dire g\u00e9n\u00e9rant suffisamment de signaux gagnants (et perdants), sans forc\u00e9ment se pr\u00e9occuper dans un premier temps de savoir si cette strat\u00e9gie brute est gagnante ou pas. Bien entendu, plus la performance initiale est bonne, et moins il y aura de travail par la suite. <br>Il ne s&#8217;agit alors plus de creuser ind\u00e9finiment \u00e0 la recherche d&#8217;un diamant d\u00e9j\u00e0 taill\u00e9, mais plut\u00f4t de partir d&#8217;un diamant brut et de le tailler soi-m\u00eame (ce qui implique d&#8217;apprendre \u00e0 tailler un diamant!). <br>Le travail d&#8217;optimisation qui va alors s&#8217;en suivre va chercher \u00e0 soustraire des trades g\u00e9n\u00e9r\u00e9s le plus possible de trades perdants, ce qui va permettre d&#8217;augmenter le WinRate. En langage de machine learning, on part d&#8217;une strat\u00e9gie brute avec une pr\u00e9cision moyenne \u00e0 faible, mais avec un bon recall, puis on cherche \u00e0 am\u00e9liorer la pr\u00e9cision sans d\u00e9t\u00e9riorer le facteur recall (en d&#8217;autres termes, on veut abaisser le nombre de faux positifs, tout en maintenant \u00e9lev\u00e9 le nombre de vrais positifs).<br>Bien entendu, les mod\u00e8les de machine learning\/deep learning rentrent dans cette cat\u00e9gorie. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Over-fitting vs under-fitting<\/h2>\n\n\n\n<p><br>Si dans la premi\u00e8re approche d\u00e9crite pr\u00e9c\u00e9demment, le risque d&#8217;over-fitting est nul (puisqu&#8217;il n&#8217;y a pas eu d&#8217;\u00e9tape d&#8217;optimisation pouss\u00e9e), le risque d&#8217;under-fitting est quant \u00e0 lui \u00e9lev\u00e9. En somme, une telle strat\u00e9gie va tr\u00e8s probablement \u00e9mettre des trades dans des configurations de march\u00e9 que tout analyste technique aurait pu qualifier \u00e0 l&#8217;avance de tr\u00e8s probablement d\u00e9favorable. Des pertes \u00e9vitables auront donc lieu r\u00e9guli\u00e8rement, ce qui peut s&#8217;av\u00e9rer assez frustrant.<\/p>\n\n\n\n<p>Dans la deuxi\u00e8me approche, l&#8217;optimisation va quant \u00e0 elle faire effectivement prendre le risque d&#8217;over-fitting, probl\u00e8me qu&#8217;il est important de prendre tr\u00e8s au s\u00e9rieux. A mes d\u00e9buts, j&#8217;\u00e9tais capable de produire des r\u00e9sultats de simulation quasi lin\u00e9aires, avec 90% de trades gagnants, des performances incroyables, et pourtant, lors du passage sur des donn\u00e9es en temps r\u00e9el, c&#8217;\u00e9tait la d\u00e9sillusion la plus totale. Cela signifie-t-il qu&#8217;il faille \u00e9viter totalement toute phase d&#8217;optimisation? Je ne le pense pas. Il est par contre n\u00e9cessaire d&#8217;essayer de comprendre l&#8217;over-fitting, afin de le limiter au maximum.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"356\" src=\"https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/overfiting.png\" alt=\"\" class=\"wp-image-155\" srcset=\"https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/overfiting.png 1024w, https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/overfiting-300x104.png 300w, https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/overfiting-768x267.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Des donn\u00e9es en quantit\u00e9 suffisante<\/h2>\n\n\n\n<p>Le premier conseil est de disposer de donn\u00e9es en quantit\u00e9 suffisante. On peut g\u00e9n\u00e9ralement trouver gratuitement des historiques sur 10 ans pour les indices, forex, mati\u00e8res premi\u00e8res. Bien plus si vous vous int\u00e9ressez aux actions. Avec le recul, un historique de 10 ans me semble insuffisant. Vous pouvez essayer de vous procurer des historiques plus anciens, ce qui sera probablement payant. Vous pouvez \u00e9galement, et c&#8217;est \u00e9galement une bonne pratique, optimiser votre robot sur la base des donn\u00e9es de plusieurs actifs proches. Plusieurs paires de devises si vous \u00eates sur le forex, ou plusieurs indices si vous \u00eates sur les indices. <br>A titre d&#8217;exemple mon dernier robot <a href=\"https:\/\/mltrading.fr\/index.php\/pegase\/\">Pegase <\/a>est optimis\u00e9\/test\u00e9 sur 5 indices : DowJones, Dax, SP500, Nasdaq, JP225. Un dernier indice, le CAC40 est utilis\u00e9 pour la validation\/\u00e9valuation des performances. <br>Donc plus on a de donn\u00e9es, mieux c&#8217;est. <br>Bien entendu, il faudra prendre soin de normaliser nos donn\u00e9es afin de pouvoir comparer plusieurs actifs entre eux. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ne pas trop descendre dans les \u00e9chelles de temps<\/h2>\n\n\n\n<p>Mon deuxi\u00e8me conseil est de rester le plus g\u00e9n\u00e9ral possible lors de l&#8217;\u00e9criture d&#8217;un crit\u00e8re, ce qui implique notamment de ne pas descendre dans les \u00e9chelles de temps. Avec l&#8217;exp\u00e9rience, on s&#8217;aper\u00e7oit que la description d&#8217;une configuration de march\u00e9 sur la base des graphes MN1, W1 et D1 suffit le plus souvent. Plus on descend, et plus on rentre dans une description tr\u00e8s sp\u00e9cifique qui aura peu de chances de se reproduire un jour. Et plus on descend, plus le &#8220;bruit&#8221; occupera une place importante par rapport \u00e0 l&#8217;information v\u00e9ritable. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Faire varier les seuils<\/h2>\n\n\n\n<p>L&#8217;objectif de l&#8217;optimisation est d&#8217;arriver \u00e0 d\u00e9crire des configurations de march\u00e9 qui se reproduisent r\u00e9guli\u00e8rement dans le temps, avec des r\u00e9sultats comparables \u00e0 chaque fois. Cette capacit\u00e9 \u00e0 identifier les &#8220;features&#8221; les plus appropri\u00e9es et \u00e0 \u00e9crire les bons crit\u00e8res se d\u00e9veloppe bien entendu avec l&#8217;exp\u00e9rience. <br>Une bonne pratique consiste toutefois \u00e0 faire varier les seuils que l&#8217;on peut \u00eatre amen\u00e9 \u00e0 utiliser. Par exemple, si l&#8217;on veut quantifier la force d&#8217;un gradient de moyenne mobile, ou bien l&#8217;\u00e9loignement du prix par rapport \u00e0 une bande de bollinger ou \u00e0 une moyenne mobile, on peut \u00eatre amen\u00e9 \u00e0 utiliser une valeur seuil. On va ainsi s&#8217;apercevoir par exemple que si notre gradient de moyenne mobile est sup\u00e9rieur \u00e0 X, et le prix est inf\u00e9rieur \u00e0 Y par rapport \u00e0 cette moyenne mobile, il devient dangereux de vendre car nous constatons une majorit\u00e9 de trades perdants. Mais que se passe-t-il si nous faisons varier X et Y de quelques points? Si la proportion de trades perdants reste tr\u00e8s majoritaire, alors nous pourrons peut-\u00eatre en conclure que ces crit\u00e8res se suffisent \u00e0 eux-m\u00eames. Par contre si nous voyons appara\u00eetre des trades gagnants int\u00e9ressants, alors nous allons peut-\u00eatre en conclure que l&#8217;ajout de nouveaux crit\u00e8res, tels que le stochastique ou autre, est n\u00e9cessaire. <br><\/p>\n\n\n\n<p>Pour conclure, je dirai que le choix entre les 2 approches vous appartient, mais que les 2 peuvent donner de bons r\u00e9sultats, \u00e0 condition d&#8217;avoir bien conscience des notions d&#8217;over-fitting\/under-fitting. <\/p>\n\n\n\n<p>Si le machine learning a le vent en poupe ces derni\u00e8res ann\u00e9es concernant la pr\u00e9diction de donn\u00e9es financi\u00e8res et que de nombreuses recherches sont men\u00e9es dans ce domaine, les solutions simples et toutes fa\u00eetes ne sont pas aussi \u00e9videntes. Ce n&#8217;est pas parce que vous allez mettre en \u0153uvre un algorithme Random Forest rapidement sur votre jeu de donn\u00e9es, avec quelques features prises au hasard, que vous pouvez esp\u00e9rer rapidement de bons r\u00e9sultats sans vous soucier de ce que fait l&#8217;algorithme. <\/p>\n\n\n\n<p>Passer du temps \u00e0 analyser les march\u00e9s, \u00e9crire des crit\u00e8res \u00e0 la main pour voir concr\u00e8tement ce que cela donne, et au fil du temps identifier des patterns qui fonctionnent est une premi\u00e8re \u00e9tape qui me semble indispensable.<br>Pour alimenter votre algorithme de machine learning avec les bonnes informations, encore faut-il savoir quelles sont ces &#8220;bonnes informations&#8221;. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"691\" src=\"https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/decision-tree-design-vector-1024x691.jpg\" alt=\"\" class=\"wp-image-159\" srcset=\"https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/decision-tree-design-vector-1024x691.jpg 1024w, https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/decision-tree-design-vector-300x202.jpg 300w, https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/decision-tree-design-vector-768x518.jpg 768w, https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/decision-tree-design-vector-1536x1037.jpg 1536w, https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/decision-tree-design-vector-2048x1382.jpg 2048w, https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/decision-tree-design-vector-1200x810.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<p>Dans un prochain article j&#8217;introduirais mon algorithme &#8220;<a href=\"https:\/\/mltrading.fr\/index.php\/algorithme-smart-forest\/\">Smart Forest<\/a>&#8220;, en r\u00e9f\u00e9rence \u00e0 l&#8217;algorithme &#8220;Random Forest&#8221; de machine learning. Nous y verrons comment on peut \u00e9crire des arbres de d\u00e9cision manuellement, et quels avantages\/inconv\u00e9nients cette approche peut avoir par rapport \u00e0 son cousin Random Forest. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>En mati\u00e8re de conception de robot de trading, on pourrait identifier 2 approches principales qui semblent \u00eatre en opposition. La premi\u00e8re tend \u00e0 rechercher un &#8220;alpha&#8221; optimum, c&#8217;est \u00e0 dire un ensemble de quelques crit\u00e8res (g\u00e9n\u00e9ralement moins de 10), qui permettraient de g\u00e9n\u00e9rer des trades globalement favorables et qui ainsi se suffiraient \u00e0 eux-m\u00eames. Dans &hellip; <a href=\"https:\/\/mltrading.fr\/index.php\/2023\/11\/25\/strategies-de-trading-le-grand-debat\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Strat\u00e9gies de trading: le grand d\u00e9bat&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":163,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-151","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-strategie-trading"],"aioseo_notices":[],"author_meta":{"display_name":"stephanie","author_link":"https:\/\/mltrading.fr\/index.php\/author\/admin3872\/"},"featured_img":"https:\/\/mltrading.fr\/wp-content\/uploads\/2023\/11\/debat-300x209.png","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/mltrading.fr\/index.php\/category\/strategie-trading\/\" class=\"advgb-post-tax-term\">Strat\u00e9gie de trading<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Strat\u00e9gie de trading<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 2 years ago","modified":"Updated 2 years ago"},"absolute_dates":{"created":"Posted on 25 November 2023","modified":"Updated on 3 December 2023"},"absolute_dates_time":{"created":"Posted on 25 November 2023 11h02","modified":"Updated on 3 December 2023 17h32"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/mltrading.fr\/index.php\/wp-json\/wp\/v2\/posts\/151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mltrading.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mltrading.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mltrading.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mltrading.fr\/index.php\/wp-json\/wp\/v2\/comments?post=151"}],"version-history":[{"count":14,"href":"https:\/\/mltrading.fr\/index.php\/wp-json\/wp\/v2\/posts\/151\/revisions"}],"predecessor-version":[{"id":266,"href":"https:\/\/mltrading.fr\/index.php\/wp-json\/wp\/v2\/posts\/151\/revisions\/266"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mltrading.fr\/index.php\/wp-json\/wp\/v2\/media\/163"}],"wp:attachment":[{"href":"https:\/\/mltrading.fr\/index.php\/wp-json\/wp\/v2\/media?parent=151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mltrading.fr\/index.php\/wp-json\/wp\/v2\/categories?post=151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mltrading.fr\/index.php\/wp-json\/wp\/v2\/tags?post=151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}