Pourquoi n'avez-vous pas dit dès le début que vous vous occupiez de génétique ?
Leprincipe même de la recherche génétique est basé sur le hasard et n'a donc aucun intérêt à "continuer ce que l'on a commencé". Son rôle est de fonctionner de manière aléatoire.
Et même dans ce cas, le cache est utilisé. C'est juste que votre probabilité de tomber sur les résultats calculés précédemment est très faible (vous avez une zone de recherche de 50 millions de variantes). On dirait donc qu'on commence par le début, puisque le point de départ est aléatoire.
Si vous lisez l'aide, elle dit exactement le contraire. Peut-être est-ce mal écrit ? J'aimerais comprendre.
Si le nombre total de pas d'optimisation dépasse 1 000 000 dans un système 32 bits ou 100 000 000 dans un système 64 bits, le mode d'optimisation rapide sera automatiquement appliqué.
Dans l'optimisation génétique, les résultats intermédiaires sont enregistrés dans le cache après le calcul de chaque génération (fichier_data_platform/tester/cache/*.gen). Ainsi, le processus d'optimisation génétique peut être interrompu à tout moment. Même si le processus d'optimisation génétique est interrompu en raison de causes externes (par exemple, une panne de courant), l'optimisation se poursuivra automatiquement à partir de la dernière génération calculée au prochain démarrage. Le cache de l'optimisation génétique est stocké jusqu'à ce que les paramètres d'optimisation soient modifiés ou que le processus d'optimisation soit terminé.
Si l'optimisation est arrêtée normalement (avec le bouton "Stop"), tous les passages calculés précédemment seront stockés. Si l'optimisation est reprise, le processus reprend là où il a été arrêté.
В данном режиме происходит полный перебор всех возможных комбинаций значений входных переменных, выбранных для оптимизации на соответствующей вкладке. Быстрая (генетический алгоритм) В основу данного типа оптимизации заложен генетический алгоритм подбора наилучших значений входных параметров. Данный тип оптимизации значительно быстрее полного...
Il est donc écrit ci-dessus que nous avons complètement changé la façon dont le cache fonctionne. La documentation évoluera au fil du temps.
De plus, j'ai montré comment les résultats de la recherche dans le cache génétique améliorent considérablement les résultats de la ré-exécution. De 50 %.
L'intérêt d'un testeur génétique est qu'il doit être exécuté plusieurs fois pour que le randomiseur puisse sortir des extrêmes locaux. C'est ce que montre la capture d'écran ci-dessus, où le quatrième passage a trouvé une nouvelle diapositive.
Vous devez toujours comprendre les mécanismes du processus. Si l'espace de recherche de la solution se compte en trillions, il faut faire beaucoup d'essais avec la génétique.
Renat Fatkhullin: Il est écrit ci-dessus que nous avons complètement changé la façon dont le cache fonctionne. Nous changerons la documentation en temps voulu.
De plus, j'ai montré comment les résultats de la recherche dans le cache génétique améliorent considérablement les résultats de la ré-exécution. De 50 %.
L'intérêt d'un testeur génétique est qu'il doit être exécuté plusieurs fois pour que le randomiseur puisse sortir des extrêmes locaux. C'est ce que montre la capture d'écran ci-dessus, où le quatrième passage a trouvé une nouvelle diapositive.
Vous devez toujours comprendre les mécanismes du processus. Si l'espace de recherche de solutions se compte en trillions, il faut faire beaucoup d'essais avec la génétique.
Merci pour le travail accompli !
J'aimerais voir des statistiques normales pour chaque symbole dans les tests multidevises, au minimum.
Pourquoi ne pas joindre une description pour la reproduction ?
Ne comprenez-vous pas qu'une photo n'est pas une preuve en l'absence totale de description ? Vous êtes sur un forum technique où l'on discute de questions techniques.
J'ai essayé de construire selon vos conditions :
votre moyenne mobile standard.
votre ensemble de paramètres pour 50 millions de passages
Serveur MetaQuotes-Demo, EURUSD H1, l'année dernière, mode Open Prices avec génétique
la génétique de la course
Voici le résultat : tout est normal et raisonnable, le testeur fonctionne, la génétique trouve les bons résultats...
Vous pouvez voir comment la génétique a atteint les zones vertes de meilleurs résultats et s'y est consolidée.
Renat Fatkhullin: Ainsi, il est écrit ci-dessus que nous avons complètement changé la façon dont le cache fonctionne. Nous modifierons la documentation en temps voulu.
De plus, j'ai montré comment les résultats de la recherche dans le cache génétique améliorent considérablement les résultats de la ré-exécution. De 50 %.
L'intérêt d'un testeur génétique est qu'il doit être exécuté plusieurs fois pour que le randomiseur puisse sortir des extrêmes locaux. C'est ce que montre la capture d'écran ci-dessus, où la quatrième manche a trouvé un nouveau toboggan.
Vous devez toujours comprendre les mécanismes du processus. Si l'espace de recherche de la solution se compte en trillions, il faut faire de nombreux essais.
Si vous avez besoin de l'exécuter plusieurs fois, pourquoi ne pas implémenter tout cela dans l'algorithme ? Et vous pouvez comprendre la mécanique du processus lorsque vous avez suffisamment d'informations sur l'objet. Mais ici, on donne à l'utilisateur une boîte noire dont il n'a qu'une idée générale sans connaître les détails (taille de la population, critères d'arrêt, etc.) Et donc il ne peut pas contrôler ces paramètres. Donc, si l'optimiseur s'accroche aux extrema locaux, les paramètres de l'algorithme ne sont probablement pas bien réglés.
Si vous devez l'exécuter plusieurs fois, pourquoi ne pas tout mettre en œuvre dans l'algorithme ? Et la mécanique du processus peut être comprise lorsque nous disposons de suffisamment d'informations sur l'objet. Ici, l'utilisateur dispose d'une boîte noire dont il n'a qu'une idée générale, sans connaître les détails (taille de la population, critères d'arrêt, etc.). Et il ne peut donc pas contrôler ces paramètres. Donc, si l'optimiseur s'accroche à des extrema locaux, les paramètres de l'algorithme ne sont probablement pas bien réglés.
Car c'est là l'essence de la méthode génétique : dans un espace de recherche infini, elle produit une solution rapide en N générations lorsque l'incrément de la fonction cible tombe en dessous d'un certain niveau.
Mot clé : rapide.
L'algorithme génétique ne garantit pas un résultat absolument exact. Il s'agit d'une estimation rapide et sale pour obtenir les premières analyses.
Comment la génétique doit être utilisée :
Fixer des limites de recherche larges sur des milliards/trillions de variantes
Faites le premier passage.
En utilisant la visualisation dans différents plans, y compris en 3D, déterminer quelles zones ont des résultats décents
Réduire la recherche, en désactivant certains paramètres (en les verrouillant ou en les réduisant à un nombre raisonnable).
Exécuter un nouveau cycle
Ensuite, nous avons obtenu d'autres résultats par rapport au premier passage.
Ré-estimé avec visualisation
Passez à l'étape 4 jusqu'à ce que vous soyez satisfait du résultat.
Ne détournez pas la tête lorsque vous voyez 10 000 passages dans l'espace de recherche pour des billions de variantes. Les miracles n'arrivent pas.
La génétique doit être utilisée de manière réfléchie et manuelle.
En général, je recommande d'approfondir la théorie. Sans cela, je vois la génétique comme une attitude du type "appuyez sur le bouton et c'est tout" :
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
J'aimerais voir des statistiques normales pour chaque symbole dans le test multi-devises, au minimum
Nous avons commencé une grande mise à jour du testeur, en le réécrivant en partie. Nous sommes maintenant occupés à changer le schéma de travail avec les données.
Nous allons changer beaucoup de choses, y compris les rapports.
Nous sommes en train de procéder à une importante mise à niveau des performances du testeur et de redéfinir les modes de charge lourde. Des améliorations majeures ont été apportées et de nouvelles méthodes d'accélération seront bientôt mises en œuvre.
Nous avons décidé d'afficher la fenêtre de la liste des laissez-passer à la fin de l'exécution, afin de ne pas gaspiller de ressources réelles pour maintenir, re-trier et afficher la liste des laissez-passer qui change constamment.
Il y a vraiment eu un énorme gaspillage de ressources et des ralentissements. Surtout quand il s'agit de centaines de milliers de lignes, de millions et de dizaines de millions de passages. Il n'y a aucun sens raisonnable à regarder un tas de données préliminaires avec les yeux.
Nous effectuons des tests d'optimisation et d'exécution avec 100 millions de passages complets.
Il est clair qu'avec de tels chiffres, il est hors de question de retrier et d'afficher un tableau de 2-5-10-50 millions de valeurs en temps réel. La seule option est de tout rassembler rapidement et économiquement, de le trier finalement et de fournir une navigation à toute profondeur.
Tout cela est génial !
Cependant, veuillez retourner l'onglet "Optimisation" - il est impossible de travailler sans analyse opérationnelle ! Les grands tableaux sont lents - faisons un filtre - montrons les 20 premiers pour chaque critère - ce n'est pas si gourmand en ressources( ?), mais cela aidera beaucoup à voir le tableau. Et, ces milliards de passes - qui les fabrique ? Ce sont des unités dotées d'énormes capacités - vous parlez vous-même du caractère raisonnable de l'application de la génétique, et il n'y a pas de tels portmanteaux. C'est-à-dire que plus de 10 000 passages est une rareté.
Je ne comprends pas l'arrêt de l'optimisation, si j'ai des trames écrites dans le fichier, alors après le redémarrage un nouveau fichier sera écrit, parce que je ne peux pas dire au Conseiller Expert qu'ils ont continué à partir de là où ils se sont arrêtés et n'ont pas besoin de créer un nouveau fichier pour enregistrer les résultats. Et si c'est le cas, nous ne pouvons pas nous passer de contrôler les résultats actuels !
Si je n'en suis pas sûr, vous pouvez créer un graphique avec les résultats actuels de l'optimisation pour différents indicateurs, ce qui m'aidera à basculer le graphique sur celui qui est nécessaire et à suivre la situation de cette manière.
Et si vous avez pris le testeur, je vous demande de passer du paramètre "optimisation" au test en un seul passage après l'optimisation - j'ai perdu beaucoup de données à cause de cela et beaucoup de gens s'en sont plaints ici.
En ce qui concerne les agents dans le réseau local - s'il vous plaît leur apprendre à ne pas frotter le cache et l'ensemble de l'environnement pour un temps plus long - entre les optimisations le temps passe pour analyser les données, et non pas immédiatement courir pendant 5 minutes. Maintenant, il s'avère que dès que je recommence à optimiser et à distribuer quoi que ce soit, les agents commencent à travailler en 10 minutes. Oui, j'ai un internet lent pour le téléchargement, mais est-il possible de donner autant ? Pourquoi ne puis-je pas donner à chaque ordinateur local (un agent sur ce PC) et le laisser tout diviser entre les agents !
Pourquoi n'avez-vous pas dit dès le début que vous vous occupiez de génétique ?
Leprincipe même de la recherche génétique est basé sur le hasard et n'a donc aucun intérêt à "continuer ce que l'on a commencé". Son rôle est de fonctionner de manière aléatoire.
Et même dans ce cas, le cache est utilisé. C'est juste que votre probabilité de tomber sur les résultats calculés précédemment est très faible (vous avez une zone de recherche de 50 millions de variantes). On dirait donc qu'on commence par le début, puisque le point de départ est aléatoire.
Si vous lisez l'aide, elle dit exactement le contraire. Peut-être est-ce mal écrit ? J'aimerais comprendre.
https://www.metatrader5.com/ru/terminal/help/algotrading/optimization_types
Il est écrit ci-dessus que nous avons complètement changé la façon dont le cache fonctionne. Nous changerons la documentation en temps voulu.
Merci pour le travail accompli !
J'aimerais voir des statistiques normales pour chaque symbole dans les tests multidevises, au minimum.
Pourquoi ne pas joindre une description pour la reproduction ?
Ne comprenez-vous pas qu'une photo n'est pas une preuve en l'absence totale de description ? Vous êtes sur un forum technique où l'on discute de questions techniques.
J'ai essayé de construire selon vos conditions :
Voici le résultat : tout est normal et raisonnable, le testeur fonctionne, la génétique trouve les bons résultats...
Vous pouvez voir comment la génétique a atteint les zones vertes de meilleurs résultats et s'y est consolidée.
Le conseiller expert est une moyenne mobile standard.
J'ai effectué 4 optimisations. Les fichiers journaux sont en annexe. Tout cela est lié à la génétique.
J'en ai fait 2 sur une nouvelle construction. 2 sur l'ancien modèle.
1er passage - il a fallu 3,56 min. sur le nouveau sans s'arrêter du début à la fin.
3ème course - avec l'ancien sans s'arrêter du début à la fin a pris 2.15 min.
2ème manche - la nouvelle manche avec un arrêt du début à la fin a pris 2.25+7.57= 9.82 min.
La 4ème manche - sur l'ancienne avec un arrêt du début à la fin a pris 1.55+1.17= 2.72 min.
Dites-moi pourquoi la nouvelle construction fonctionne si mal.
Ainsi, il est écrit ci-dessus que nous avons complètement changé la façon dont le cache fonctionne. Nous modifierons la documentation en temps voulu.
Si vous avez besoin de l'exécuter plusieurs fois, pourquoi ne pas implémenter tout cela dans l'algorithme ? Et vous pouvez comprendre la mécanique du processus lorsque vous avez suffisamment d'informations sur l'objet. Mais ici, on donne à l'utilisateur une boîte noire dont il n'a qu'une idée générale sans connaître les détails (taille de la population, critères d'arrêt, etc.) Et donc il ne peut pas contrôler ces paramètres. Donc, si l'optimiseur s'accroche aux extrema locaux, les paramètres de l'algorithme ne sont probablement pas bien réglés.
Advisor est une moyenne mobile standard.
Dites-moi pourquoi la nouvelle construction fonctionne si mal.
Veuillez formuler votre question avec précision.
Si vous devez l'exécuter plusieurs fois, pourquoi ne pas tout mettre en œuvre dans l'algorithme ? Et la mécanique du processus peut être comprise lorsque nous disposons de suffisamment d'informations sur l'objet. Ici, l'utilisateur dispose d'une boîte noire dont il n'a qu'une idée générale, sans connaître les détails (taille de la population, critères d'arrêt, etc.). Et il ne peut donc pas contrôler ces paramètres. Donc, si l'optimiseur s'accroche à des extrema locaux, les paramètres de l'algorithme ne sont probablement pas bien réglés.
Car c'est là l'essence de la méthode génétique : dans un espace de recherche infini, elle produit une solution rapide en N générations lorsque l'incrément de la fonction cible tombe en dessous d'un certain niveau.
Mot clé : rapide.
L'algorithme génétique ne garantit pas un résultat absolument exact. Il s'agit d'une estimation rapide et sale pour obtenir les premières analyses.
Comment la génétique doit être utilisée :
Ne détournez pas la tête lorsque vous voyez 10 000 passages dans l'espace de recherche pour des billions de variantes. Les miracles n'arrivent pas.
La génétique doit être utilisée de manière réfléchie et manuelle.
En général, je recommande d'approfondir la théorie. Sans cela, je vois la génétique comme une attitude du type "appuyez sur le bouton et c'est tout" :
Optimisation des stratégies - Trading algorithmique, robots de trading
Algorithmes génétiques dans MetaTrader 4. Comparaison avec l'optimiseur direct force brute
Les algorithmes génétiques sont faciles !
Algorithmes génétiques - Appareillage mathématique
Experts auto-optimisants : algorithmes évolutionnaires et génétiques
Optimisation guidée : techniques de recuit
Optimisation de la marche à suivre dans MetaTrader 5 - Vos propres mains
Créez vos propres critères pour optimiser les paramètres du conseiller expert
Application de la méthode de Monte Carlo pour l'optimisation des stratégies de trading
Forêt de décision aléatoire en formation avec renforcement
La technique d'optimisation (test) et quelques critères pour la sélection des paramètres de travail de l'Expert Advisor
Comment éviter les pièges de l'optimisation ?
Merci pour votre travail !
J'aimerais voir des statistiques normales pour chaque symbole dans le test multi-devises, au minimum
Nous avons commencé une grande mise à jour du testeur, en le réécrivant en partie. Nous sommes maintenant occupés à changer le schéma de travail avec les données.
Nous allons changer beaucoup de choses, y compris les rapports.
Nous sommes en train de procéder à une importante mise à niveau des performances du testeur et de redéfinir les modes de charge lourde. Des améliorations majeures ont été apportées et de nouvelles méthodes d'accélération seront bientôt mises en œuvre.
Nous avons décidé d'afficher la fenêtre de la liste des laissez-passer à la fin de l'exécution, afin de ne pas gaspiller de ressources réelles pour maintenir, re-trier et afficher la liste des laissez-passer qui change constamment.
Il y a vraiment eu un énorme gaspillage de ressources et des ralentissements. Surtout quand il s'agit de centaines de milliers de lignes, de millions et de dizaines de millions de passages. Il n'y a aucun sens raisonnable à regarder un tas de données préliminaires avec les yeux.
Nous effectuons des tests d'optimisation et d'exécution avec 100 millions de passages complets.
Il est clair qu'avec de tels chiffres, il est hors de question de retrier et d'afficher un tableau de 2-5-10-50 millions de valeurs en temps réel. La seule option est de tout rassembler rapidement et économiquement, de le trier finalement et de fournir une navigation à toute profondeur.
Tout cela est génial !
Cependant, veuillez retourner l'onglet "Optimisation" - il est impossible de travailler sans analyse opérationnelle ! Les grands tableaux sont lents - faisons un filtre - montrons les 20 premiers pour chaque critère - ce n'est pas si gourmand en ressources( ?), mais cela aidera beaucoup à voir le tableau. Et, ces milliards de passes - qui les fabrique ? Ce sont des unités dotées d'énormes capacités - vous parlez vous-même du caractère raisonnable de l'application de la génétique, et il n'y a pas de tels portmanteaux. C'est-à-dire que plus de 10 000 passages est une rareté.
Je ne comprends pas l'arrêt de l'optimisation, si j'ai des trames écrites dans le fichier, alors après le redémarrage un nouveau fichier sera écrit, parce que je ne peux pas dire au Conseiller Expert qu'ils ont continué à partir de là où ils se sont arrêtés et n'ont pas besoin de créer un nouveau fichier pour enregistrer les résultats. Et si c'est le cas, nous ne pouvons pas nous passer de contrôler les résultats actuels !
Si je n'en suis pas sûr, vous pouvez créer un graphique avec les résultats actuels de l'optimisation pour différents indicateurs, ce qui m'aidera à basculer le graphique sur celui qui est nécessaire et à suivre la situation de cette manière.
Et si vous avez pris le testeur, je vous demande de passer du paramètre "optimisation" au test en un seul passage après l'optimisation - j'ai perdu beaucoup de données à cause de cela et beaucoup de gens s'en sont plaints ici.
En ce qui concerne les agents dans le réseau local - s'il vous plaît leur apprendre à ne pas frotter le cache et l'ensemble de l'environnement pour un temps plus long - entre les optimisations le temps passe pour analyser les données, et non pas immédiatement courir pendant 5 minutes. Maintenant, il s'avère que dès que je recommence à optimiser et à distribuer quoi que ce soit, les agents commencent à travailler en 10 minutes. Oui, j'ai un internet lent pour le téléchargement, mais est-il possible de donner autant ? Pourquoi ne puis-je pas donner à chaque ordinateur local (un agent sur ce PC) et le laisser tout diviser entre les agents !
Formulez la question de façon précise, s'il vous plaît.
Pourquoi casser un bon vieil algorithme et le remplacer par un nouveau qui est 3 fois plus lent ?
Si vous devez introduire une nouvelle approche de la méthode génétique, ajoutez un nouvel élément à l'onglet "optimisation",
Créez une description et des techniques pour travailler avec elle.