Répondre

Optimisation de la marche avant et robustesse

7 réponses

kainc301

Client, bbp_participant, communauté, 54 réponses.

Visiter le profil

Il y a 4 ans #245968

Je souhaite créer un fil de discussion sur le WFO en général et discuter de l'utilité ou non de cet outil pour les autres analystes financiers présents ici.

Je suis d'avis que ce n'est pas du tout nécessaire et que cela n'aide pas à déterminer la robustesse d'une stratégie particulière. De la manière dont WFO est structuré, toute stratégie donnée est optimisée de manière répétée sur plusieurs périodes de données de marché et est ensuite testée sur une petite partie des données OOS. L'idée générale est qu'il est plus probable de simuler des transactions en direct et de tester les performances des stratégies lorsqu'elles s'adaptent à différentes conditions de marché. Mais est-ce vraiment vrai ?

Si les paramètres d'une stratégie donnée sont optimisés de manière répétée, je suis d'avis que le WFO ne fait que tester la robustesse de ces paramètres spécifiques tels qu'ils apparaissent au cours de cette période dans les données du marché. En d'autres termes, il s'appuie sur une optimisation constante afin de déterminer la robustesse d'une stratégie et je pense que l'optimisation constante des stratégies est un principe erroné en premier lieu. J'ai testé des centaines de milliers de stratégies à ce jour et la conclusion que j'en ai tirée est que si l'on modifie les paramètres dans une large mesure, on travaille en fait avec une stratégie complètement différente à chaque fois. Je ne parle pas de la modification des paramètres dans une faible mesure, car vous pouvez tester cela avec des simulations de Monte Carlo. Si vous optimisez constamment une stratégie sur une période beaucoup plus courte, les paramètres peuvent changer à tel point que la stratégie peut très bien être optimisée pour cette période, mais échouer à long terme. En outre, comme vous optimisez sur une courte période, il n'y a aucun moyen de savoir quand une optimisation donnée échouera car chaque optimisation peut être radicalement différente de la précédente et vous pouvez vous retrouver avec de nouveaux paramètres qui étaient bons l'année dernière mais qui échouent sur les marchés réels parce que vous négociez essentiellement avec une stratégie différente de celle de la dernière optimisation. Et si vous n'optimisez pas constamment la stratégie finale qui réussit à WFO, alors il n'y a aucun intérêt à regarder ce que WFO vous dit en premier lieu parce qu'il n'est pas une indication de la performance d'une stratégie dont vous ne changez pas les paramètres.

Je dis tout cela pour dire qu'il n'est pas très logique que quelqu'un optimise constamment ses stratégies en fonction des conditions actuelles du marché. Chaque fois que vous faites cela, vous travaillez avec une stratégie différente qui n'a peut-être fonctionné que pendant le petit laps de temps pour lequel elle a été optimisée et vous ne savez pas à quel point l'optimisation peut affecter les paramètres en fonction des nouvelles données du marché. Il me semble beaucoup plus logique de trouver des stratégies qui survivent aux données OOS et de les optimiser une fois afin d'adapter la performance à l'ensemble des données. Si la stratégie survit à l'OOS et aux simulations de Monte Carlo, l'optimiser une fois permet de trouver les meilleurs paramètres qui ont conservé la plus grande performance sur l'ensemble des données et vous n'avez pas à vous soucier de l'overfitting parce que la stratégie a déjà survécu à l'OOS à ce moment-là. Vous ne devriez pas non plus avoir besoin de revenir constamment à votre stratégie et de la réoptimiser, ce qui peut changer complètement la nature de la stratégie. Au lieu de cela, l'optimisation est effectuée une seule fois et vous pouvez obtenir des performances fiables en soutenant les paramètres finaux.

