Répondre

Je suis actuellement en train de construire un flux de travail pour des stratégies forex réussies. Rejoignez-moi !

47 réponses

AlgotradingDE

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

Visiter le profil

il y a 2 ans #277576

J'utilise StrategyQuant depuis plus de dix ans, mais croyez-le ou non, je n'avais jamais utilisé toutes ses capacités jusqu'à présent.

Mon processus consiste à créer des milliers de stratégies dans le constructeur, puis à les soumettre à un contrôle de robustesse très sélectif. Les (quelques) stratégies survivantes sont ensuite activées sur un compte de démonstration MT4, où elles doivent exécuter au moins 25 transactions avant que je ne les considère comme utilisables sur un compte réel.

Jusqu'à présent, je suis très satisfait de ce processus et j'aimerais automatiser davantage la production de systèmes performants. C'est pourquoi je me suis plongé dans les fonctions de projet personnalisé qui peuvent être utilisées pour créer des flux de travail personnalisés.

Je suis en train d'élaborer des exemples de flux de travail pour des stratégies de change réussies, et je serais heureux si quelqu'un sur ce forum est intéressé par la même chose et désireux de partager ses expériences.

En particulier, j'aimerais savoir si quelqu'un a déjà lancé un tel projet par ses propres moyens ?

Gerhard Frischholz
https://Algotrading.de

1

AlgotradingDE

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

Visiter le profil

il y a 1 an #278123

Bonjour Kevin,

Un autre élément important à prendre en compte, merci pour votre commentaire. Je pense que nous sommes tous d'accord pour dire que la performance en direct devrait être aussi proche que possible des statistiques de performance simulée de StrategyQuant. Même si nous savons tous qu'il n'y aura jamais de correspondance parfaite. Mais elles doivent correspondre "d'une manière ou d'une autre" (même si je réfléchis encore à la manière de quantifier cette "d'une manière ou d'une autre").

Pourquoi ne pas construire ensemble un flux de travail et l'optimiser conjointement ? Nous pouvons avoir des instruments différents, des délais différents sur lesquels nous voulons nous concentrer, mais les méthodes pour construire des systèmes de test robustes devraient être quelque chose que nous pouvons faire ensemble.

Qu'en pensez-vous ? Je suis heureux de partager mes fichiers de flux de travail comme point de départ.

Meilleures salutations

AlgotradingDE

 

Gerhard Frischholz
https://Algotrading.de

2

FirestarZA

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

Visiter le profil

il y a 1 an #278126

Tout d'abord, il peut sembler que je sois "avancé" dans mon utilisation des flux de travail, mais ce n'est qu'une impression. J'ai beaucoup réfléchi à la question et j'ai construit et testé un grand nombre de flux de travail, mais je n'ai toujours rien qui me satisfasse.

Ensuite, une chose à laquelle je crois fermement, c'est une période (disons les deux dernières années) d'attente. Il s'agit d'une période qui n'a jamais été touchée par le processus de développement (j'utilise généralement la période du 01/01/2019 à la date actuelle). Cela simule en fait les 3 dernières années d'un compte de démonstration. Je marque cette période comme OOS, alors que IS est le reste des données historiques disponibles. C'est ma dernière étape, avant de vérifier la corrélation du portefeuille. Je filtre alors uniquement sur les données OOS (puisque le reste a déjà été testé en profondeur d'une manière ou d'une autre).

Je vais maintenant vous donner ma version des réponses aux questions que vous avez posées :
- Quels sont les tests de robustesse utilisés par d'autres personnes ?
J'aime les tests de robustesse plus avancés, mais j'essaie d'avoir un peu de tout. Je ferai donc un certain nombre de tests MC, de tests d'hypothèses, de tests sur différents marchés et horizons temporels, puis je passerai à SPP et WFM en particulier, dont je suis un grand fan (même si je ne supprimerai pas nécessairement les stratégies qui échouent à ces deux tests).

- quels tests de robustesse permettent de produire des stratégies qui fonctionnent dans un environnement réel
Je pense que le WFM et le holdout sont d'excellents tests pour simuler un environnement réel. Encore une fois, je ne serai pas nécessairement trop strict avec le WFM en particulier, car c'est un test très tactile, mais je veux des résultats décents, même s'ils ne me donnent pas tout à fait mon carré de 9×9 qui a réussi.

- Qu'en est-il de l'optimisation des stratégies qui ont réussi : est-il possible/obligatoire de les optimiser par la suite ou devons-nous les laisser intactes ?
Pour l'instant, je n'optimise pas. La raison en est que j'ai une peur bleue de l'overfitting. J'évite autant que possible tout ce qui peut contribuer à l'overfitting. Je ne pense pas que je l'éviterai toujours, mais pour l'instant, je n'optimise pas. Il se peut que je le fasse plus tard, lorsque mes stratégies commencent à échouer et que j'ai besoin de leur donner un peu de vie avant de les abandonner. À ce moment-là, je testerai si c'est une bonne ou une mauvaise chose.

Enfin, je suis 100%, si vous voulez construire un flux de travail ensemble. Je partagerai aussi volontiers le flux de travail que j'ai construit (la plupart de mes autres flux de travail... ceux qui fonctionnent, plus ou moins, sont des flux de travail d'autres personnes que j'ai modifiés).

Je dois simplement demander que nous le fassions sur une autre plate-forme. Le forum n'est pas vraiment propice à une bonne communication, IMO. Mais je suis heureux de participer à ce que vous déciderez.

2

Kevin

Abonné, bbp_participant, client, communauté, sq-ultimate, 4 réponses.

Visiter le profil

il y a 1 an #278130

Bonjour Gerhard,

En réponse à votre suggestion, j'aimerais beaucoup travailler conjointement à l'élaboration et à l'optimisation des flux de travail. N'hésitez pas à me faire savoir comment vous souhaitez aller de l'avant. Je trouve que algotrading.de est un projet très intéressant.

Dans le prolongement des critères de mise en œuvre, je trouve que les critères de classement sont parfaitement valables et j'aimerais à un moment donné analyser les critères de sélection de la stratégie comme quelque chose qui peut être optimisé en tant que stratégie en soi.

Je suis actuellement en train de tester et d'affiner mes flux de travail, mais pour l'essentiel, j'utilise ce qui suit :

- Bâtisseur : filtrage de base sur la population initiale pour l'évolution génétique, filtrage plus strict dans le classement par facteur de profit, stabilité et rendement annuel % / DD% sur le capital initial (cf. https://strategyquant.com/codebase/annual-return-max-drawdown-of-initial-capital/).

- Robustesse : Je travaille avec une précision de 1 minute, je manipule les transactions MC (ordre, saut), je travaille sur différents horizons temporels, si l'horizon temporel est inférieur à H1, je travaille sur les données tick, paramètres de stratégie MC, historique des données MC, écart de dérapage MC.

- Optimisation : optimisation séquentielle et matrice WF. J'applique les paramètres optimisés et je refais tous les tests de robustesse avec les nouveaux paramètres.

Je dois généralement exécuter l'ensemble du flux de travail plusieurs fois jusqu'à l'optimisation, afin d'avoir au moins quelques stratégies avec lesquelles je peux commencer la phase d'optimisation, parce que c'est généralement la partie qui demande le plus de travail, dans le sens où c'est là que je révise chaque stratégie une par une pour voir quels sont les paramètres les plus stables, etc.

Après avoir testé sur la démo, etc. j'effectue des tests de corrélation dans le cadre de l'assurance qualité, afin d'éliminer du portefeuille les stratégies corrélées et de les laisser en attente. J'ajuste la taille des positions en fonction du DD MC 95% de chaque stratégie et de la taille du compte.

C'est d'ailleurs mon mode de fonctionnement actuel et je suis encore dans une phase de consolidation, c'est pourquoi je serais intéressé par une collaboration.

Salutations

1

Conmariin

Abonné, bbp_participant, communauté, client, 54 réponses.

Visiter le profil

il y a 1 an #278166

Bonjour à tous ! 🙂 .

Voici l'un de mes flux de travail pour l'Eurusd H1

Meilleures salutations

Conmariin

Pièces jointes :
Vous devez être connecté pour visualiser les fichiers joints.

Gestion automatisée avec Expert Advisor
https://www.rabenesche.de

2

AlgotradingDE

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

Visiter le profil

il y a 1 an #278237

Bonjour Conmariin,

Merci beaucoup d'avoir partagé votre flux de travail. C'est le bon esprit qui nous aide tous à nous améliorer.

J'ai commencé aujourd'hui à analyser votre flux de travail et ce sera une excellente occasion de discuter des avantages et des inconvénients des différentes tâches.

Je vais également partager un flux de travail que j'ai récemment finalisé. Il me donne de très bons résultats sur l'EURUSD 1H timeframe. Vous pouvez le télécharger et l'analyser via le lien ci-dessous.

Prenons le temps de passer en revue les éléments des flux de travail que nous avons partagés, puis travaillons ensemble sur les améliorations possibles ou simplement sur les enseignements tirés de chacun des exemples.

J'apprécie beaucoup votre volonté de partager votre travail et j'invite toutes les personnes intéressées à se joindre à notre discussion. Construisons un flux de travail (et pas seulement un) qui nous rapporte beaucoup d'argent.

Meilleures salutations

Gerhard Frischholz

Pièces jointes :
Vous devez être connecté pour visualiser les fichiers joints.

Gerhard Frischholz
https://Algotrading.de

2

AlgotradingDE

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

Visiter le profil

il y a 1 an #278271

J'exécute votre flux de travail sur un ordinateur en nuage et je viens de me rendre compte que vous avez besoin de construire 3000 stratégies avant de mettre en œuvre les retests. Un calcul approximatif m'indique que le Builder devrait fonctionner pendant environ 2 mois pour produire autant de stratégies initiales.

Ma question est la suivante : est-ce basé sur votre expérience avec les tests de robustesse à venir ou un plus petit nombre de systèmes initiaux fonctionnera-t-il également ?

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Abonné, bbp_participant, communauté, client, 54 réponses.

Visiter le profil

il y a 1 an #278273

Bonjour Gerhard,

Je prends 3000 stratégies construites parce que les tests de robustesse trient beaucoup après cela et ne laissent généralement pas grand-chose. Je l'appelle aussi le " camp d'entraînement " 😉

Mais comme j'ai un VPS avec 8 cœurs et 32 Go de Ram sous Linux, il faut en moyenne 3 à 4 semaines pour que les 3000 stratégies soient remplies. Cela dépend de la paire que j'ai construite.

Personnellement, je trouve qu'il est très important de fixer des critères stricts lors du tri, car je n'optimiserai pas les stratégies. Elles sont ensuite remplacées par de nouvelles si elles fonctionnent mal.

—–

Dans votre flux de travail, j'ai remarqué que vous preniez des mesures supplémentaires pour trier les stratégies. Ces étapes supplémentaires sont-elles dues au fait que vous triez ensuite les stratégies manuellement ? Je les trie toujours automatiquement à la fin de chaque étape. Vous pouvez régler cela sous "Classement" -> "Supprimer les stratégies échouées de la banque de données". Cela permettrait de rationaliser votre flux de travail et de l'automatiser davantage.

Gestion automatisée avec Expert Advisor
https://www.rabenesche.de

0

AlgotradingDE

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

Visiter le profil

il y a 1 an #278279

Bonjour Conmariin,

Nos approches sont très similaires et, pour moi aussi, il s'est avéré que j'ai besoin d'un nombre important de stratégies construites avant même de commencer tous les tests de robustesse. En effet, ils doivent être très stricts afin d'obtenir des résultats réalistes en direct.

En ce qui concerne l'optimisation, je suis arrivé à la même conclusion que vous, c'est-à-dire ne pas optimiser les stratégies qui ont survécu aux tests de robustesse. Au départ, je pensais qu'elles devaient être suffisamment robustes pour être optimisées pour la dernière phase du marché, mais je pense que c'est complètement faux. Je suis tout à fait d'accord avec vous sur le fait qu'il s'agit de trouver (builder) et de sélectionner (retester) des stratégies solides. Et non pas de mettre la main sur le bouton d'optimisation 🙂 .

En ce qui concerne les 3000 stratégies que vous construisez avant de commencer les tests de robustesse, j'utilise une légère modification qui permet de gagner du temps dans le processus de construction. J'utilise une légère modification qui permet de gagner du temps dans le processus de construction :

Je laisse le constructeur créer des stratégies sur l'horizon temporel sélectionné uniquement (comme 1H), ce qui crée des stratégies beaucoup plus rapidement. Ensuite, comme premier test, j'exécute ces stratégies sur l'échelle de temps 1min. D'après mes statistiques, environ 80% des stratégies survivent à ce test sur l'unité de temps 1min. Le test lui-même ne prend que quelques minutes. En conclusion, je peux créer beaucoup plus de stratégies dans le même laps de temps en divisant simplement le processus en deux étapes.

Par souci de clarté, voici ce que je fais :

1. Exécutez le Builder avec l'horizon temporel sélectionné pour, par exemple, 3000 stratégies.

2. Exécutez le test de précision du backtest supérieur avec des données à 1 minute sur ces 3000 stratégies.

J'apprécie beaucoup cette discussion, elle contient tout ce qu'il faut pour apprendre les uns des autres. Merci encore de partager votre expérience, je serai heureux de partager la mienne.

Je vais continuer à évaluer votre flux de travail et je reviendrai vers vous si j'ai d'autres questions à poser ou à discuter.

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Abonné, bbp_participant, communauté, client, 54 réponses.

Visiter le profil

il y a 1 an #278280

Bonjour Gerhard,

A première vue, votre méthode semble plus rapide. Mais il y a une petite erreur de raisonnement. Ma méthode est la suivante :

Etape 1 : Construire une stratégie avec le temps H1 avec des données en H1 (le plus rapide) -> la stratégie est ok alors directement avec le contrôle croisé si la stratégie est aussi ok dans le temps H1 avec des données en M1 (le plus lent) -> si la stratégie n'est pas ok alors elle est immédiatement supprimée automatiquement. Construire la stratégie suivante.
Étape 2 : Lorsque 3 000 stratégies ont été élaborées, il faut procéder à un nouveau test.

Votre méthode est la suivante :
Etape 1 : Construire des stratégies avec l'horizon temporel H1 en H1 (le plus rapide) jusqu'à ce que 3000 stratégies aient été construites.
Etape 2 : Vérifier si les stratégies sont correctes dans le timeframe H1 avec des données dans M1 (le plus lent) -> 80% (dans votre exemple) sont correctes = 2400 stratégies.
Étape 3 : Le nouveau test est lancé avec 2400 stratégies.

Bien sûr, vous serez plus rapide avec moins de stratégies 😉 .

Gestion automatisée avec Expert Advisor
https://www.rabenesche.de

0

AlgotradingDE

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

Visiter le profil

il y a 1 an #278281

Bonjour Conmariin,

Votre commentaire me fait reconsidérer ma déclaration. J'étais d'avis que le test Higher Backtest Precision sur des données de 1 min est effectué pour chaque stratégie générée, et pas seulement pour celles qui ont passé les critères du Builder. Si c'est le cas, vous n'économiserez rien en séparant les deux tâches, et vous vous retrouverez avec moins de stratégies que ce que vous souhaitiez.

Je n'ai pas trouvé d'indication claire à ce sujet dans la documentation de StrategyQuant. Avez-vous fait un essai ?

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Abonné, bbp_participant, communauté, client, 54 réponses.

Visiter le profil

il y a 1 an #278284

Bonjour Gerhard,

Je ne pense pas que ce soit quelque chose qui doive être documenté. C'est plutôt une question de logique.
D'après votre méthode, c'est tout à fait possible ! Mais alors vous ne partez pas de 3000 stratégies, mais de moins.

En fait, cela n'a pas d'importance, car les deux méthodes ont leur justification. J'évite toute intervention manuelle dans le flux de travail. Du moins dans la mesure où elle est possible. C'est la même chose que pour le trading avec des robots : éliminer autant que possible la source humaine d'erreur. Je me suis souvent trouvé dans l'obligation d'accepter une stratégie "ratée" au lieu d'une stratégie "réussie". " Mais elle avait un si beau drawdown... ! " 😉

D'ailleurs, je dois dire que les conseillers experts créés avec StrategyquantX sont les plus rentables. J'ai commencé un tout nouveau portefeuille SQX sur un compte de démonstration l'année dernière. Et le profit, bien que l'année ait été difficile, a été d'environ 60%.
Sur la base de ce résultat, j'ai commencé cette année avec un compte réel. Oui, je sais, ce n'est vraiment pas une bonne année pour commencer ! 😀 Mais depuis que j'utilise la règle 1%, les pertes sont supportables et les robots ne font que remonter la pente.
La différence entre la version démo et la version live est également très faible. Bien sûr, les robots ne font pas toujours 1:1 à chaque trade comme sur la démo, mais ils sont acceptablement très proches.

Gestion automatisée avec Expert Advisor
https://www.rabenesche.de

0

AlgotradingDE

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

Visiter le profil

il y a 1 an #278285

Bonjour Conmariin,

vous avez tout à fait raison. Et ce que j'ai négligé, c'est le fait que vous avez mis des exigences très strictes dans votre test de haute précision de backtest 1min. Ainsi, même avec "ma" méthode, la majorité des stratégies initiales ne passeraient pas le test de 1 minute.

J'apprécie que vous mentionniez que vous ne voulez pas interférer manuellement avec le test de robustesse. C'est tout à fait vrai. Souvent, nous sommes tentés de le courber parce que nous aimons certaines stratégies et que nous ne voulons pas qu'elles soient mises de côté par le "cruel" test de robustesse.

Et il semble que cette façon de gérer les choses vous convienne. C'est une bonne chose. Pour moi, le test sur un compte réel est le test ultime.

Gerhard Frischholz
https://Algotrading.de

0

Kevin

Abonné, bbp_participant, client, communauté, sq-ultimate, 4 réponses.

Visiter le profil

il y a 1 an #278301

Bonjour Gerhard et Conmariin,

Merci d'avoir partagé ces flux de travail. J'ai joint l'un des miens. Comme je l'ai indiqué précédemment, j'utilise une mesure personnalisée (Annual % Ret / DD% on initial capital), que j'ai publiée pour tous dans la base de code. Toutefois, si vous ne voulez pas vous embêter avec cela, la mesure intégrée Annual % ret / DD% serait similaire, mais pas aussi stricte.

Notez que certaines tâches après la construction initiale sont désactivées. Elles sont là parce que j'ai essayé de travailler avec une phase de construction complète où je faisais plusieurs itérations de construction, avec deux ordinateurs (un avec ma licence pro et un autre avec ma licence starters). La dernière fois, j'ai attendu d'avoir construit environ 8000 pièces avant de passer à autre chose. Sinon, j'ai remarqué que si je commence à faire des tests de robustesse avec seulement, disons 1000 stratégies, et qu'aucune ne passe les tests, je suis tenté d'assouplir mes critères, afin d'en laisser plus passer à travers les filtres. J'ai séparé la haute précision (résolution du test M1) de la phase de construction, essentiellement parce que la licence de démarrage ne permet pas de refaire des tests. L'autre option serait de faire la construction directement avec la résolution M1. Mais pour l'instant, je préfère utiliser le même processus pour les deux, même si cela signifie qu'il faut traiter beaucoup plus de stratégies dont je sais qu'elles seront filtrées dans la phase suivante.

Notez que j'ai personnalisé les options d'évolution génétique et inclus des filtres sur la population initiale. De cette manière, la génération de la population initiale prend plus de temps, mais j'ai constaté que les stratégies produites par cette population initiale sont de meilleure qualité. À la fin de chaque tâche, j'effectue un filtrage dans le classement ou dans la vérification croisée. Je ne copie que les stratégies réussies dans une banque de données pour chaque phase. De cette façon, je peux examiner quelles stratégies ont survécu à quelle phase de retest, au cas où je voudrais ajuster le flux de travail d'une manière ou d'une autre ou simplement examiner les résultats d'une phase particulière plus en détail, sans avoir à exécuter les tâches une par une pour ce faire.

Comme j'utilise Darwinex comme courtier, vous verrez que j'ai une étape où je teste avec les données de tick de Darwinex sur les données de tick disponibles (typiquement seulement à partir de 2018 ou à peu près).

Je suis en train de repenser mon flux de travail à l'aide de certaines des idées que vous avez partagées dans ce forum. Je souhaite maintenant disposer d'un processus qui m'évite d'appliquer des paramètres optimisés et donc de devoir refaire des tests, etc. avec ces nouveaux paramètres, car je pense que cela alourdit considérablement les choses. Malgré tout, je pense que les étapes d'optimisation séquentielle et d'optimisation de la marche en avant sont importantes, mais davantage en tant que tests de robustesse, même si je n'applique pas les paramètres "optimisés". L'optimisation séquentielle garantit que les paramètres se situent dans une plage de valeurs stable et, pour faire court, la lecture de Roberto Pardo m'a convaincu que la WF est également utile pour la robustesse.

J'aime l'idée de sélectionner les stratégies à inclure dans un portefeuille de compte réel sur la base de la performance dans un compte de démonstration ou dans un compte réel avec une taille de position minimale. Cependant, en ce qui concerne le classement, je pense qu'il serait bon d'avoir un seuil d'exigence minimal, par exemple un facteur de profit > 1,5 ou quelque chose comme ça. Qu'en pensez-vous ?

Santé !

Pièces jointes :
Vous devez être connecté pour visualiser les fichiers joints.

1

AlgotradingDE

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

Visiter le profil

il y a 1 an #278305

Bonjour Kevin, bonjour Conmariin,

Malheureusement, ma (longue) réponse à vos messages est toujours en attente de modération, bien que je ne sache pas pourquoi. J'espère qu'elle sera bientôt publiée, car elle est très importante. Je voulais suggérer un projet de collaboration très concret.

Je dirais que s'il n'est pas publié avant demain, je prendrai la peine d'écrire à nouveau l'intégralité du billet.

Espérons que tout se passera bien !

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Abonné, bbp_participant, communauté, client, 54 réponses.

Visiter le profil

il y a 1 an #278310

Bonjour Kevin,

Merci pour votre flux de travail !

J'ai adapté l'utile ProfitFactor(IS) >= 1 dans les options génétiques à mon flux de travail. Oui, cela prend plus de temps pour arriver à votre nombre de stratégies, mais je pense que vous avez raison.

Je fais également la matrice Walk-Forward avec le gagnant du "concours", mais ce n'est pour moi qu'un élément statistique. Je reconnaîtrai les résultats, mais ils ne constituent pas un critère pour trier les EA.

 

Gestion automatisée avec Expert Advisor
https://www.rabenesche.de

0

Affichage de 15 réponses de 16 à 30 (sur un total de 48)

1 2 3 4