L'optimisation dans le testeur de stratégie - page 18

 
Renat:

L'utilisation de la génétique n'a de sens que si le nombre de passages est largement supérieur à 10000. Dans votre cas, il n'y a que 817 passages et ils doivent être exécutés dans un mode de recherche complet.

La génétique fonctionne en modélisant les séquences de gènes pour produire des individus efficaces. Cela nécessite un certain nombre de populations, généralement au moins 10 000 passages.

Les tests ne sont pas terminés. Elle est en cours. Cependant, dans les trois images, il y a toujours un déséquilibre dans le nombre de passages. Ce déséquilibre ne s'est pas formé immédiatement, mais depuis quand (nombre de passages) je ne peux pas le dire exactement.
 
ForexMoneyMaker:
Les tests ne sont pas terminés. Elle est en cours. Cependant, dans les trois images, il y a toujours un déséquilibre dans le nombre de passages. Ce déséquilibre ne s'est pas formé immédiatement, mais à partir de quand exactement (nombre de passages) je ne peux pas le dire.

Oui, j'ai mal compris la question.

Nous y travaillons actuellement. Peut-être est-ce lié au fait de sauter les résultats "inutiles".

 
Renat:

Oui, j'ai mal répondu à la question.

Nous sommes en train de le régler. Peut-être cela a-t-il à voir avec le fait de sauter les résultats "inutiles".

À ce propos, vous m'amenez également une autre question à l'esprit :

Si l'optimiseur, comme dans mon cas, a du mal à trouver une solution (voir que le résultat est le plus souvent nul et que l'optimisation est très lente malgré 4 cœurs et 20 agents externes), dois-je passer à une optimisation par force brute complète au lieu de l'algorithme génétique?

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
ForexMoneyMaker:

Mais si l'optimiseur, peut-être comme dans mon cas, a du mal à trouver une solution (vous pouvez voir que le résultat est fondamentalement nul et que l'optimisation est très lente malgré 4 cœurs et 20 agents externes), devons-nous faire évoluer l'optimisation vers une force brute totale au lieu d'un algorithme génétique?

En gros, la génétique permet de s'affranchir de presque tous les pièges locaux en plaçant de manière aléatoire des paramètres dans les gènes.

D'une manière générale, si la génétique (vous pouvez effectuer 2-3 retests) n'a rien trouvé, alors il n'y a rien à faire là non plus pour la force brute.

 
ForexMoneyMaker:

Bonjour modérateur !

J'ai une question : pourquoi les trois images jointes ici montrent-elles un nombre différent de passages de l'optimiseur ? Quelle en est la raison ?

A en juger par la première image, le nombre de passes devrait être de 817. Cependant, sur la deuxième et la troisième photo, leur nombre est beaucoup plus faible.

Vous posez des questions qui ont été discutées à de nombreuses reprises. Et les réponses sont dans l'aide. Je ne suis pas un modérateur, mais je vais répondre.

Le graphique montre tous les résultats sauf ceux marqués en rouge. Les parcours présentant une erreur critique sont marqués en rouge.

Seuls les résultats uniques sont placés dans l'onglet des résultats. Pour les exécutions consécutives, tous les résultats sont uniques. Avec la génétique, un grand nombre de jeux de paramètres sont répétés, c'est-à-dire qu'ils ne sont pas uniques. Le résultat est déjà dans le cache des résultats - ce jeu de paramètres n'est pas envoyé pour être testé, le résultat est tracé, mais pas dans la liste des résultats.

 
stringo:

Je ne suis pas un modérateur, mais je vais répondre.

 
Renat:
stringo:

Vous posez des questions qui ont été discutées à de nombreuses reprises. Et les réponses à ces questions se trouvent dans la référence. Je ne suis pas un modérateur, mais je vais répondre.

Le graphique montre tous les résultats sauf ceux marqués en rouge. Les parcours présentant une erreur critique sont marqués en rouge.

Seuls les résultats uniques sont placés dans l'onglet des résultats. Pour les exécutions consécutives, tous les résultats sont uniques. Avec la génétique, un grand nombre de jeux de paramètres sont répétés, c'est-à-dire qu'ils ne sont pas uniques. Le résultat est déjà dans le cache des résultats - ce jeu de paramètres n'est pas envoyé pour être testé, le résultat est tracé mais ne figure pas dans la liste des résultats.