Mais mon objectif n'est pas d'être paresseux. Bien sûr, cela signifie qu'il y a moins de travail à faire pour développer des stratégies. En supprimant WFO de mon flux de travail, le processus d'élaboration d'une stratégie finale que je considère comme robuste a été considérablement accéléré et il n'est pas nécessaire de revenir en arrière et de réoptimiser 10 à 100 stratégies différentes que vous pouvez être en train d'exécuter. Mais je ne voudrais pas éliminer WFO de mon flux de travail pour des raisons pratiques et de paresse. S'il est vraiment plus avantageux de l'utiliser pour le processus de robustesse, je ne serais pas contre un compromis en termes de temps pour une meilleure stratégie plus fiable. Il est plus important de ne pas laisser de petites erreurs vous coûter de l'argent sur les marchés. Toutefois, jusqu'à présent, je n'ai trouvé aucune raison ou preuve légitime expliquant pourquoi il est préférable d'optimiser constamment une stratégie donnée.

J'aimerais donc poser la question à tous ceux qui utilisent WFO. Trouvez-vous qu'il est bénéfique de l'utiliser ? Si oui, en quoi pensez-vous que le fait d'optimiser constamment les stratégies est plus bénéfique que de ne pas le faire ? J'ai eu du mal à trouver une raison à cela et j'aimerais avoir l'avis d'autres personnes qui ne sont pas du tout d'accord avec ma position car, d'après ce que j'ai compris, WFO est plutôt un test optionnel pour cette raison précise.

0

bentra

Client, bbp_participant, community, sq-ultimate, 22 réponses.

Visiter le profil

Il y a 4 ans #245977

en modifiant les paramètres dans une large mesure, vous travaillez effectivement avec une stratégie complètement différente chaque fois que vous le faites.

Cette idée m'a souvent traversé l'esprit. A quel moment doit-on faire la part des choses entre l'optimisation et l'essai aléatoire de stratégies complètement différentes ? Dans mon propre EA, j'ai des paramètres optimisables qui changent complètement des aspects entiers de la stratégie et je considère que les optimiser revient à essayer différentes stratégies au hasard. C'est l'une des raisons pour lesquelles je pense qu'il est important de savoir exactement ce que fait chaque variable avant de l'optimiser afin de pouvoir juger si elle doit être optimisée et dans quelle mesure nous pouvons la modifier sans qu'elle devienne une stratégie différente.

D'après mon expérience limitée et tous les livres de trading qui incluent un chapitre sur la marche en avant, je dirais qu'il est très probable que le WF puisse avoir une certaine valeur si nous le faisons correctement et si nous prenons soin de ne pas trop exploiter les données et de ne pas, comme vous le dites, "finir avec une stratégie complètement différente". Une WF peut cependant faire plus de mal que de bien si elle n'est pas effectuée correctement, en particulier avec la matrice SQX WF qui peut parfois faire en sorte qu'une WF de certains paramètres semble bonne alors qu'en réalité, nous avons sur-optimisé le processus de WF lui-même.

Il est assez rare pour moi qu'une stratégie fonctionne aussi bien ou mieux dans son OOS d'un WF que dans son OOS pendant la phase de développement de la stratégie, mais quand c'est le cas, j'ai un peu plus confiance dans le WF. Bien sûr, je vais ré-optimiser si nécessaire, comme vous l'avez dit, cela n'a pas de sens de ne pas le faire, oui c'est une douleur et j'ai fait des ajustements spéciaux à mon code mt4 pour soulager la douleur.

Je ne suis pas sûr que je prendrais la peine de l'utiliser comme test de robustesse car, comme vous l'avez dit, le test MC peut faire quelque chose de similaire.

Je suis d'accord avec l'ensemble de votre article, qui est extrêmement bien écrit et qui pose de grandes questions que nous partageons tous les deux, mais ce point me fait tirer la sonnette d'alarme :

Il me semble beaucoup plus logique de trouver des stratégies qui survivent aux données OOS et de les optimiser une seule fois afin d'adapter les performances à l'ensemble des données.

Vous courez le risque d'un surajustement lors de l'optimisation finale ! Je ne l'optimiserais pas après avoir effectué tous les autres tests. Ce n'est pas différent d'une marche en avant avec un grand échantillon que vous n'avez pas encore testé en dehors de l'échantillon. J'opterais au moins pour un WF ancré avant de tenter cela.

Que tous vos ajustements soient amples.


https://www.darwinex.com/darwin/SUG.4.2/

0

mabi

Client, bbp_participant, communauté, 261 réponses.

Visiter le profil

Il y a 4 ans #245978

Le concept doit être le suivant : si une stratégie peut être optimisée sur des données inédites et améliorer ainsi ses performances de manière significative, il s'agit alors d'une stratégie adaptable aux conditions du marché, qui peut très probablement être adaptée à des conditions de marché différentes si elle a été récemment optimisée. Je veux dire par là que lorsque Walk forward a été développé, ils ont eu besoin de temps pour corriger la stratégie puisqu'ils n'en avaient qu'une seule sur laquelle ils ont travaillé pendant 2 ans et qu'ils avaient besoin qu'elle fonctionne sur le plus grand nombre de marchés possible. J'ai environ 400 stratégies en cours d'exécution sur la démo qui ont été optimisées sur les données Unseen et elles seront ré-optimisées en décembre et à l'origine elles ont toutes >80% de périodes gagnantes sur les données Unseen ce qui en pratique devrait signifier que d'ici juin de l'année prochaine, au moment de la seconde optimisation, 90% devrait au moins avoir eu une période rentable. Si c'est le cas, je l'utiliserai probablement, sinon je le jetterai, ce qui est le scénario le plus probable.

En tout cas, jusqu'à présent, je constate que les meilleures performances sont celles des stratégies qui sont simplement optimisées sur des données récentes, mais qui sont encore très performantes sur des données inédites, ce qui est beaucoup plus simple à faire. Cependant, cela semble créer un certain % de perdants totaux immédiats, donc ils doivent d'abord être incubés. Mais les autres ont eu de bonnes performances tout au long de mon test, ils étaient d'un type qui a récemment bien performé en remontant jusqu'à 6 mois en arrière, donc des choses comme le type de stratégie et ce type de performance générale sur le marché récent doivent être pris en compte et comparés avec l'Optimisé pour déterminer l'efficacité de faire et de mettre en œuvre ces opérations pour les stratégies utilisées avec de l'argent réel. Cependant, j'ai constaté qu'il est presque impossible de faire fonctionner une stratégie sur une période perdante en l'optimisant, la seule chose qui semble se produire est une légère amélioration de la performance au fil du temps, elle devient meilleure alors qu'elle fait déjà des bénéfices sans être optimisée.

Pour le test de robustesse, je pense que la meilleure option est d'avoir des stratégies qui fonctionnent sur de nombreux instruments et cadres temporels et qui sont faciles à trouver sur SQx. Comment une stratégie peut-elle être adaptée à la courbe ou mauvaise si elle fonctionne sur des données inédites sur X marchés différents. Elle fonctionnera bien sûr, peut-être pas dans les 6 prochains mois, mais plus tard, c'est certain, sinon le marché cesserait d'être aléatoire, ce qui n'arrivera pas.

0

kainc301

Client, bbp_participant, communauté, 54 réponses.

Visiter le profil

Il y a 4 ans #245980

Vous courez le risque d'un surajustement lors de l'optimisation finale ! Je ne l'optimiserais pas après avoir effectué tous les autres tests. Ce n'est pas différent d'une marche en avant avec un grand échantillon que vous n'avez pas encore testé en dehors de l'échantillon. J'opterais au moins pour un WF ancré avant de tenter cela.

Je ne suis pas d'accord avec cette affirmation. L'optimisation finale, une fois que tout a été testé, se limite généralement à modifier légèrement quelques paramètres. Par exemple, déplacer un stop-loss de 3,4x ATR à 2,8x ATR ou déplacer la sortie après les barres de 25 à 40. Il me semble illogique que ces changements puissent soudainement rendre une stratégie "overfit". Les stratégies suradaptées sont des stratégies qui ne fonctionnent que sur les données sur lesquelles elles ont été FORMÉES. L'optimisation de l'ensemble des données n'est pas la même chose que le réentraînement. La stratégie a toujours survécu aux données OOS précédentes. Modifier légèrement la stratégie n'équivaut pas à la réentraîner sur ces données OOS, car elle doit toujours être considérée comme inédite par rapport à l'ensemble de données de formation d'origine.

Pour le test de robustesse, je pense que la meilleure option est d'avoir des stratégies qui fonctionnent sur de nombreux instruments et cadres temporels et qui sont faciles à trouver sur SQx. Comment une stratégie peut-elle être adaptée à la courbe ou mauvaise si elle fonctionne sur des données inédites sur X marchés différents. Elle fonctionnera bien sûr, peut-être pas dans les 6 prochains mois, mais plus tard, c'est certain, sinon le marché cesserait d'être aléatoire, ce qui n'arrivera pas.

C'est aussi ce que j'ai pensé à l'origine. Cependant, je m'inquiétais des différences qui existent parfois entre les marchés. Pour moi, il s'agit d'une zone encore plus floue que le WFO et j'aimerais faire plus de recherches sur les stratégies qui fonctionnent sur d'autres marchés et qui constituent un véritable test de robustesse. D'après ce que j'ai compris, il faut tester des marchés similaires. Par exemple, vous ne pouvez pas comparer les résultats d'une stratégie sur l'EUR/USD et l'USD/JPY, car ils évoluent pratiquement à l'opposé l'un de l'autre. Il faudrait comparer une stratégie sur l'EUR/USD à la GBP/USD et, si l'on teste l'USD/JPY, la comparer à l'EUR/JPY et ainsi de suite.

Jusqu'à présent, j'ai constaté que les stratégies optimisées sur des données récentes étaient plus performantes que les stratégies optimisées sur des données inédites, ce qui est beaucoup plus simple à réaliser.

Je suis curieux de faire plus de recherches et d'obtenir plus d'avis à ce sujet. Je ne me suis jamais entraîné sur des données plus récentes et je ne les ai jamais testées par rapport aux OOS dans le passé. Je ferais l'inverse : je m'entraînerais sur des données passées et je ferais des données récentes mes OOS afin de prouver que la stratégie fonctionne toujours dans les conditions actuelles du marché. Le meilleur des deux mondes serait d'avoir plusieurs périodes IS ainsi que plusieurs OOS, mais j'attends que cette demande de fonctionnalité soit mise en œuvre 😉 .

0

bentra

Client, bbp_participant, community, sq-ultimate, 22 réponses.

Visiter le profil

Il y a 4 ans #245991

Une modification mineure de la stratégie ne consiste pas à la réentraîner sur ces données OOS, car elles doivent toujours être considérées comme non vues dans l'ensemble de données de formation initial.

Toute retouche est une forme d'ajustement dans une certaine mesure, si vous utilisez les OOS pour les retouches, elles sont par définition considérées comme vues et par définition ne sont plus considérées comme OOS. Si je comprends bien, les petites modifications sont moins susceptibles de nuire et plus susceptibles d'aider, mais l'idée de la marche en avant est d'essayer de vérifier dans quelle mesure l'optimisation/la modification aide ou nuit. Vous pourriez utiliser un peu moins de données ou obtenir plus de données et procéder à une marche en avant par "modification mineure" à la place. Dans votre exemple d'utilisation d'un "échantillon de données complet", quelle est la différence entre ces trois choses ?
-des "retouches mineures" sur 16 ans de vos données complètes
-Obtenir d'abord davantage de données, puis utiliser 16 années sur 25 pour l'IS et avancer sur le reste en procédant à des "ajustements mineurs".
-utiliser 14 années sur 16 et procéder à une "petite retouche" sur les 2 années restantes ? (Cela pourrait être mieux que rien et vous donner confiance dans votre étape de "petites modifications").

Par exemple, vous ne pouvez pas comparer les résultats d'une stratégie sur l'EUR/USD et l'USD/JPY, car ces deux devises évoluent pratiquement à l'opposé l'une de l'autre. Vous devriez comparer une stratégie sur l'EUR/USD à la GBP/USD et, si vous testez l'USD/JPY, la comparer à l'EUR/JPY et ainsi de suite.

Si votre stratégie est symétrique, vous pouvez bien sûr comparer les résultats de l'EURUSD à l'USDJPY. Si votre stratégie n'est pas symétrique, votre affirmation est logique. Je pense que pour le contexte, lorsque l'on parle de tests de marché croisés, il serait utile de spécifier le cadre temporel et de préciser s'il s'agit de stratégies symétriques ou non. Par exemple, je trouve que les cadres temporels plus larges (H4 / D1) sont meilleurs pour les stratégies symétriques et croisées, tandis que les cadres temporels plus petits sont plus asymétriques et semblent plus spécialisés pour une seule paire. Je trouve également que le GOLD, l'USDJPY, l'EURUSD et le GBPUSD constituent un ensemble solide de tests croisés pour les stratégies symétriques à plus grande échelle de temps. Mais un bon ensemble de données pour une stratégie asymétrique à plus petite échelle de temps, quelque chose comme EURUSD, EURJPY et GBPUSD, semble être le meilleur pour une stratégie EURUSD. (Un xxxUSD supplémentaire et un EURxxx supplémentaire) J'ai en fait fait une demande de fonctionnalité pour que nous puissions "inverser" le croisement afin que nous puissions avoir un ensemble de contrôle croisé comme USDJPY, EURJPY, USDGBP comme un ensemble de croisement logique pour une stratégie asymétrique USDJPY. J'ai oublié tout cela jusqu'à maintenant. (https://roadmap.strategyquant.com/tasks/sq4_3319)

 

 

 

 

 

Que tous vos ajustements soient amples.


https://www.darwinex.com/darwin/SUG.4.2/

0

kainc301

Client, bbp_participant, communauté, 54 réponses.

Visiter le profil

Il y a 4 ans #246884

 

 

0

kainc301

Client, bbp_participant, communauté, 54 réponses.

Visiter le profil

Il y a 4 ans #246888

Quelle est la différence entre ces trois choses : - "petites retouches" sur 16 années de l'ensemble de vos données - obtention d'un plus grand nombre de données d'abord, puis utilisation de 16 années sur 25 pour l'IS et progression sur le reste par "petites retouches" - utilisation de 14 années sur 16 et progression par "petites retouches" sur les 2 années restantes non exploitées ? (cela pourrait être mieux que rien et vous donner confiance dans votre étape de "petites modifications").

Eh bien, WFO teste l'optimisation des stratégies plusieurs fois. Je ne le fais pas. La différence est donc que l'exécution de ce test ne me donne pas les données finales que je souhaite lorsqu'il s'agit de préparer une stratégie pour la production, car je n'ai pas l'intention de l'optimiser plus d'une fois.

Si votre stratégie est symétrique, vous pouvez bien sûr comparer les résultats de l'EURUSD à l'USDJPY. Si votre stratégie n'est pas symétrique, votre affirmation est logique. Je pense que pour le contexte, lorsque l'on parle de tests de marché croisés, il serait utile de spécifier le cadre temporel et de préciser s'il s'agit de stratégies asymétriques ou non.

Je ne jurais que par les stratégies symétriques jusqu'à ce que les données me montrent le contraire. Aujourd'hui, je n'utilise plus que des stratégies short-only et long-only pour un marché donné. Je ferai une formation unilatérale par côté et par marché. Le résultat final est deux stratégies différentes qui ne traitent qu'une seule direction avec des règles complètement différentes. Certains, comme vous, ne jurent que par la symétrie. A chacun son métier. En ce qui concerne le TF, cela n'a pas vraiment d'importance tant qu'il n'est pas de l'ordre de 5m ou moins. Si quelqu'un a réussi à faire fonctionner des stratégies de 5m ou moins en trading réel, je le salue.

0

bentra

Client, bbp_participant, community, sq-ultimate, 22 réponses.

Visiter le profil

Il y a 4 ans #247232

jusqu'à ce que les données me montrent le contraire. Aujourd'hui, je n'utilise plus que des stratégies à court et à long terme.

Ce n'est pas surprenant quand on sait à quel point la symétrie est encore défectueuse dans le SQX.

Je comprends que vous pensiez que j'aime la symétrie d'après mon activité récente, mais en fait la plupart de mes stratégies en direct ne le sont pas.

Que tous vos ajustements soient amples.


https://www.darwinex.com/darwin/SUG.4.2/

0

Affichage de 7 réponses de 1 à 7 (sur un total de 7)