Bien. Merci. C'est clair.
 
ForexMoneyMaker:
(gloussements) : Ok. Merci. Tout est clair.
Dans le journal du testeur, dans le menu contextuel, cochez "Journaux d'optimisation complets". Ensuite, lisez le journal - il montre quel agent a donné quel travail, quel agent a obtenu quel résultat, quel résultat a été trouvé dans le cache des résultats, quel résultat a été trouvé dans le cache des fichiers. Quelles sont les courses qui se sont terminées par une erreur critique (et quelle est cette erreur).
Документация по MQL5: Программы MQL5 / Ошибки выполнения
Документация по MQL5: Программы MQL5 / Ошибки выполнения
  • www.mql5.com
Программы MQL5 / Ошибки выполнения - Документация по MQL5
 

Bonjour, Modérateur !

J'ai une nouvelle question concernant l'optimisation d'un EA utilisant la fonction OnTester() dans laquelle la condition appropriée a été écrite. L'optimisation a été réalisée à l'aide de l'algorithme génétique sur la version 496.

Les résultats du travail de l'optimiseur sont présentés dans les images ci-dessous :

Afin de s'assurer que les paramètres obtenus lors de l'optimisation donnent des résultats appropriés, nous avons testé l'Expert Advisor avec les paramètres correspondants obtenus pour la dernière ligne de chaque tableau mais sur la version mise à jour de la 519ème build (malheureusement, cela n'a pas été fait sur la 496).

Il y a trois questions :

1. pourquoi le graphique d'optimisation affiche-t-il une valeur négative, si par OnTester(), le résultat est soit égal à zéro, soit supérieur à zéro ?

2. pourquoi voit-on deux points au-dessus de zéro sur le graphique d'optimisation (valeur égale à 0,51), alors qu'il n'y en a qu'un seul dans le tableau ?

3. Quelle peut être la raison pour laquelle les résultats de deux tests ne coïncident pas avec ceux de l'optimisation après test sur la build 519 ? (dans le premier cas, le conseiller expert s'est arrêté au lieu du profit 745 en raison de la vidange du dépôt au niveau des fonds insuffisants pour ouvrir des positions, et dans le deuxième cas, le résultat a reçu 7903030 au lieu du profit 83064)

 
ForexMoneyMaker:

Il y a trois questions :

1. pourquoi y a-t-il une valeur négative sur le graphique d'optimisation, si par OnTester(), le résultat est soit égal à zéro, soit supérieur à zéro ?

2. pourquoi voit-on deux points au-dessus de zéro sur le graphique d'optimisation (valeur égale à 0,51), alors qu'il n'y en a qu'un seul dans le tableau ?

3. Quelle peut être la raison pour laquelle les résultats de deux tests ne coïncident pas avec ceux de l'optimisation après test sur la build 519 ? (Dans le premier cas, au lieu d'un profit de 745, le conseiller expert s'est arrêté en raison de la vidange du dépôt au niveau des fonds insuffisants pour ouvrir des positions, et dans le deuxième cas, au lieu d'un profit de 83064, le résultat s'est avéré être 79030)


Je ne suis pas un modérateur, mais je vais essayer de répondre.

1. Vous avez exactement 0 résultat sur votre graphique, c'est juste que 0 n'est pas indiqué sur l'échelle.

2. L'algorithme génétique génère des individus avec le même ensemble de paramètres, pour lesquels les résultats sont pris dans le cache, sans exécution réelle. Ainsi, le graphique affiche les résultats de toutes les exécutions, y compris les doublons, tandis que les exécutions en double ne sont pas inscrites dans le tableau des résultats (mais le journal affiche un message indiquant que le résultat est tiré du cache).

3. En une seule exécution, le testeur termine le test si un niveau d'arrêt est atteint, tandis que l'optimiseur ignore ces situations sans les analyser. Probablement, les agents du testeur ne peuvent pas détecter le fait de l'arrêt par eux-mêmes, et c'est le testeur qui le fait. Et la balance peut revenir dans la zone positive. J'ai aussi observé de tels cas.

4. Le dernier cas, je pense, est dû soit à la mise à jour du terminal, soit à la mise à jour de l'historique.

Raison: